一個人是否能成為程序員是上天注定的

本文的作者 Swizec Teller
本文的作者是一個斯洛文尼亞共和國的獨立程序員,自稱是“戴帽子的黑客”,他使用Pascal、Delphi、 C/C++、Python,PHP,node.js等語言編程,他曾是著名的開源論壇phpBB的幾個主要模塊的開發人,先后為 hipstervision.org等五家公司網站的創始人或合作創始人,他目前的主要收入來自postme.me這個明信片網站。
程序員是一種特殊物種,好的程序員尤其是這樣——在我們這個行當里很多人都試圖把編程歸入一種復雜的技術學科,但它實際上更傾向于一種藝術。它實際上更接近數學,音樂或電視劇《Firefly》里的Kaylee魔法。
好的程序員有一種特殊的直覺,一種天賦,這種天賦很難描述,更不容易得到。
幾個星期前,@zidarsk8 跑到我這說“老大!我發現這樣一個人!我還在在教他如何編程!但我發現他已經比我優秀了!他一個月前還不知道到什么是變量!太邪門了!“
他要我一定要在博客里寫寫這件事。為什么有些人就簡單的學會了?他們有什么特殊之處?是否任何人都可以學會編程?還是只有有一定天分的人才能成為一個不錯的(先別談優秀)程序員?
我記得一年前曾輔導過一個高中的孩子。大概是擔心考不過他的計算機課程,跑到我這來求助。一個月里,我把我知道的全教給他了,至少這些知識能讓他通過考試。
快到月末的時候,他已經知道了所有關于循環、變量賦值的知識,甚至還明白了函數是一組能做某些事情的代碼。我跟他父親道別時說的話是“是的,他什么都知道了。只需要一些實踐去掌握它們。”
我不知道他是否考過了那個課程。如果他過了,那是老師的榮幸…而就我根據我高中時的記憶,老師們并非都那么幸運。并不是因為我不是個好老師我才這樣說——我從很多受這個孩子推薦來到我這里的其他學生那里都收到了一封“謝謝你!出色的通過!耶!”的郵件——有些人很簡單就是不能成為程序員。永遠成不了程序員。更別說成為不錯的程序員了。
不能編程的羊
Jeff Atwood在2006年曾寫過關于把不能編程的山羊從能編程的綿羊中挑出來的文章,里面提到過一項研究,這些研究聲稱找到了一種能預測一個人將來的編程能力的測試。
測試非常的簡單:
a = 5 b = 20 a = b 現在a和b的值是什么?
有很多像這樣的問題。只有44%學生的大腦里養成了固定的賦值思維模型——包括有些理解甚至是錯誤的。余下的人都答錯了,或者是沒有答。
更糟糕的是,在一個學期的編程學習后,這個比例沒有任何變化。只有44%的理解了賦值的過程。
很顯然,有些人就是學不會。
我想可能還有個更簡單的測試 ->
熱情
有時候,當你給一個有上進心的年輕心靈(任何愿意學習編程的人,年齡不是問題)兩種工具和一個難題。他會使用這兩種工具創造出4種工具。他會搜索互聯網,發現更多的工具…很快,他有了20種工具,請問你還讓我解決什么問題?
這就是熱情!
心無雜念的對編程的熱情。沒有問題需要解決時仍然對編程入迷,甚至興奮。甚至把解決一個已知的問題也當作一次普通的練習…這就是卓越之處。
多大歲數才開始學習編程,這并不重要——很多研究顯示,在我們這個世界里,編程的工齡并不是水平的指示符——重要的是你對這個行業有個熱情的心。
因為,一旦有了熱情,你就擁有了所有其它的一切。
[本文英文原文鏈接:Programmers are born not made ]
本文轉載自: 外刊IT評論 http://www.aqee.net/