- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[十年学会编程
这里分享一篇 Peter Norvig的 《十年学会程序设计》 (Peter Norvig 系Google研究院主任、美国计算机协会(ACM)资深会员(Fellow))。全文如下:
十年学会程序设计
Peter Norvig (Copyright 2001) 原文网址
为何大家如此匆忙?
走进任何一家书店,你会看到书架上一排不见尽头的放着如 7天自学Java语言 以及几天或者几小时学会Windows, 因特网或者Visual Basic 这类书。我在Amazon 网上书店用一下的方式进行高级搜索:
出版年份: 1992以后 书名包括:“天” 和 “学习” 或 “自学”
得到了268条搜索结果,其中前78条都是计算机书(第79条是 30天学会孟加拉语)。 我用 “小时” 代替“天” 作为关键字,得到了神奇般类似的结果:这次有253本书,前77本是计算机书, 第78本是 24小时自学语法和写作风格。排名前200的书中有96%是计算机书。
由此可见,人们要不就是急着想学会计算机,要不就是计算机相比于其他事情太容易学会了。比如说把,没有书是写在几天弹奏贝多芬或几天学会量子物理,甚至也没有几天学会帮小狗打扮这样的书。
让我们分析一下 三天学会Pascal语言 [英文网页] 这样的标题表达了什么意思:
?学会:
在 三天内,你没有时间去写几个有意义的程序,或者从成功和失败中学到东西。你也没时间跟有经验的程序员一起工作,所以也无法了解在真正编程是什么样子。简短 的说,就学会而言,时间显然不够。所以这些书只是浮于表面的熟悉,而不是深刻的理解。如同Alexander Pope 所说,一知半解是危险的。
?Pascal 语言:
三 天内你可能学会Pasacl语言的语法(如果你已经掌握一个类似的编程语言),但你无法学会如何合理运用这些语法。简言之,如果你是个Basic 程序员,你可以用Pascal 语言写出类似Basic 风格的程序,但你学不到Pascal语言的优点(还有缺点)到底在哪。重点是什么呢? Alan Perlis 曾说: “如果编程语言不能影响你的编程思维,那就不值得去学.” 另一个可能是,你必须学会一点点Pascal语言(或是像VB语言、Javascript等),因为你需要跟现成的工具组合完成特定的工作。不过这个时候,你实际上学的不是怎么写程序,而是要学着如何完成工作。
?三天
不幸的是三天根本不够;下面的章节会告诉你为什么
十年学会程序设计
研究者 Hayes, Bloom 的研究表明,在几乎所有的各种领域,大约要十年才能培养出专业技能。这些领域包括下西洋棋、音乐作曲、绘画、钢琴、游泳、网球,及神经心理学和数学拓扑学。似乎没有真正的捷径--即便是莫扎特在四岁就展露出音乐天才,在他写出世界级的音乐之前仍然用了超过十三年的时间。
再看另一种类型的领域。披头士乐团似乎是在1964年的Ed Sullivan 剧场表演突然地火起来并成为第一乐队的。但其实他们从 1957 年开始,就在利物浦、汉堡等地的小型俱乐部表演。虽然他们很早就显现强大的吸引力,但他们决定性的成功作品 Sgt Pepper 也到1967年才发行。Samuel Johnson 则认为或许还不止十年才行,他说:任何领域的卓越成就都必须用一生的努力才能取得; 稍微低一点的代价都是换不到的。Chaucer 则感叹道: “生命如此短促,学习技艺却要这么地长”
以下是我在编程上成功的秘诀:
?对编程产生感兴趣并因为乐趣而写程序。确信你自始至终都能乐在其中,这样你才愿意将十年光阴投入编程事业.
?与其他程序员交流;阅读别人的代码。这比任何书任何培训都重要。
?不断地编写。 最好的学习方法是在实践中学习 。从技术角度说,”在特定领域的个人最高效率并不因为经验够多就会自动获得;但若有意识的通过努力去提升经验,个人效率会变高”(第336页)而 “高效的学习一般需要明确的任务和因人而异的适当难度,以及及时的反馈和重复或者修正错误的机会”(20~21页)Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life (实践中认知:心智、数学与日常文化) 是这个观点的一本有趣参考书籍。
?如 果你愿意,你可以去读四年大学(或再读研究生)。这可以让你满足一些工作的学历要求,同时也可让你对这个领域有更深的认识。但如你不喜欢上学,你也能(得 有牺牲)通过工作获得类似的经验。无论如何,只读书是不够的。《New Hacker’s Dictionary》的作者Eric Raymond 曾经说过: “计算机的教育无法让人成为编程的专家,正如研究画笔与颜料不
文档评论(0)