程序員都是天生的
英文原文:Programmers are born not made
話說,程序員是一類特殊的品種,優秀的程序員更是如此——我們更愿意承認編程這種技能是一門藝術,而不是大家眼中艱苦卓絕的工科課程。編程可能更像是數學、音樂,或者是在電視劇《Firefly》中 Kaylee 所用的魔法,它是那樣讓人沉醉。
優秀的程序員常常有這種感覺,天才是很難得的,更難以復制。
在數周以前,@zidarsk8 跑過來告訴我“天哪,竟然會有這樣的家伙,我才教會他怎樣寫代碼,一轉眼他寫得比我都要好了!可惡的是,這家伙在一個月之前甚至連變量是什么都不知道,這還是不是人啊!”
我答應他在博客中如實寫出來。為什么有的人輕輕松松就能 get 編程這個技能?他們有什么特別之處?誰都能學會編程還是只有某些人才能成為一個合格的程序員,而想成為優秀的程序員是否更需要天生?
一年前我給一個高中學生做家教,他因為早先的編程課沒有及格,然后他父母請了我來教他。在一個月的時間里我悉心傳授,把我所知道的一切都教給了他,在我看來至少通過考試是沒問題了的。
到月末的時候,他已經對循環、變量賦值等等了如指掌,連函數是代碼包能做一定事情他都知道和理解了。臨走,我不得不對他父親這樣說“我已經沒什么好教的了,不過他還得需要練習來鞏固這些。”
沒錯,內心里,我是很懷疑他是否能及格的。不過如果他的老師憐憫他的話,可能會過——不過,遺憾的是,我記得這個老師在我高中時代一點都不仁慈,特別喜歡看學生受苦受難。
還有一點要聲明的是,我可不是個差老師——那個孩子還向別的學生推薦了我,并且所有孩子都給我發了感謝信——只是有些人天生就不是寫代碼的料,即便他們再努力,甚至還是連平庸二字都稱不上。
沉默的羔羊
Jeff Atwood 在 2006 年出版的《Separating Programming Sheep from Non-Programming Goats》一書中提到一項研究,聲稱可以用之檢測是否擁有編程天賦。
這個測試相當簡單,例如:
a = 5 b = 20 a = b What are a and b now?
還有不少類似的測試例子。但是只有 44% 的學生形成了一個統一賦值的心智模型——即使是錯誤的。剩下的超過半數人失敗了或者根本就回答不了。
更糟糕的是,在學了一個學期的編程之后,這個比例還是相同,還是只有 44% 的學生知道賦值如何作用。
很明顯,有的人無論怎么學就是想不明白這些。
下面我介紹一個我認為更為簡便的測試
激情
有時候,當那些擁有年輕心態的家伙(人人都能學代碼,年齡不是限制)拿到一個問題和兩個工具,他們會利用這區區兩個工具創造出四個工具,然后在網上搜索,找到更多的工具……這樣一來,很快他們就有二十個工具,好家伙!哦,對了,我還沒說這些家伙拿到的這個問題是什么?
這個問題就是激情!
寫代碼就是需要這種完完全全不帶丁點雜質的激情。當你為之深深陶醉,甚至興奮不已的時候,還怕什么問題是解決不了的呢。即使你正在解決的這個問題,你也知道是毫無意義的……這就是擁有激情的偉大所在!
別擔心你開始編程的年紀比別人大——要知道,很多研究已經表明,經驗在這一行并不是重點——關鍵要看你對編程這玩意是否擁有百折不撓的激情。
因為一旦被點燃了激情,那么其他的問題就不再是問題了。你,就是天生的程序員!
譯文鏈接:http://news.html5tricks.com/programmer-is-born.html
翻譯作者:IT 新聞 – 蔣麗麗