2008年09月11日 星期四 17:54
2008/9/11 pongba <pongba在gmail.com>: > 我觉得总结得还是有道理的(虽然大部分类比都可删除,但便于初学者印象深刻嘛)。记得当年一开始也是闷着头写代码,写出来的代码臭不可闻,基本的 DRY > 原则都不知道,更不用说编码规范了,测试了,重构了,设计了。只能说实现了一坨功能,代码内部则是乱成一团。而现在,还有很多学习编程的觉得会了语法就是会了写代码,写出来的代码无论是可读还是可维护性都很差。 > 好哪!!!的确是的!编程不仅相关智能,态度/环境,,, 都相关的,,, > 其实说到底就是,与其闭门造成,自己从头实践来总结一些经验和知识,不如站在前人的肩膀上,并辅以一定的实践来加深理解和印象,是最有效的方法。 > > 文章基本没有正面论述,权当休闲阅读,但观点倒是正确的。多读点前人废了老鼻子劲碰掉了N鼻子灰总结出来的经验,可以少浪费些生命。 > > via: http://shrimphouse.spaces.live.com/Blog/cns!EBCC39981FB42087!612.entry > > 为什么我们都认为不读书就写书是荒谬的,而认为程序员就可以不读别人的代码就能自己写代码? > > 现在的大学里面教 > 计算机,开一门课叫《C语言》,盼望着学了这个就能会写程序,或者觉得内功不够,就再来一些《数据结构》,《算法》,《形式语言》,《编译原理》之类的课 > 程。觉得不够系统,不够广泛,就加点料《计算机组成原理》,《计算机体系》。发现这是一个网络的时代,于是就补充《TCP/IP原理》之类的课程。至于 > 《软件工程》这种狗屁不通的课程,只是老师用来误导学生,同时用来迷惑自己的,不是说这不是一门学问,而是说国内还不太有人能精于此道,而就在少数精于此 > 道的人中恰恰没有太多教书育人的老师。倘若你真的是遇见了这么一位,那真是你三生修来的福分。可是学了这么多,大家真的会写程序么?抑或是说我们写的程序 > 真的能用么? > > 大多数人还是承认编程是门艺术。那么好的,我们就用和它比较相似的文学艺术与之相比。程序大师比之若文学巨匠,程序犹比文 > 学作品,大师成长之路好似巨匠苦修之旅。我们会发现程序之路,至少是大学里面和绝大多数人正在探索的程序之路是与我们几千年来的经验积累矛盾的。怎么说 > 呢?让我想像一个人是如何成为一个文学巨匠,或者退一万步说,成为一个有文笔的人。这个人要从一点一滴学起,当然包括字,词,句啊等一些非常基本的要素。 > 还有拼音,笔顺,书写等一系列规范。可是一个人学了这些规范就一定能写出《血色浪漫》么,开玩笑!不能指望一个人把字典通读一遍就能写《史记》,即使你读 > 的是《康熙字典》也不行。也同样不能指望学了拼音就会说中国话,要不然语言文化大学和广播大学之类的都要关门大吉了。任何一个人学习语文的过程都是相似 > 的,学一点基础知识,读一些能看懂的书,试着写一写,改一改,再学一些规范性的知识如修辞等等,再大量阅读,自己不断的写不断的改。古往今来,哪一个有所 > 成就的文人墨客无不是这一步一步走过来的。所以有"读书破万卷,下笔如有神"的说法。可见阅读是学习语文的最核心的部分。所以我们从古自今的语文教学都强 > 调了学习他人的作品,相信这也是全世界通行的一个做法。读的多了,品味就上去了;读得多了,见识就多了,就知道所谓"文思如尿崩,谁与我争锋"的境界了; > 读得多了,就知道"啊哈,原来如此"。 > > 可是反过来看看我们的程序员们是怎么培养出来的呢?基本上就是读完了字典,就去写《史记》,荒谬绝伦。至少成批的量产教育肯定如此。仔细想来大学的教育甚至连一门《代码阅读与欣赏》的课程都没有,何谈编程艺术。仔细想想我身边的朋友,但凡是在码代码 > 方面有点心得的,无不是私下里读了,写了,改了大量的代码。看来文学写作的经验还是符合人类学习的规律的,而编程学习也要符合这一规律。 > > 我 深深相信,通过大量阅读优秀源码能够解决大部分程序员常犯的错误,比说结构规划不合理,并发的控制失策,异常的处理不足,代码风格不规范等等。当然所有的 > 书里都不能教你关于编程的一切,代码阅读也不能,但是如果让我之选择一种学习方式的话,那么我会选择代码阅读,因为这个是最接近"一切"的方法。 > > -- > 刘未鹏(pongba)|C++的罗浮宫 > http://blog.csdn.net/pongba > TopLanguage > http://groups.google.com/group/pongba > -- http://zoomquiet.org''' 过程改进乃是催生可促生靠谱的人的组织! PE keeps evolving organizations which promoting people be good!'''
Zeuux © 2024
京ICP备05028076号