程序員:編程能力vs職業(yè)技能,哪個(gè)更重要
即便不是偉大的程序員,你也可以走的更遠(yuǎn)
每個(gè)程序員應(yīng)該具備2種能力,即編程能力和個(gè)人的職業(yè)技能。
編程能力意味著你寫(xiě)的代碼是可靠,高性能,易維護(hù)的。這跟程序員花費(fèi)的時(shí)間,他的思維,以及廣泛的閱讀有關(guān)。
職業(yè)技能讓你成為一個(gè)好的員工,好的同事。這需要反應(yīng)敏捷,有良好的溝通,明白期限,及時(shí)公開(kāi)的反饋,能清楚解釋復(fù)雜的事物等能力。
一個(gè)極端的例子。
想象有2個(gè)人。
Rodrigo是麻省理工的畢業(yè)生,在他的空閑時(shí)間里面他在編寫(xiě)一個(gè)編譯器。他是Haskell核心的貢獻(xiàn)者,并且開(kāi)發(fā)了一些著名的Python 包。一般情況下,他的代碼具有很強(qiáng)的可讀性,并且完美的處理邊界問(wèn)題。不過(guò),他需要幾天的時(shí)間才會(huì)回復(fù)一封郵件,很少拿起電話,不明白最后期限的重要性。他做事情有自己的方式,看上去很散漫,你不能明確他的思想。
Gabriella不是一個(gè)很好的程序員,她的代碼像一個(gè)業(yè)余的人寫(xiě)的。她用30行的代碼完成一個(gè)僅用15行就可以搞定的事情,QA需要把大量時(shí)間花在她的bug上。然而,她的反應(yīng)令人難以置信 – 她在幾分鐘之內(nèi)回答電子郵件,從不錯(cuò)過(guò)一個(gè)電話,她是一個(gè)偉大的溝通者,能夠很清楚地向客戶解釋復(fù)雜的技術(shù)問(wèn)題,她從未錯(cuò)過(guò)最后期限,她不斷的通過(guò)反饋來(lái)提高她的工作效率,并且跟她很容易溝通。
所以,你會(huì)在工作中跟誰(shuí)搭檔?
什么是真正重要的?
以我的經(jīng)驗(yàn)來(lái)看,一個(gè)程序員想跟Rodrigo做同事,而一個(gè)經(jīng)理想要Gabriella做同事。
這是有道理的,畢竟程序員碰到的都是讓人煩心的技術(shù)問(wèn)題,而經(jīng)理面對(duì)的是項(xiàng)目期限和溝通問(wèn)題。
但關(guān)鍵是,如果經(jīng)理想要給某人升職的時(shí)候,Gabriella就走在了前進(jìn)的道路了。我已經(jīng)看到很多次,那些并不偉大的程序員走到了頂端,而很多優(yōu)秀的程序員卻因?yàn)闇贤▎?wèn)題一直留在底層。
做為一名程序員,是不是應(yīng)該想想,良好的編程能力是不是決定事業(yè)成功的關(guān)鍵,還是有時(shí)候更需要具備職業(yè)技能呢?
英文原文:http://www.daidata.com/archives/1696
原文鏈接:http://www.codeproject.com/News/19895/Coding-skill-vs-employee-skill.aspx