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