十年学会程序设计[2]
十年学会程序设计
研究者Hayes,Bloom的研究表明,在几乎所有的各种领域,大约要十年才能培养出专业技能。这些领域包括下西洋棋、音乐作曲、绘画、钢琴、游泳、网球,及神经心理学和数学拓扑学。似乎没有真正的捷径--即便是莫扎特在四岁就展露出音乐天才,在他写出世界级的音乐之前仍然用了超过十三年的时间。
再看另一种类型的领域。披头士乐团似乎是在1964年的Ed Sullivan剧场表演突然地火起来并成为第一乐队的。但其实他们从1957年开始,就在利物浦、汉堡等地的小型俱乐部表演。虽然他们很早就显现强大的吸引力,但他们决定性的成功作品Sgt Pepper也到1967年才发行。Samuel Johnson则认为或许还不止十年才行,他说:任何领域的卓越成就都必须用一生的努力才能取得;稍微低一点的代价都是换不到的。Chaucer则感叹道:“生命如此短促,学习技艺却要这么地长”。
以下是我在编程上成功的秘诀:
对编程产生感兴趣并因为乐趣而写程序。确信你自始至终都能乐在其中,这样你才愿意将十年光阴投入编程事业。与其他程序员交流;阅读别人的代码。这比任何书任何培训都重要。
不断地编写。最好的学习方法是在实践中学习。从技术角度说,“在特定领域的个人最高效率并不因为经验够多就会自动获得;但若有意识的`通过努力去提升经验,个人效率会变高”而“高效的学习一般需要明确的任务和因人而异的适当难度,以及及时的反馈和重复或者修正错误的机会”。
如果你愿意,你可以去读四年大学(或再读研究生)。这可以让你满足一些工作的学历要求,同时也可让你对这个领域有更深的认识。但如你不喜欢上学,你也能(得有牺牲)通过工作获得类似的经验。无论如何,只读书是不够的。《New Hacker's Dictionary》的作者Eric Raymond 曾经说过:“计算机的教育无法让人成为编程的专家,正如研究画笔与颜料不能让人成为专业画家一样。”一个在我所有招聘过的人中属于最优秀之一的程序员只有高中毕业,但他写出很多很棒的程序,他甚至有自己的新闻组。他获得的股票期权使得他可以拥有自己的午夜酒吧。
跟其他程序员一起完成项目。在一些项目中成为最好的程序员;在一些中则充当最差的一个。当你是最佳的,你要测试自己领导项目的能力,并以你的能力鼓励他人。当你是最差的,要看看高手做些什么,他们不喜欢做什么(因为他们会叫你去帮他们做)。
接手别的程序员完成项目。全心投入并理解别人的程序。当原作者不在的时候,看看在理解与修改时有什么要注意的。想想如何设计你的程序使得后来维护的人容易上手。
至少学会六门编程语言。一种要支持类/对象(class abstractions)的语言,如Java或C++;一种函数式(functional abstraction)语言,如LISP或ML;一种支持语法抽象(syntactic abstraction)的语言如LISP;一种声明式语言,如Prolog或 C++模版;一种支持协同式(coroutines)编程,如Icon或Scheme; 还有一种支持并行(parallelism)的语言,如Sisal。
【十年学会程序设计[2]】相关文章:
windowsnt环境下fddi网卡驱动程序设计(2)10-06
javascript程序设计11-10
jQuery程序设计11-12
Windows 中断程序设计11-11
程序设计求职简历封面08-22
网页程序设计就业方向09-21
C语言程序设计考试大纲08-21
access数据库程序设计08-14
数据库程序设计介绍08-14
网页程序设计职业目标规划09-21