《十年编程无师自通-peterNovig.pptx》由会员分享,可在线阅读,更多相关《十年编程无师自通-peterNovig.pptx(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Teach Yourself Programming in Ten YearsTeach Yourself Programming in Ten YearsPeter Norvig1010年编程无师自通年编程无师自通西安交大 徐海兵整理发布2010-11Peter Norvig简介布朗大学应用数学毕业UCB 的计算机科学 PH.D学位ACM 资深会员人工智能专家2001年,加盟google,“GoogleGoogle手手里有大量数据也很有钱里有大量数据也很有钱”Google的研究部主Google的安全质量总监Lisp Guru著名的PAIP和AIMA的作者诺威格定理诺威格定理当一个公司的市场占
2、有率超过 50%后,就无法再使市场占有率翻番了Google 从基于搜索的 Adwords 广告扩展到基于内容的 Adsense 广告微软从操作系统软件 Windows 扩展到应用软件 OfficeGE 从一个电器公司转型到一个传媒和金融公司则是成功的转型。开发心得分享:开发心得分享:1010年编程无师自通年编程无师自通Teach Yourself Java in 7 Days为什么每个人都急不可耐?用pubdate:after 1992 after 1992 and title:daysdays and(title:learn learn or title:teach teach yourse
3、lfyourself)在Amazon上搜索:得248个结果,前7878本是计算机书本是计算机书籍籍将days换成hours,得到253本,其中前前7777本是计算机书籍本是计算机书籍头200本书中,有有96%96%是计算机书籍是计算机书籍结论:人们急于急于学会计算机计算机知识 也是惊人的易于学习易于学习Learn Pascal in Three Days学会不够时间写一些有意义的程序有意义的程序不够时间跟一些有经验的程序有经验的程序员一起工作谈论的只是表面上的精通,而谈论的只是表面上的精通,而非深入的理解非深入的理解Pascal可以学会可以学会PascalPascal的语法的语法比如说一个Ba
4、sic程序员,你可以学会用Pascal语法写出Basic风格的程序,但你学不到你学不到PascalPascal真正的优点(和缺点)真正的优点(和缺点)“如果一门语言不能影响你对编程的想法,那它就不值得去如果一门语言不能影响你对编程的想法,那它就不值得去学学”-Alan Perlis-Alan Perlis。3天:不幸的是,这是不够的1962年-1964年当选为ACM主席第一届图灵奖得主10年编程无师自通“任何领域的卓越成就都只能通过一生的努力来获得;稍低一点的代价也换不来。”-Samuel Johnson研究表明,在许多领域,都需要大约10 年时间才能培养出专业技能莫扎特,4 岁就显露出音乐天
5、才,在他写出世界级的音乐之前仍然用了超过1313年时间年时间披头士,他们似乎是在1964年的Ed Sullivan节目中突然冒头的。但其实他们从19571957年就开始表演了,即使他们很早就显示出了巨大的吸引力,他们第一次真正的成功之作Sgt.Peppers也要到19671967年年才发行开发心得分享开发心得分享:成功的处方对编程感兴趣兴趣,因为乐趣而去编程跟其他程序员交谈;阅读其他程序其他程序员交谈;阅读其他程序编程编程。最好的学习是从实践实践中学习花上大学四年或更多的时间取得入门的资格跟别的程序员一起完成项目程序员一起完成项目接手别的程序员完成项目接手别的程序员完成项目学会至少半打编程语言
6、一门面向对象语言(c+,java)一门支持函数抽象(functional abstraction)的语言(如Lisp或ML),门支持句法抽象(syntactic abstraction)的语言(如Lisp)一门支持说明性规约(declarative specification)的语言(如Prolog或C+模版)一门支持协程(coroutine)的语言(如Icon或Scheme)以及一门支持并行处理(parallelism)的语言(如Sisal)开发心得分享开发心得分享:成功的处方记住在“计算机科学”这个词组里包含“计算机”这个词尝试参与到一项语言标准化工作中拥有尽快从语言标准化工作中抽身的良好判断力在任何情况下,单从书本上学习都是不够的。“计算机科学的教育不会让任何人成为内行的程序员,正如研究画笔和颜料不会让任何人成为内行的画家”-Eric Raymond如何发现杰出的软件设计者的三步规划No Silver Bullets(Fred Brooks)尽早系统地识别出最好的设计者群体指派一个事业上的导师负责有潜质的对象的发展,小心地帮他保持职业生涯的履历。让成长中的设计师们有机会互相影响,互相激励让成长中的设计师们有机会互相影响,互相激励。“每个人都可以被教授如何雕塑;而对米开朗基罗来说,能教给他的倒是怎样能够不去雕塑。杰出的程序员也一样”。-Alan Perlis