十年自学编程

十年内自学编程

研究者(Bloom(1985)、Bryan & Harter(1899)、Hayes(1989)、Simmon & Chase(1973))都表明,在下棋、音乐创作、电报操作、绘画、弹钢琴、游泳、网球以及神经心理学和拓扑学研究等众多领域中的任何一个领域,都需要大约10年的时间来发展专业知识。关键是刻意练习:不是一味地重复做,而是用一个刚好超出你目前能力的任务来挑战自己,尝试一下,在做的时候和做完之后分析自己的表现,并纠正任何错误。然后再重复。然后再重复。似乎没有真正的捷径:即使是4岁就成为音乐神童的莫扎特,也花了13年时间才开始创作出世界级的音乐。在另一种类型中,披头士乐队似乎是凭借一连串的#1热门歌曲和1964年在埃德-沙利文节目中的亮相而崭露头角的。但自1957年以来,他们一直在利物浦和汉堡的小俱乐部演出,虽然他们早期具有大众吸引力,但他们的第一个巨大的评论成功,Sgt.Peppers,于1967年发布。

马尔科姆-格拉德威尔(Malcolm Gladwell)已经普及了这个想法,尽管他专注于10000小时,而不是10年。亨利-卡蒂尔-布列松(1908-2004)有另一个衡量标准:"你的前一万张照片是你最糟糕的作品"。他没有预料到,用数码相机,有些人可以在一周内达到这个大关)。真正的专业技能可能需要一生的时间。塞缪尔-约翰逊(1709-1784)说过 "任何部门的卓越只有通过一生的努力才能达到,它是不可能用较低的价格买到的。" 而乔叟(1340-1400)抱怨 "lyf so short,the craft so long to lerne"。希波克拉底(Hippocrates,约公元前400年)以节选 "Ars longa,vita brevis "著称,这是较长引文 "Ars longa,vita brevis,occasionio praeceps,experimentum periculosum,iudicium difficile "的一部分,英文译为 "Life is short,[the]craft long,opportunity fleeting,experiment treacherous,judge difficult"。当然,没有一个单一的数字可以作为最终的答案:假设所有的技能(如编程、下棋、下跳棋和音乐演奏)都可能需要完全相同的时间来掌握,也假设所有的人都需要完全相同的时间,这似乎并不合理。正如安德斯-爱立信教授所说:"在大多数领域,即使是最有天赋的人也需要多少时间才能达到最高水平的表现。1万小时这个数字只是让你感觉到,我们说的是每周10到20个小时的年限,而那些有些人认为是最有天分的人仍然需要这样的时间才能达到最高水平。

为什么大家都这么着急?

走进任何一家书店,你都会看到《24小时内自学Java》,旁边还有无穷无尽的变种,提供在几天或几个小时内教授C、SQL、Ruby、算法等。亚马逊高级搜索【标题:教,自己,小时,自:2000年以来,发现512本这样的书。前十名中,有9本是编程类书籍(另一本是关于记账的)。把 "教自己 "换成 "学",或者把 "小时 "换成 "天",也有类似的结果。

结论是,要么是人们大肆学习编程,要么是编程在某种程度上比其他东西更容易学得美妙。Felleisen等人在他们的《如何设计程序》一书中对这一趋势进行了点拨,他们说:"糟糕的编程很容易。白痴可以在21天内学会它,即使他们是傻瓜。" Abtruse Goose的漫画也有他们的看法。

所以你想成为一名程序员


这是我的编程成功秘诀:

\bullet 对编程感兴趣,因为好玩,所以要做一些。确保它一直足够有趣,这样你才会愿意投入你的十年/10000小时。

\bullet 程序。最好的学习是在实践中学习。更技术化地讲,"个人在某一领域中的最大表现水平并不是作为长期经验的函数而自动达到的,但即使是经验丰富的个人,也可以通过刻意努力提高表现水平"。(第366页)而 "最有效的学习需要有一个明确的任务,对特定个体来说有适当的难度,有信息反馈,有重复和纠正错误的机会"。(第20-21页)《实践中的认知》一书。"(第20-21页)《实践中的认知:日常生活中的心智、数学和文化》一书是这一观点的有趣参考。

\bullet 与其他程序员交流;阅读其他程序。这比任何书籍或培训课程都重要。

\bullet 如果你愿意,在大学里投入四年的时间(或者在研究生院里投入更多)。这将使你有机会从事一些需要证书的工作,而且会使你对这个领域有更深的了解,但如果你不喜欢上学,你可以(在有一定的奉献精神的情况下)自己或在工作中获得类似的经验。无论如何,仅靠书本学习是不够的。新黑客词典》的作者埃里克-雷蒙德(Eric Raymond)说:"计算机科学教育不能使任何人成为程序员专家,就像学习毛笔和颜料可以使某人成为画家专家一样"。我曾经雇佣过的一个最好的程序员只有高中学历,他制作了很多优秀的软件,拥有自己的新闻集团,股票期权赚得足够买下自己的夜总会。

\bullet 与其他程序员一起做项目。在一些项目上成为最好的程序员,在另一些项目上成为最差的程序员。当你是最好的,你可以检验你领导项目的能力,并以你的眼光激励他人。当你是最差的时候,你可以学习高手们做的事情,也可以学习他们不喜欢做的事情(因为他们让你为他们做)。

\bullet  跟着其他程序员做项目。理解别人写的程序。当原来的程序员不在的时候,看看要怎么理解和修复它。思考如何设计你的程序,让你之后维护程序的人更轻松。

\bullet 至少学习半打编程语言。包括一门强调类抽象的语言(如Java或C++),一门强调功能抽象的语言(如Lisp或ML或Haskell),一门支持语法抽象的语言(如Lisp),一门支持声明式规范的语言(如Prolog或C++模板),一门强调并行的语言(如Clojure或Go)。

\bullet 记住,"计算机科学 "中有个 "计算机"。知道你的计算机执行一条指令、从内存中取一个字(有和没有缓存遗漏)、从磁盘中连续读取字、寻找到磁盘上的新位置需要多长时间。(答案在此。)

\bullet 参与语言标准化工作。可能是ANSI C++委员会,也可能是决定你的本地编码风格是采用2个还是4个空格缩进级别。不管是哪种方式,你都能了解到其他人喜欢的语言是什么,他们有多深的感受,甚至可能会了解到他们为什么会有这样的感受。

\bullet 要有良好的意识,尽快摆脱语言标准化工作。


考虑到这些,其仅靠书本学习能走多远,值得商榷。在第一个孩子出生前,我把所有的How To书都看了一遍,但还是觉得自己是个毫无头绪的新手。30个月后,当我的第二个孩子即将出生时,我又回到书本上复习了吗?相反,我依靠自己的亲身经历,这比专家们写的几千页书更有用,也更让我放心。


Fred Brooks在他的文章《No Silver Bullet》中指出了寻找优秀软件设计师的三个部分计划:

1.尽早系统地识别顶级设计师。

2.指派一名职业导师负责对潜在客户的培养,并认真保存职业档案。

3.为成长中的设计师提供相互交流、相互激励的机会


这就假设有些人已经具备了成为一名优秀设计师的必备素质,工作就是要适当地诱导他们。Alan Perlis说得更简洁。"每个人都可以被教成雕塑家 米开朗基罗就得教他如何不雕刻。伟大的程序员也是如此"。Perlis的意思是说,伟大的人都有一些超越他们训练的内在品质。但这种品质从何而来?是与生俱来的吗?还是他们通过勤奋培养出来的?正如Auguste Gusteau(《料理鼠王》中虚构的厨师)所说,"任何人都可以做饭,但只有无畏者才能成为伟大的人"。我认为更多的是愿意将自己生命中的大部分时间投入到刻意的实践中。但也许无畏是一种概括的方式。或者,正如食神的批评家安东-埃戈所说:"不是每个人都能成为伟大的艺术家,但伟大的艺术家可以来自任何地方。"

所以去买那本Java/Ruby/Javascript/PHP的书吧;你可能会从中得到一些用处。但你不会在24小时或21天内改变你的生活,也不会改变你作为一个程序员的真正的整体专业知识。怎么样在24个月内努力地不断提高呢?好了,现在你开始有收获了......

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • 为什么每个人都这么着急? 走进任何书店,您将看到如何在24小时内自学Java,以及无穷无尽的变体,可以在几天或几小...
    wangxiaolong阅读 288评论 0 1
  • 彼得·诺维格 为什么大家都这么着急? 走进任何一家书店,你就会知道怎么做24小时自学爪哇除了无止境的变化之外,还提...
    沐柯_b26a阅读 232评论 0 0
  • 彼得·诺维格 为什么大家都这么着急? 走进任何一家书店,你就会知道怎么做24小时自学爪哇除了无止境的变化之外,...
    清风A1阅读 177评论 0 1
  • Teach Yourself Programming in Ten Years Peter Norvig Why ...
    徐金威阅读 282评论 0 1
  • 作者:彼得·诺维格 为什么大家都这么着急? 走进任何一家书店,你就会看到教自己Java24小时内除了提供无穷无尽的...
    NikT阅读 264评论 0 1