为什么大家都这么着急?
走进任何一家书店,您将看到如何在24小时内教会自己Java,以及提供在几天或几小时内教授C、SQL、Ruby、算法等的无休止的变体。亚马逊高级搜索[标题:教学,你自己,小时,自2000年以来,发现512这样的书。在前十名中,有九本是编程书(另一本是关于簿记的)。类似的结果来自于将“自学”改为“学习”,或将“小时”替换为“天”。
结论是,要么人们急于学习编程,要么编程比其他任何东西都容易得多。费莱森等人在他们的“如何设计程序”(How To Design Program)一书中,他们表示:“糟糕的编程很容易,白痴可以在21天内学会它,即使他们是假人。”这位狂暴的鹅漫画也有自己的想法。
让我们分析24小时内自学C++这样的标题可能意味着什么:
自学:在24小时内,你就没有时间写几个重要的程序,从你的成功和失败中吸取教训。您将没有时间与有经验的程序员一起工作,并了解在C++环境中生活是什么感觉。总之,你没有时间学到很多东西。因此,这本书只能谈论一种肤浅的熟悉,而不是一种深刻的理解。正如亚历山大·波普所说,一点点学习是一件危险的事情。
C++:在24小时内,您可能可以学习C++的一些语法(如果您已经知道另一种语言),但您无法了解如何使用该语言。简单地说,如果你是一个基本程序员,你可以学习用C++语法以Basic的方式编写程序,但是你不能知道C++实际上是好的(和坏的)什么。那有什么意义?AlanPerlis曾经说过:“一种不影响你对编程的思考方式的语言是不值得知道的”。一个可能的问题是,您必须学习一点C++(或者更可能的是,类似JavaScript或处理的东西),因为您需要与现有工具接口来完成特定的任务。但是你不是在学习如何编程,而是在学习如何完成这个任务。
在24小时内:不幸的是,这还不够,正如下一节所示。
十年内自学编程
研究人员(Bloom(1985)、Bryan&Harter(1899年)、Hayes(1989)、Simmon&Chase(1973))已经证明,在包括国际象棋、音乐创作、电报运算、绘画、钢琴演奏、游泳、网球以及神经心理学和拓扑学研究在内的任何广泛领域,都需要十年的时间才能发展出专门知识。关键在于深思熟虑的练习:不只是一次又一次地去做,而是用一项超出你目前能力范围的任务来挑战自己,尝试它,分析你