首页 存档 技术 查看内容

“21天教你学会C ”

2018-3-30 13:00 |来自: 互联网 350 0

摘要: 原文:http://norvig.com/21-days.html 译者:刘海栗、陈皓 译文:coolshell.cn/articles/2250.html/comment-page-3#comments(点击阅读原文即可前往) 下面是一个《Teach Yourself C in 21 Days》的流程图,请各 ...

原文:http://norvig.com/21-days.html

译者:刘海栗、陈皓

译文:coolshell.cn/articles/2250.html/comment-page-3#comments(点击阅读原文即可前往)


下面是一个《Teach Yourself C in 21 Days》的流程图,请各位程序员同仁认真领会。如果有必要,你可以查看这个图书以作参照:http://www.china-pub.com/27043



看完上面这个图片,我在想,我学习C 有12年了,好像C 也没有学得特别懂,看到STL和泛型,还是很头大。不过,我应该去考虑研究量子物理和生物化学,这样,我才能重返98年杀掉还在大学的我,然后达到21天搞定C 的目标。另外,得要特别提醒刚刚开始学习C 的朋友,第21天的时候,小心被人杀害。呵呵。


当然,上面只是一个禁用词语此类图片,学习一门技术,需要你很长的时间,正如图片中的第三图和第四图所示,你需要用十年的时间去不断在尝试,并在错误中总结经验教训,以及在项目开发中通过与别人相互沟通互相学习来历练自己。你才能算得上是真正学会。


这里有篇文章叫《Teach Yourself Programming in Ten Years》,网上有人翻译了一下,不过原文已被更新了,我把网上的译文转载并更新如下:


《用十年来学编程》
Peter Norvig


为什么每个人都急不可耐?


走进任何一家书店,你会看见《Teach Yourself Java in 7 Days》(7天Java无师自通)的旁边是一长排看不到尽头的类似书籍,它们要教会你Visual Basic、Windows、Internet等等,而只需要几天甚至几小时。我在Amazon.com上进行了如下搜索:


pubdate: after 1992 and title: days and (title: learn or title: teach yourself)

(出版日期:1992年后 and 书名:天 and (书名:学会 or 书名:无师自通))


我一共得到了248个搜索结果。前面的78个是计算机书籍(第79个是《Learn Bengali in 30 days》,30天学会孟加拉语)。我把关键词“days”换成“hours”,得到了非常相似的结果:这次有253本书,头77本是计算机书籍,第78本是《Teach Yourself Grammar and Style in 24 Hours》(24小时学会文法和文体)。头200本书中,有96%是计算机书籍。


结论是,要么是人们非常急于学会计算机,要么就是不知道为什么计算机惊人地简单,比任何东西都容易学会。没有一本书是要在几天里教会人们欣赏贝多芬或者量子物理学,甚至怎样给狗打扮。在《How to Design Programs》这本书里说“Bad programming is easy. Idiots can learn it in 21 days, even if they are dummies.”(坏的程序是很容易的,就算他们是笨蛋白痴都可以在21天内学会。)


让我们来分析一下像《Learn C in Three Days》(3天学会C )这样的题目到底是什么意思:


  • 学会:在3天时间里,你不够时间写一些有意义的程序,并从它们的失败与成功中学习。你不够时间跟一些有经验的程序员一起工作,你不会知道在C 那样的环境中是什么滋味。简而言之,没有足够的时间让你学到很多东西。所以这些书谈论的只是表面上的精通,而非深入的理解。如Alexander Pope(英国诗人、作家,1688-1744)所言,一知半解是危险的(a little learning is a dangerous thing)


  • C :在3天时间里你可以学会C 的语法(如果你已经会一门类似的语言),但你无法学到多少如何运用这些语法。简而言之,如果你是,比如说一个Basic程序员,你可以学会用C 语法写出Basic风格的程序,但你学不到C 真正的优点(和缺点)。那关键在哪里?Alan Perlis(ACM第一任主席,图灵奖得主,1922-1990)曾经说过:“如果一门语言不能影响你对编程的想法,那它就不值得去学”。另一种观点是,有时候你不得不学一点C (更可能是javascript和Flash Flex之类)的皮毛,因为你需要接触现有的工具,用来完成特定的任务。但此时你不是在学习如何编程,你是在学习如何完成任务。



  • 3天:不幸的是,这是不够的,正如下一节所言。


10年学编程


一些研究者(Bloom (1985),Bryan

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部