程式設計師都是天生的

html5tricks發表於2014-07-09

  話說,程式設計師是一類特殊的品種,優秀的程式設計師更是如此——我們更願意承認程式設計這種技能是一門藝術,而不是大家眼中艱苦卓絕的工科課程。程式設計可能更像是數學、音樂,或者是在電視劇《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%的學生知道賦值如何作用。

  很明顯,有的人無論怎麼學就是想不明白這些。

  下面我介紹一個我認為更為簡便的測試

 激情

  有時候,當那些擁有年輕心態的傢伙(人人都能學程式碼,年齡不是限制)拿到一個問題和兩個工具,他們會利用這區區兩個工具創造出四個工具,然後在網上搜尋,找到更多的工具……這樣一來,很快他們就有二十個工具,好傢伙!哦,對了,我還沒說這些傢伙拿到的這個問題是什麼?

 這個問題就是激情!

  寫程式碼就是需要這種完完全全不帶丁點雜質的激情。當你為之深深陶醉,甚至興奮不已的時候,還怕什麼問題是解決不了的呢。即使你正在解決的這個問題,你也知道是毫無意義的……這就是擁有激情的偉大所在!

  別擔心你開始程式設計的年紀比別人大——要知道,很多研究已經表明,經驗在這一行並不是重點——關鍵要看你對程式設計這玩意是否擁有百折不撓的激情。

  因為一旦被點燃了激情,那麼其他的問題就不再是問題了。你,就是天生的程式設計師!

相關文章