“在軟體方面,各個方面的變化總是如此頻繁而迅速,以致你需要一種能夠勝任你交給他們的任何一項編程任務的程式員。如果因為某種原因你發現一位集白癡與專家於一身的程式員,他真的非常非常非常精通SQL,但對其他程式設計知識卻一無所知,那麼就是簡單不錄用而了斷。長痛不如短痛。”
---------P.135
今天周末,偶爾翻翻《JOEL說軟體》,忽然看到這一段話,覺得與我心有戚戚然。
在論壇上經常有人討論通才和專才,哪個才更能讓公司青睞?或者某些只用過一種程式設計語言,或者僅僅只做過網頁開發,在那裡驚奇別人怎麼會用過那麼多的程式設計語言,做過那麼多不同平台的開發,然後說:人的精力有限,能把一門程式設計語言學精就很不錯了。
不知道這些人,如果看到上面這段話,會有什麼感想?
我是個學得很雜,也做得很雜的程式員,幾乎絕大部分的程式設計語言都會用一點,大部分的開發平台都接觸過。我也清楚地知道自己永遠成不了像Anders那樣的極品天才,想做個最好的編譯器,就做個最好的編譯器;想發明一種最好的程式設計語言,就發明一種最好的程式設計語言。
我只是一個普通得不能再普通的程式員。我學著自己感興趣的,跟電腦相關的一切技術,所以,我成了一個所謂的通才。
其實,個人認為IT行業真的需要通才,而且是需要很多的通才。
我以前曾經聽過一件事:有個軟體工程師,據說程式寫得不錯,但是如果電腦壞了,無論是什麼故障,都只會把電腦直接抱到電腦城去,自己一點都不會修,連BIOS設定都搞不清楚,作業系統也不會自己安裝。我剛剛聽到這個故事時,很是懷疑這位工程師,是否真正懂得寫程式?程式真的寫得不錯嗎?
連基本的電腦硬體故障都搞不懂,連作業系統都不熟悉的工程師,做WEB程式的,連伺服器的基本設定都不會的,寫出來的程式真的能高品質、高效率、高效能地運行嗎?程式可維護嗎?
當然,在我入行五年多之後的今天,感覺在成為一般的通才之後,似乎還是非常有必要精通一、兩門子技術的,如果你成不了管理者,還得自己Coeding的話。當然,對於管理者來說,越是通才越好。
否則,你寫某個小程式時,沒有應屆生快,雖然你可能寫個好架構,好維護。但你也因為帶給小老闆的實用價值不大,而找不到工作,或者鬱郁這一輩子。