程序员必读经典长文:用十年时间自学编程
副标题[/!--empirenews.page--]
本文转自雷锋网,如需转载请至雷锋网官网申请授权。 相信很多做技术的同学都自学过,也看过「Teach Yourself Programming in Ten Years」这篇文章。虽然离初次发表已经好几年了,但所有试图自学编程的人都应该发自内心的同意它的说法(除去少数过时的具体技术部分)。直到今天,这篇经典的文章依然很有借鉴意义。以下是这篇文章的中文版。 为什么每个人都这么匆忙? 走进任何书店,你都会看到如何在 24 小时内自学 Java,同时你还可以看到很多在几天或几小时内学会 C、SQL、Ruby、算法等等的书籍。在亚马逊使用「title: teach, yourself, hours, since: 2000」进行高级搜索,我发现了 512 本这样的书。在排在前十名的书籍中,有九本是编程书籍,剩下一本是关于财务管理的。用「teach yourself」代替「learn」,或者用「day」代替「hours」产生的结果类似。 结论是,要么人们急于学习编程,要么编程比其他任何东西都更容易学习。Felleisen 等人在他们的书《How to Design Programs》中提到,「糟糕的编程很容易,即便是白痴都可以在 21 天内学会」时,请对这一观点表示赞同。 让我们来分析一下在 24 小时内学会 C++意味着什么:
用十年时间自学编程 很多研究人员发现,在各种领域要成为专家大约需要十年时间,这些领域包括国际象棋、音乐创作、电报、绘画、钢琴演奏、游泳、网球和科学研究、神经心理学和拓扑学等等。成功的关键是不断的实践:不只是一次又一次地做,而是每次都用一个超出你目前能力的任务挑战你自己,尝试去解决它,在做它的同时和之后分析你的表现,纠正错误,然后重复这个循环。人和事情都没有真正的捷径:即便对莫扎特来说也是如此。4 岁就被称为音乐天才的他,在开始创作世界级的音乐之前又花了 13 年时间来打磨自己。另一个例子是披头士乐队。披头士乐队似乎以一系列的热门歌曲和 1964 年在艾德沙利文秀上的亮相而一夜成名。但实际上自从 1957 年以来,他们一直在 Liverpool 和 Hamburg 的小酒吧里面演出,虽然很早以前他们就受到大众的欢迎,但他们第一次取得重大成功的专辑「Sgt. Peppers」是在 1967 年发布的。 Malcolm Gladwell 已经普及了这个想法,尽管他的观点是 10000 小时专注的努力,而不是 10 年。Henri Cartier-Bresson (1908-2004) 有一句名言:「你的前 10000 张照片是你最差的作品。」(他没有预料到使用数码相机,有些人可以在一周内就拍完 10000 张照片。)真正成为专家可能需要一辈子:Samuel Johnson(1709-1784)说:「成为任何领域的卓越人士都需要毕生的努力,投机取巧并不可行」。Chaucer (1340-1400) 抱怨说:「人生太短暂了,而知识是无穷的」。Hippocrates (约公元前 400 年) 因为那句名言「ars longa, vita brevis」而被人称颂,这句话的原文是「Ars longa, vita brevis, occasio praeceps, experimentum periculosum, iudicium difficile」,意思是「生命很短暂,但是技艺却很高深,机遇转瞬即逝,探索难以捉摸,抉择困难重重」。 当然,没有一个数字可以作为最终的答案,假定所有的技能(如编程、下棋、跳棋和音乐演奏)都需要完全相同的时间来掌握,或者所有人都需要完全相同的时间是不合理的。正如 K. Anders Ericsson 教授所说,「在大多数领域,即使是最有才华的人也需要很多时间才能达到最高水平,这是非常值得注意的。10000 小时这个数字让你感觉到,我们说的是一周 10 到 20 个小时。」 你想成为一名程序员 以下是我的编程秘诀:
|