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