有一部国外电影 开头是一个赞美科学家的开头自白,说他被冤枉了,说他和杀死秘书,他就说

上他声称自己顶多只是一个平庸的程序员,幻灯片上也写着:


这次演讲非常精彩视频可以在上看到(如果不想看视频,这里也有一篇文字总结:) Jacob 以马拉松为例,試图说明大部分人在大部分领域都是平庸的(Most people are average at most things.)特别好的和特别坏的都是极少数,但在程序员领域我们听到的大都是某某程序员 rocks 或者 sucks ,基本没有中间状态这是一件非常奇怪的事情。他还提到“真正的程序员”(real programmer)这个概念也就是所谓的 "10x programmer" ,你只有精通某些原理或者长嘚像 Mark Zarkerberg 才算是一个 real programmer 而一个使用各种云服务以及 API 快速搭建自己应用的人就不算,这非常可笑顺带一提,Jacob 的就是 "not a Jacob 认为这种关于“编程天才”嘚神话非常有害一方面它把行业门槛设置得特别高,令很多人望而却步另一方面它也在折磨行业内的人,因为你如果不能 rocks 就会变成 sucks ,所以不得不用一切时间来努力学习和工作导致影响生活。他认为我们应该改变这种态度编程只是一些技能,并不需要太多天分它昰可以学习的,而且做一个 平庸的程序员不丢人"it's cool to be okay at these skills"。跑步的人有很多种——短跑运动员纯粹为了锻炼身体的人,参加马拉松的人等等。为什么编程就一定要做 real programmer 而且做不到就觉得自己不配编程呢?

这个演讲在大会现场赢得很多掌声在提问环节也可以听到一些怯生生的聲音说:“我也是一个平庸的程序员。” 不过在其它地方也引起一些争议有人认为拿跑步和编程对比并不恰当,有人说程序员能力的差距确实大得惊人有兴趣的人可以去看。

对于我个人来说Jacob 的演讲触动了我多年来的心结,让我非常感动我一直认为自己顶多只是一个岼庸的程序员,而且无论多么努力学习总觉得自己不是一个 real programmer ,而且好像越走越偏Jacob的演讲让我明白,有此苦恼的大概不只我一人所以這里写一下自己的心路历程,希望对别人有一些启发

公开承认自己平庸是一件危险的事情,如果不能说明你智商低或者没有天分至少說明你态度有问题:“平庸就应该去努力练习,而不是写文章为平庸辩 解”而当你说 Jacob 这样的人也承认自己平庸时,就会出现一堆带有“資格论”的反驳:“Jacob至少写了那么多代码你怎么能和别人比” “人家那样说是谦虚,你这样就是无耻了”顿时你就会觉得自己和那些呮会从伟大人物身上挑毛病的小人没什么两样。幸运的是今后我很可能不会以编程为业 了,所以这些事情都无所谓了可以诚恳地说一丅自己的经历。

我对 real programmer 的印象始于大学尽管对于其它专业的人来说我们和修电脑的没什么两样,但专业内部已经隐约有对某种高级事物的崇拜记得大一时一个同学对我说:“我们现在 还学 C,外面早就开始用 Java 了”那个时候专业内也已经流传了不少程序员的传说,比如某个學长多么厉害或者微软某个程序员一个人做完了一个项目组的工作。相信很多人都听说过那个故 事大意是一个人电脑坏了,于是找一個电脑高手来修电脑高手拿来电话,连上电脑花了整整一夜的时间用 0 和 1 写了一个操作系统,故事的结局是“这个电脑高手去了美国杳无音信”。当时我听到这个故事的时候半信半疑居然宁愿相信它是真的!因为如果万一它是真的而 我不相信,只能说明我的技术水平戓者智商无法理解那个层次的东西那就太糟糕了。那个时候真的很想变得厉害

随着对专业的了解,很快我们就开始嘲笑那种“Java 比 C 新所以比 C 好”的看法,转而去相信“越底层越牛”的论调写 C 的比写 Web 的厉害,写汇编的又比写 C 的厉害为什么呢?因为他们“基础更扎实哽了解原理。” 这种论调发展到一个极致就是:学数学或者物理这种“硬科学”的人如果转行写程序肯定比我们厉害。他们算法一定比峩们好而且就是这帮家发明的计算机啊我 靠。有一段时间隐约觉的别的专业的转行写程序都会比我厉害哪怕是一个钢琴家——因为他掱指灵活打字更快。

大学里另外一个让我印象极其深刻的传说就是:高手写程序不用 IDE 都是直接记事本。高手摘花飞叶皆可伤人谈武器囷工具,那就是落了下乘只有不入流的才整天研究哪个工具更有效率。所以在很长一段时间内我都因为自己没 用记事本写程序而怀疑自巳的能力直到后来工作之后我接触到了 Vim ,发现它长得和记事本还真的挺像的

be successful with another approach." 所以尽管我一直没有读完这本书,而且应该也不会去读了但对它总有一种情结,以至于两年前出国的时候还把它带在身边

毕业之后开始做职业程序员,每天都是和程序员打交道关注的也都昰科技新闻,那时候硅谷文化也越来越流行所以更加向往和崇拜 real programmer 。Joel Spolsky 写过一篇《飙高音》其中的两段可以算作是对 real programmer 的最佳诠释:

用许多岼庸的程序员取代少数优秀的程序员,这种做法的真正问题在于不管平庸的程序员工作多长时间,他们做出来的东西都无法像优秀程序员做得那样好。


一流的歌唱演员不管在什么时候都可以很轻松地唱出高音,而平庸的歌唱演员就是永远做不到这一点莫扎特的歌剧《魔笛》中有一段著名的咏叹 调"Queen of the Night",音高必须达到F6(女高音的最高音高)才能唱好这首歌世界上能达到这个标准的女高音都快要绝迹了,洏飙不到著名的F6你就是不能表 演"Queen of the Night"。

简单地说如果你缺乏天赋,那么你再努力也做不到 real programmer 可以做到的事情,而一个平庸的程序员就是一個烂程序员这种断言式的文章一直比较能鼓舞人心,那些认为自己比较聪明的人也很喜欢这种说法但对于我这种一 直怀疑自己智商和能力的人来说,它就像一个阴影:万一我真的没办法飙高音怎么办

因为这种对 real programmer 的仰视,从工作以来不对,是从大学以来有一个想法┅直挥之不去,那就是:I don't deserve it.

大学里我也有作品拿过奖但总觉得自己的代码是一坨屎,不配拿那个奖如果当时有另外一个 real programmer ,肯定轮不到我

大四找工作的时候,尽管我是通过正规的笔试和面试拿到的 offer 而且被录用的只有我一个本科生,我还是觉得自己不配得到那份工作因為没写过 10 万行代码,也不是一个 real programmer.

刚工作的时候我每天从早晨 9 点到晚上 9 点都在公司有时候周末也去,手头工作做完了就看技术文档无聊叻就用打字软件练习正确的指法,以便编程可以快些即便这样,我还是怀疑自己对编程的热 情觉得自己离一个 real programmer 越来越远,不适合做程序员

后来去雅虎北研面试,从早晨 8 点面试到 12 点第二天又跑去美国的同事视频面试。测试其实已经很严格了而且我平时没有针对性地刷题或做其它应试准备,但很奇怪我还是觉得自己能力不行,只是侥幸拿到了 offer.

平时帮别人写代码或者和别的部门合作,第一个念头就昰自己的能力不行尽管最后项目顺利完成,对方也对我评价不错但我还是觉得自己不配得到那些夸奖,甚至想:如果他们见到 real programmer 就不會称赞我的工作了。

这种心理还有另外一个负面作用那就是时时刻刻焦虑,害怕掉队Jacob 在演讲中也说到:

这段话准确地说出了我以前的某种状态。我对除了编程之外的很多事情都有兴趣从生活的角度来看,这其实是一件好事但我却常常因此有负罪感,因为 它们耽误了峩编程、看文档和学习新技术的时间那些事情本来是可以带给我快乐的,但每次做好像都有一种偷偷摸摸的感觉被别人问到也羞于提起。现在回头 看之前有段时间我的工作和生活其实平衡得很好,但当时我只有不断告诉自己“你本来就平庸”甚至把自己想象成一个洎甘堕落的人才能安心享受,实在太扭曲 了

以前我有时还喜欢写点东西,认为自己是在分享但后来总觉的自己又不是 real programmer ,分享的东西有什么价值呢而且写文章会耽误编程的时间,程序员文化又特别推崇“务实”反对“务虚”——写作就是“务虚”,“只会打嘴炮”在程序员群体 里面是一个非常严重的侮辱记得之前看到过一条招聘信息,明确地说“不欢迎经常写博客的人”事实上写作不止是表达,咜反过来还可以帮助思考很多想法在 下笔之前是不存在的,我从中获益良多而且,“不愿意表达”和“不会表达”有着本质的区别鉯前如果一个猥琐不堪、一句话都说不清楚的人过来朝我扔一 句"Talk is cheap. Show me the

以上种种不安和困扰,让我常常觉得自己从性格到业余爱好都不适合做程序员程序员文化告诉我的是:如果你不是一个 real programmer 或者不在成长为一个 real programmer 的路上,那么你连一个 programmer 都不是Hacker News 上针对 Jacob 演讲的讨论中,panjaro 说了他自己的經历:

他的描述让我感同身受当初我也痛恨自己对数学不感兴趣,整天在自习室苦苦复习离散数学和算法工作之后也常常想要重新回頭学习这些“基础知 识”。有时候即使你发现在某些工作中算法并不像传说中那么重要也不能说出来,否则你就是忽视基础或者你从倳的就是程序员当中的低级工作,以至于体会不 到算法的重要性

程序员文化当中“能力决定一切”的态度很多时候都值得商榷,因为除叻极少数的计算机科学家大部分程序员从事的是产品开发工作,而在产品开发中是 没办法用一个简单的标准衡量一个程序员的能力的┅个人可能编程能力很强,但他可能执意要实现自己的想法以至于拖累整个项目。另外编程能力强的人不一 定能从事某些“低级的”、不需要太多智力的工作,那样的工作可能需要大量的耐心而耐心和传说中的天赋一样,也不是一种人尽可夫的品质以前看到过一个招 聘信息很有意思,里面说希望应聘者“已经结婚或者至少有过一段长期的恋爱关系”,他们觉得这样的人懂得与别人相处不太容易昰一个鄙视别人工作的 jerk.

我并不是否认大牛的存在,Linus 和 John Carmack 就不用说了刚毕业在中国雅虎的时候就遇见过一位大牛同事,清华毕业基督徒,巳婚业余时间喜欢编程和做饭,经常一个人做完整个团队的工作打字奇快, 每次技术分享都有很多人去听甚至 HR 都因为好奇过去。听眾提问的时候他能清楚讲解某个不常用命令的某个参数的作用,简直就是活的 user manual 他非常乐于助人,经常看到他在 mail list 里面回答别人问题从問题的成因分析到解决方案都一一给出,表达非常清晰让我比较惊讶的是他对很多琐碎的事情也极有耐心,记得公司想要一些人申请专利 周末就看到他在那里专心写申请。另外一个和我比较要好的同事本来觉得自己还算有天分比我厉害得多,在大学里真的写过 10 万行代碼但见过大牛之后立刻发现自己其实没天分。那个时候他女朋友在外地他业余时间也就是看看电影写写代码,不想写的时候就打开大犇的 Github 看看一般都会发现他又有新的 commit ,然后就有动力继续写了

问题在于并不是所有人都是大牛,整个行业需要的也不止是大牛举个例孓,很多写 PHP 的大概看不起那种 “Wordpress 工程师”就是只懂 Wordpress 而对 PHP 了解不够深入的人。但很多公司确实就需要做一个小网站只需要你能开发 Wordpress Theme 就够叻,不需要研究更多东西帮别人开发 Wordpress Theme 完全可以谋生,甚至挣得不少但他们大概自己也觉得自己不是 real programmer ,所以很少发声前一段时间有个應用很火,但他们团队的文章开头就说“我们团队中没有大牛”好像那是很丢人的事情,一定要大牛组成的团队才配开发出好东 西如果抛开其它不谈,“一个人凭借自己的能力养活自己他就应该得到尊重”,这话听起来没有任何问题只是一旦牵扯到代码,好像只研究

很多公司也迷信只有大神程序员才能做事所以在招聘的时候会说他们只招聘 Top 1% 的程序员,这其实根本不可能Joel Spolsky 早就写文章谈过。你不可能招聘到 Top 1% 只可能招聘到应聘者中的 Top 1%. 我们可以想象一下,最厉害的人可能直接去了 Facebook, Google 或者硅谷的创业公司差一点的可能选择百度腾讯等国內巨头,或者非常有前景的创业公司剩下的人才是市场中的人,这里面的 Top 1% 已经不是全部人中的 Top 1% 了所以看到这种招聘可以评估一下这个公司,如果不是特别牛完全可以大胆去应聘,因为你在那些愿意应聘这个公司的人当中可能已经是 Top 1% 了。

其实我非常喜欢这个行业的某些理想主义色彩过去这几年也认识了不少朋友,发现了不少 thinker 对我启发很大。可惜我常常感到不舒服也觉得和这种程序员文化或者 Geek 文囮格格不入,虽然很努力去尝试过但发现还是不行。当然也可能并不是文化问题,而是因为像我和 panjaro 这样的人胆小浮躁太在乎别人看法,容易焦虑和抑郁这样的人大概在任何行业都是 loser 。希望其他人可以活得理直气壮一点

过去常常希望找到人生目标,而当怀疑自己不昰 real programmer 的时候又庆幸生活是一团乱麻而人生可能并没有意义,不然的话可能每时每刻都要生活在一条“鄙视链”当中了。

是欧美的.好像是2010年拍的... 是欧美的.恏像是2010年拍的

你对这个回答的评价是

第429号法廷 欧美电影

你对这个回答的评价是?

你对这个回答的评价是

你对这个回答的评价是?

说不萣在被子里面聊天呢哈哈

你对这个回答的评价是?

我要回帖

更多关于 赞美科学家的开头 的文章

 

随机推荐