编程语言和编程思想

原创 2004年07月14日 11:06:00

这么多年来,我学过和使用过的开发语言也不少了,可真正用得好一点的就只有C。有一段话很流行,直到现在类似的想法还影响了很多人。“做程序员,学习程序语言最重要的是学习编程思想,而不是学习那种语言”。我曾经把这段话奉为经典。在做程序员的初期,频繁更换编程语言,这是一个重要原因,另一个重要原因是,如果不会新的语言,就显得落后了。因此流行的语言基本都涉及过,买书的钱都以千计。随着代码数量的增加,经验的增长以及对于业务了解程度的深入,自然产生了一些想法、思路和设计。

我举的一个例子,开发过数据库的人大概都有所体会。数据库应用中常常需要构造SQL语句,但在程序中写SQL语言以及对返回结果集的处理,这往往是个体力活,特别是在嵌入式SQL的编程中。重复地拷贝一段颇长代码,再修改一点点,整个程序大量的篇幅都耗在这上面了,维护起来也比较困难。我想很多人都针对此想过了很多的方法来简化这些甚是无趣的操作。我也想过好些方法,其中一个方法比较有趣。在C语言中有一个很常用的函数是int sscanf(const char *str, const char *format, ...),用起来颇为简便。我想仿照这个函数的来处理SQL语言的select,因此就定义了一个获得一条记录的函数:ifx_select(const char* sql,…); 使用起来非常简便:

int id;

char name[16];

if(ifx_select(“select id,name from users where id=10”,&id,name)==0)

这是一个很好的点子,也是很好的编程思想。但开工后,我发现我实现不了。虽然这段代码看上去很简单,但它包含的东西却不少:变参数的处理,指针及其内容的赋值,错误处理,数据类型判断与分析等等。这些东东都学过,但在实际工作中却不能灵活运用,想法和思路自然实现不了。类似的现象不仅仅大量出现在程序设计中,在现实生活中也比比皆是。

由此,下决心好好补了补课。把教科书又翻了几遍、阅读了很多开放源码的程序、在平时的编程中投入一部分精力到C本身的研究中,经常感叹,原来C语言还可以这样用。随着对语言本身(语法、技巧、组合等等)的越来越熟悉,自己的很多思路和想法也得以顺利实现。到目前语言和思想已经密不可分了,以上的代码自然搞定了。当然这是一个长期的过程,不可一蹴而就。时间一般以年计算。

讲了这么多,我的观点也很明确,编程的语言和编程的思想同样重要,扎实的编程语言功底是编程思想得以顺利的实现的基础,二者缺一不可,相互制约也相互促进。就象人的灵魂和肉体。对于一个人来说,若只管灵魂而不管肉体,那是“鬼”;如只管肉体而不管灵魂,则会被称为“行尸走肉”。基本工具都用得不好,用得不熟,很难期待会出现一个好产品;有一个好的编程想法,却因为编程语言的能力不够而不能实现,那么这个好的想法就只是“空想”,开发者容易被划归到“眼高手低”、“不切实际”、“不踏实”的一类中去。

另外在选择和学习编程语言上,最好根据需要选择一门主流的、应用广泛又有强大生命力的编程语言,例如BASICFORTRANC/C++JAVA等。语法学习相对容易,关键在于熟练应用。理想境界是达到卖油翁的程度:“无它,唯手熟而”。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

编程思想重于编程语言浅谈

细细数来,编程路上走了不少岁月,接触过的语言也有不少。C、C++、C#、Java、JavaScript、Python都有接触,而C#、 JavaScript和Python是用的较多的,所以后...
  • xxdddail
  • xxdddail
  • 2013年05月28日 09:23
  • 1245

几种常用编程语言的编程思想和方法

搞软件的人,编程语言的掌握是基本功,如果单单是学习语法,最慢的一周之内也应该可以搞定(个人认为 语法层面c++是最复杂的)。不幸的是,软件的本质是逻辑,解决方案的设计是要借助某种解决问题或编程的思想的...
  • zxllynu
  • zxllynu
  • 2017年10月12日 16:36
  • 237

OO 编程基本功--(1)

OO编程基本功--(1)
  • csharp25
  • csharp25
  • 2014年08月18日 16:08
  • 1473

什么是对象?什么是面向对象程序设计?面向对象语言有什么优点?

在计算机科学中,对象(英语:object),台湾译作物件,是一个存储器地址,其中拥有值,这个地址可能有标识符指向此处。对象可以是一个变量,一个数据结构,或是一个函数。是面向对象(Object Orie...
  • u012843100
  • u012843100
  • 2017年03月01日 15:03
  • 7142

成为编程大牛很简单,把这些书看个八成就OK

程序员必读书单 1.0 原文链接:http://lucida.me/blog/developer-reading-list/ 本文把程序员所需掌握的关键知识总结...
  • u011240877
  • u011240877
  • 2015年05月28日 21:38
  • 23042

面向对象与面向过程的编程思想比较

面向过程与面向对象的区别 面向过程”是一种以事件为中心的编程思想。   就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。   “面向对象...
  • u014602483
  • u014602483
  • 2015年08月20日 20:45
  • 1527

interface (1)

Defining an interface[visibility ] interface InterfaceName [extends other interfaces ] {constant...
  • xiemk2005
  • xiemk2005
  • 2010年08月12日 00:15
  • 453

C++编程思想简单理解

C++融合了3种不同的编程方式:C语言代表的过程性语言、C++在C语言基础上添加的类代表的面向对象语言、C++模板支持的泛型编程。         计算机语言要处理两个概念,数据和算法。C++是由C...
  • nlchao
  • nlchao
  • 2015年03月14日 19:17
  • 1368

脚本语言和编程语言的区别

编程语言 计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。 计算机所能识别的语言只有机器语言,即由0和1构成的代码。但通常人们编程时,不采用机器语言,因为它非常难于记忆和...
  • endeavour_zhao
  • endeavour_zhao
  • 2016年03月14日 09:30
  • 6620

引用和拷贝构造函数 --C++编程思想

1. C和C++指针最重要的区别        C++类型要求更强,void* 不可以赋值给其他指针,可以通过强制类型转换完成;C则可以。 2. 使用引用的规则        任何引用都要和存储...
  • u012410874
  • u012410874
  • 2014年06月13日 16:33
  • 614
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编程语言和编程思想
举报原因:
原因补充:

(最多只允许输入30个字)