程序员都是天生的

移动开发
话说,程序员是一类特殊的品种,优秀的程序员更是如此——我们更愿意承认编程这种技能是一门艺术,而不是大家眼中艰苦卓绝的工科课程。编程可能更像是数学、音乐,或者是在电视剧《Firefly》中Kaylee所用的魔法,它是那样让人沉醉。

话说,程序员是一类特殊的品种,优秀的程序员更是如此——我们更愿意承认编程这种技能是一门艺术,而不是大家眼中艰苦卓绝的工科课程。编程可能更像是数学、音乐,或者是在电视剧《Firefly》中Kaylee所用的魔法,它是那样让人沉醉。

[[115805]]

优秀的程序员常常有这种感觉,天才是很难得的,更难以复制。

在数周以前,@zidarsk8跑过来告诉我“天哪,竟然会有这样的家伙,我才教会他怎样写代码,一转眼他写得比我都要好了!可恶的是,这家伙在一个月之前甚至连变量是什么都不知道,这还是不是人啊!”

我答应他在博客中如实写出来。为什么有的人轻轻松松就能get编程这个技能?他们有什么特别之处?谁都能学会编程还是只有某些人才能成为一个合格的程序员,而想成为优秀的程序员是否更需要天生?

一年前我给一个高中学生做家教,他因为早先的编程课没有及格,然后他父母请了我来教他。在一个月的时间里我悉心传授,把我所知道的一切都教给了他,在我看来至少通过考试是没问题了的。

到月末的时候,他已经对循环、变量赋值等等了如指掌,连函数是代码包能做一定事情他都知道和理解了。临走,我不得不对他父亲这样说“我已经没什么好教的了,不过他还得需要练习来巩固这些。”

没错,内心里,我是很怀疑他是否能及格的。不过如果他的老师怜悯他的话,可能会过——不过,遗憾的是,我记得这个老师在我高中时代一点都不仁慈,特别喜欢看学生受苦受难。

还有一点要声明的是,我可不是个差老师——那个孩子还向别的学生推荐了我,并且所有孩子都给我发了感谢信——只是有些人天生就不是写代码的料,即便他们再努力,甚至还是连平庸二字都称不上。

沉默的羔羊

Jeff Atwood在2006年出版的《Separating Programming Sheep from Non-Programming Goats》一书中提到一项研究,声称可以用之检测是否拥有编程天赋。

这个测试相当简单,例如:

  1. a = 5 
  2. b = 20 
  3. a = b 
  4.  
  5. What are a and b now? 

还有不少类似的测试例子。但是只有44%的学生形成了一个统一赋值的心智模型——即使是错误的。剩下的超过半数人失败了或者根本就回答不了。

更糟糕的是,在学了一个学期的编程之后,这个比例还是相同,还是只有44%的学生知道赋值如何作用。

很明显,有的人无论怎么学就是想不明白这些。

下面我介绍一个我认为更为简便的测试

激情

有时候,当那些拥有年轻心态的家伙(人人都能学代码,年龄不是限制)拿到一个问题和两个工具,他们会利用这区区两个工具创造出四个工具,然后在网上搜索,找到更多的工具……这样一来,很快他们就有二十个工具,好家伙!哦,对了,我还没说这些家伙拿到的这个问题是什么?

这个问题就是激情!

写代码就是需要这种完完全全不带丁点杂质的激情。当你为之深深陶醉,甚至兴奋不已的时候,还怕什么问题是解决不了的呢。即使你正在解决的这个问题,你也知道是毫无意义的……这就是拥有激情的伟大所在!

别担心你开始编程的年纪比别人大——要知道,很多研究已经表明,经验在这一行并不是重点——关键要看你对编程这玩意是否拥有百折不挠的激情。

因为一旦被点燃了激情,那么其他的问题就不再是问题了。你,就是天生的程序员!

译文链接:http://news.html5tricks.com/programmer-is-born.html

英文原文:Programmers are born not made

翻译作者:蒋丽丽

责任编辑:闫佳明 来源: html5tricks
相关推荐

2013-01-17 10:10:44

程序员

2012-03-30 08:52:48

2019-12-18 14:14:40

程序员存储程序

2015-09-02 08:54:35

程序员项目经理

2011-12-27 09:07:36

程序员

2019-11-07 22:00:22

程序员代码规范

2012-06-02 01:24:33

程序员

2013-08-20 09:33:59

程序员

2020-10-12 08:45:25

程序员技术开发

2011-05-13 14:34:02

程序员

2011-10-12 21:16:19

LightSwitch

2018-07-20 10:55:08

程序员科班编程

2017-11-14 21:30:15

2012-11-22 14:00:26

程序员

2012-03-06 09:22:46

程序员

2016-01-27 10:36:25

程序员自学

2019-10-17 21:24:20

互联网BAT程序员

2013-04-15 10:55:09

程序员

2012-11-08 09:49:30

C++Java程序员

2012-06-23 17:21:18

程序员
点赞
收藏

51CTO技术栈公众号