像程序员一样地思考


在成为程序员的道路上,要经历四个坎坷,让我们用四个境界来标明他们。

第一境界,就是前面所说的,掌握一门或则几门编程语言,会模仿例子来实现程序代码,并且让代码在计算机系统中运行起来。达到这个境界的人,还不能算是真正 意义上的程序员,而仅仅是掌握了一种或几种工具的工匠,他们中的熟练者能够快速模仿现成的例子,以实现自己或则用户需要的软件模块。
第一境界的特质是对语言工具的掌握,在这个境界里的高手,会强调自己对语言如何如何熟练,因此这个境界可以用“知器”来表示。

第二个境界里,我们要学习的是分解问题和推理的技巧,学会用逻辑的语言来精确地表达一个命题。在这个境界里,软件工作者掌握的是一种分析具体事物的方法,他们不再一味地模仿,而是开始对一个又一个问题思考并尝试用自己的方法来更好地解决。

在这个层次里的程序员开始关注解决问题的思路,并且关注分析和推理的数学技巧,他们中的优秀者熟知各种算法善用各种各样的命题推理来分析并解决问 题。他们同样善于借鉴前人的例子,但是往往能够根据问题的特点进行有效的改进,并且能够在尝试改进的过程中得到创新的成就感和新的经验。在这个层次里的 人,对语言的认识比第一境界更加深刻,他们是真正知道如何利用手中语言工具的特点更好解决问题的人。但是他们并不会强调自己对语言如何熟悉,也不再热衷于 宣扬掌握如何如何多的语言,在他们眼里,语言仅仅是一种工具而已,真正重要的是分析问题的方法。

第二境界的特质是对具体问题的分析,在这个境界的高手,往往善于从具体问题中分析出合理有效的解决方法。因此用“格物”表示。

第二境界里有真正对如何用程序来解决问题经验丰富的人,这些人能够出色地胜任编码工作,因此我们称他们为Coder,或则初级程序员。

第三境界里,我们要学习的是抽象思维和找出事物表象后的规律。在这个境界里,软件工作者不再针对一件一件具体的事物来分析,而是尝试理解事物表象下的本质。在这个层次里的人,开始关注事物的共性,并且逐渐掌握归纳和总结的方法。“模式”开始出现在他们的头脑里。

第三境界的特质是对事物本质规律的认识,在这个境界的高手,往往能够快速的抽象问题的本质,从而用最适合的方法来解决问题。这个境界我用“明理”来表示。
达到第三境界的程序员,是天生的设计师,他们对问题的本质领悟能力帮助他们用优美简洁代码来解决问题,他们的代码中充满设计思想。他们是真正能够享受到程序设计的艺术魅力并且充满成就感的一群人。
第三境界里的程序员真正当得起Programmer称号,他们在外人眼里看起来是天生的设计师,艺术家或技术牛人,他们是为软件创作而生的。

第三境界程序员中的极优秀者,并不满足于专家的地位和高薪,他们开始向第四境界艰难地前进。第四境界是程序设计领域的最高境界,要达到这个境界,只需要掌握一样东西,然而这个东西并不是寻常之物,而是许多人穷尽一生也无法得到的,这个世界最为深邃的秘密。

JavaScript王者归来

这样的东西,叫做“道”。

JavaScript王者归来

对第四境界的程序员来说,“思想”已经不再是很重要的东西,因为他们对程序本质的理解已经超越了问题本身,在他们的代码里,有的只是自然,现实和虚 幻的边界都已经模糊,一个完美自治的系统在刹那间诞生,却仿佛从恒古时刻便存在着运动着,从简单而质朴的规律中涵盖着世间万物的本质。因此,这个境界,我称之为“成道”。

 摘自《Javascript 王者归来》

posted on 2009-05-21 19:06  to be a talent  阅读(318)  评论(0编辑  收藏  举报