编程的精义

编程的根本是顺序、分支以及循环,再复杂的工作都可以通过这三个环节的组合来完成。因此所谓编程实质上是制定某项任务执行的顺序(顺序),找出该项任务中重复执行的步骤(循环)和任务中的特殊情况(分支),之后才是代码层面的实现。

N.Wirth提出“程序 = 算法 + 数据结构”,至今仍被大多数程序员所认同。其中的加数“算法”暗示了在开始编程之前必须明白程序的逻辑方法,否则计算机是无法理解你想要做什么,自然程序也是无法实现出来的。而另一个加数“数据结构”则表示程序所依赖的数据实体结构。因此,在实现代码之前,要分析清楚任务的前后逻辑关系(算法)和依赖关系(结构),当逻辑关系与依赖关系都明确之后,剩下的就是体力活了。

所以编程的本质并非使用编程语言,而是用(任一、合适的)编程语言实现算法与结构的过程。而算法与结构需在代码实现之前明确构建。

对于编程语言,它们的底层函数库都是十分相似,API 也都依赖于系统,而它们的差别仅仅在于适用范围。例如 PHP 只适用于制作网站,Python 可以方便进行数值处理,而C 实现图形处理效率很高。然而一般新手都习惯于学习各种各样的语言,注重“写不同语言的代码”的能力,往往掌握了许多编程语言,但没有掌握编程语言的精髓,更没掌握编程的精义。