频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

1.7.1 像程序员一样地思考

作者: 月影 出处:清华大学出版社  2008-06-18 16:32    砖    好    评论   进入论坛
阅读提示:《JavaScript王者归来》第1章讲述的是从零开始,本小节为大家介绍的是像程序员一样地思考。

1.7 学习和使用JavaScript的几点建议

在本节里,我们正式开始接触“道”的本质。

通读本书完成学业之前,迫切需要做的一件事情是,冷静下来思考如何学习和使用JavaScript。真正掌握有效的学习方法,是提高学习效率和改进学习效果的重要途径。学习效率和学习效果则直接影响到对JavaScript本质的掌握程度,从而决定JavaScript在你手中能够发挥出来的威力。

就像武侠小说中描述的那样,决定一个人武功强弱,不仅看招式,更为重要的是看内功。即使是普普通通的招式,在内功练到炉火纯青的高手手中,也会发挥出极大的威力。JavaScript 的学习也是这样。希望本书不仅仅教会你众多的JavaScript“招式”,也能成为帮助你修炼程序设计“内功”的秘籍。

1.7.1 像程序员一样地思考

随着软件技术不断发展,从事软件行业的人员日渐增多。你发现身边多了这么一群人,他们有的西装革履,有的穿着随意,有的不苟言笑,有的风趣幽默,有的博学多才,有的质朴木讷,唯一的共同点是,他们的名片上都印着“程序员”这样的字。

现在大街上所谓的“程序员”是如此之多,他们中有真正的高手,也有只会写几行蹩脚代码的滥竽充数者。在这里我无意贬低程序员同僚,只是想通过我的经验说明什么样的人才是真正的程序员。

程序员是怎样炼成的?

一些人认为,掌握一门计算机语言,会编写几行代码并且能够让这些代码在计算机上运行起来的人,就可以称为程序员。事实上,软件行业里,要成为真正意义上的程序员,对得起programmer 这个称号,还是要花费一番功夫的。

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

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

非常遗憾,许多 “程序员”仅仅达到第一个境界,他们根据手中的文档和参考资料,通过“模仿”来完成工作,他们实现的程序只是无数个前人已经实现过的代码的翻版组合,虽然其中的熟练者以快速高效率完成任务著称,然而他们的作品中毫无新意,日复一日地重复代码,罕有任何可以称之为“创新”的东西。

第一境界的特质是对语言工具的掌握,在这个境界的高手,会强调自己对语言如何如何熟练,因此这个境界可以用“知器”来表示。

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

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

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

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

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

“设计模式”是软件领域的“三十六计”,是经过抽象总结而归纳出来的真正的思想精华。第三个境界的软件工作者开始接触并且理解“模式”,学会灵活运用模式和抽象思维来解决“某一类”问题。与表象相比,他们更关注的事物的本质,他们的代码里充满思想和对事物规律的深刻认识,他们熟知各种类型问题的特点和解决技巧。对事物本质规律的认识使他们不再依赖于语言工具,任何一种熟悉或者陌生的程序设计语言在他们的手中都能够发挥到极致,完美地解决问题。

第三境界的特质是对事物本质规律的认识,在这个境界的高手,往往能够快速地抽象出问题的本质,从而用最合适的方法来解决问题。这个境界我用“明理”来表示。

达到第三境界的程序员,是天生的设计师,他们对问题本质的领悟能力帮助他们用优美简洁代码来解决问题,他们的代码中充满设计思想。他们是真正能够享受到程序设计的艺术魅力并且充满成就感的一群人。

第三境界里的程序员真正当得起Programmer 称号,他们在外人眼里看起来是天生的设计师、艺术家和技术牛人,他们是为软件创作而生的。

前面说到了三个境界,层层深入,并且第三个境界的程序员已经当之无愧地成为软件领域的专家领袖,然而,“程序员”是否只有以上三个境界了呢?答案是否定的。在这三个境界之上,依然存在有——

第四个境界

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

自古以来,有这样一群僧人,他们遵守戒律,不吃肉,不喝酒,整日诵经念佛,而与其他和尚不同的是,他们往往几十年坐着不动,甚至有的鞭打折磨自己的身体,痛苦不堪却依然故我。

有这样一群习武者,经过多年磨练,武艺已十分高强,但他们却更为努力地练习,坚持不辍。

有这样一群读书人,他们有的已经学富五车,甚至功成名就,却依然日夜苦读,不论寒暑。

他们并不是精神错乱,平白无故给自己找麻烦的白痴,如此苦心苦行,只是为了寻找一样东西。

传说这个世界上存在着一种神奇的东西,它无影无形,却又无处不在,轻若无物,却又重如泰山,如果能够获知这样东西,就能够了解这个世界上的所有的奥秘,看透所有伪装,通晓所有知识,天下万物皆可归于掌握!

这并不是传说,而是客观存在的事实。

引自《明朝的那些事儿》 作者:当年明月

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

静寂虚无中有奥秘,不静不动,乃程序之源,无以名之,故曰:程序设计之道。若道至大,则操作系统至大;若操作系统至大,编译程序亦然;若编译程序至大,应用程序亦复如是。是以用者大悦,世之和谐存焉。

——杰弗瑞.詹姆士

所谓道,是天下所有规律的总和,是最根本的法则,只要能够了解道,就可以明了世间所有的一切。

掌握了“道”的程序员,才是真正的程序设计大师,能够创作出流芳百世的作品。

然而怎样才能“悟道”,我并不知道,也无法描述,因为“道”实在不是一个能够轻易得到和理解的东西。

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

学习JavaScript不应该游离于程序员之外,JavaScript 程序员也是真正的程序员,因此摆在我们面前的道路也是从“知器”、“格物”、“明理”到“成道”的艰难过程,像程序员一样地思考,扎扎实实地向着更高的层次迈进,才是正确的学习方法。只要坚持不懈,迟早有一天,JavaScript 会在你的手中大放异彩。


回书目   上一节   下一节
专题
程序员如何成长?
Java实用开发全集
Java类的基础教程专题
Java发展动态专题
Java编程开发手册
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
技术人求职简历完备手册
技术人求职简历完备手册
开源虚拟化技术Xen
开源虚拟化技术Xen
Windows Server 2008专题
Windows Server 2008专题
· Windows Server 2008专..
· 隐私保护技术探讨
· 绿色IT人健康生存手册
· 网络工程师职业规划与..
· 杀毒软件评测专题
· 访问控制列表(ACL)介绍
· Vista SP1对决XP SP3
· 华为员工自杀频频拷问..
· 2008中国互联网大会
· 微软出价446亿美元收购..
· 勇闯IT培训黑色围城
· CISSP认证成长之路
· 解析35岁技术人的价值..
· LAMP技术精解
· AMD Phenom三核处理器..
· 充电计划之热门IT认证..
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
SOA 面向服务架构
SOA 面向服务架构
· SOA 面向服务架构
· SQL Server 2008/2005..
· Apache技术专题
· 三层交换技术专题
· SQL Server入门到精通
· Apache技术专题
· 国际文档格式标准开战
· 路由器设置与口令恢复
· PHP开发应用手册
· SOA 面向服务架构
· 企业数据恢复指南
· 了解统一威胁管理(UTM)..
· 专题:AIX操作系统管理..
· 访问控制列表(ACL)介绍
· 反垃圾邮件技术应用
· ASP.NET 2.0基础开发指..
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
SQL Server入门到精通
SQL Server入门到精通
· SQL Server入门到精通
· SQL Server 2008/2005..
· SOA 面向服务架构
· Apache技术专题
· 三层交换技术专题
· Apache技术专题
· 企业数据恢复指南
· 路由器设置与口令恢复
· SOA 面向服务架构
· 了解统一威胁管理(UTM)..
· 反垃圾邮件技术应用
· 访问控制列表(ACL)介绍
· PHP开发应用手册
· 专题:AIX操作系统管理..
· 交换机故障解决指南
· 三层交换技术专题