一個人是否能成為程式設計師是上天註定的

aqee發表於2013-02-22

英文原文:Programmers are born not made,翻譯:外刊IT評論

本文的作者是一個斯洛維尼亞共和國的獨立程式設計師,自稱是“戴帽子的黑客”,他使用Pascal、Delphi、 C/C++、Python,PHP,node.js等語言程式設計,他曾是著名的開源論壇phpBB的幾個主要模組的開發人,先後為 hipstervision.org等五家公司網站的創始人或合作創始人,他目前的主要收入來自postme.me這個明信片網站。

一個人是否能成為程式設計師是上天註定的 本文的作者 Swizec Teller

程式設計師是一種特殊物種,優秀程式設計師尤其是這樣——在我們這個行當裡很多人都試圖把程式設計歸入一種複雜的技術學科,但它實際上更傾向於一種藝術。它實際上更接近數學,音樂或電視劇《Firefly》裡的Kaylee魔法。

優秀的程式設計師有一種特殊的直覺,一種天賦,這種天賦很難描述,更不容易得到。

幾個星期前,@zidarsk8 跑到我這說“老大!我發現這樣一個人!我還在在教他如何程式設計!但我發現他已經比我優秀了!他一個月前還不知道到什麼是變數!太邪門了!“

他要我一定要在部落格裡寫寫這件事。為什麼有些人就簡單的學會了?他們有什麼特殊之處?是否任何人都可以學會程式設計?還是隻有有一定天分的人才能成為一個不錯的(先別談優秀)程式設計師?

我記得一年前曾輔導過一個高中的孩子。大概是擔心考不過他的計算機課程,跑到我這來求助。一個月裡,我把我知道的全教給他了,至少這些知識能讓他通過考試。

快到月末的時候,他已經知道了所有關於迴圈、變數賦值的知識,甚至還明白了函式是一組能做某些事情的程式碼。我跟他父親道別時說的話是“是的,他什麼都知道了。只需要一些實踐去掌握它們。”

 本文的作者 Swizec TellerImage via Wikipedia

我不知道他是否考過了那個課程。如果他過了,那是老師的榮幸…而就我根據我高中時的記憶,老師們並非都那麼幸運。並不是因為我不是個好老師我才這樣說——我從很多受這個孩子推薦來到我這裡的其他學生那裡都收到了一封“謝謝你!出色的通過!耶!”的郵件——有些人很簡單就是不能成為程式設計師。永遠成不了程式設計師。更別說成為不錯的程式設計師了。

不能程式設計的羊

Jeff Atwood在2006年曾寫過關於把不能程式設計的山羊從能程式設計的綿羊中挑出來的文章,裡面提到過一項研究,這些研究聲稱找到了一種能預測一個人將來的程式設計能力的測試。

測試非常的簡單:

a = 5

b = 20

a = b

現在a和b的值是什麼?

有很多像這樣的問題。只有44%學生的大腦裡養成了固定的賦值思維模型——包括有些理解甚至是錯誤的。餘下的人都答錯了,或者是沒有答。

更糟糕的是,在一個學期的程式設計學習後,這個比例沒有任何變化。只有44%的理解了賦值的過程。

很顯然,有些人就是學不會。

我想可能還有個更簡單的測試 ->

 一個人是否能成為程式設計師是上天註定的 Image via Wikipedia

熱情

有時候,當你給一個有上進心的年輕心靈(任何願意學習程式設計的人,年齡不是問題)兩種工具和一個難題。他會使用這兩種工具創造出4種工具。他會搜尋網際網路,發現更多的工具…很快,他有了20種工具,請問你還讓我解決什麼問題?

這就是熱情!

心無雜念的對程式設計的熱情。沒有問題需要解決時仍然對程式設計入迷,甚至興奮。甚至把解決一個已知的問題也當作一次普通的練習…這就是卓越之處。

多大歲數才開始學習程式設計,這並不重要——很多研究顯示,在我們這個世界裡,程式設計的工齡並不是水平的指示符——重要的是你對這個行業有個熱情的心。

因為,一旦有了熱情,你就擁有了所有其它的一切。

相關文章