從技術層面來講,和我工作過的程式設計師良莠不齊。之前和優秀程式設計師搭檔使我非常輕鬆,不禁使我思考一個問題:優秀的程式設計師都有那些特質?或者說什麼成就了他們高效的程式設計工作。
以我個人看法,年紀、學歷、薪水這些外在因素和是否優秀沒有什麼任何關係。它取決於你的內在,也就是思想。我觀察到這些優秀的程式設計師都有一些相似的習慣,這裡不是說他們所選擇的語言、對結構資料的理解、工作經驗;是他們工作方式、態度,以及他們對外演講的收放自如。
當然,優秀的程式設計師遠不止具備上述的那些特質,以偏概全的絕對判斷也不可取。但是,至少當你具備其中的一部分,就離優秀程式設計師不遠了。
調查研究(未雨綢繆或者谷歌搜尋)
隨便這種特質的術語叫什麼,都不影響出現越來越多已經通過某種方式解決的程式設計問題。只有你想不到,沒有你做不到,這世界上已經沒有絕對的新鮮事兒了。優秀的程式設計師在解決問題之前就會通過GitHub圖書館、網路部落格、溝通互助等形式來做調查研究。
解讀、研究錯誤資訊
解析堆疊路徑資訊很麻煩,但是不這麼做的話,就不會知道哪裡有問題。況且,高效的程式設計師是樂於深入研究問題,但是一般的程式設計師卻不願意迎難而上,研究解決問題。它頻繁的出現以至於到不可置信的地步。
檢查原始碼
文件顯示、測試結果甚至是自己的團隊,都有可能出現不是本意的錯誤或者誤差。所以,你如果想要確切明白工作細節,就必須檢查原始碼。
不必擔心它不是你最擅長的語言。一個Ruby程式設計師可以找出其中C語言庫的錯誤,任何事情開始做就有可能成功,不做永遠不會成功。
處在封閉原始碼的環境會讓事情變得很棘手,但是原則不能被動搖。結果低效的程式設計師寧願被問題困擾無法解決,也根本不願意去檢查原始碼。
大膽主動嘗試
必須自願、主動的去做一項工作。他們內心有著難以控制的衝勁兒,遇到問題和困難會顯得很興奮,當然有時候也會顯得不夠沉穩。但是這種解決問題的本能反應,絕對是會起到正面的效果。
懂得繞過危機
初級程式設計師一般都有一個共同點:處理問題不夠全面,總是陷入危機和逃離危機的惡性迴圈。而且往往不會反省自己的錯誤,反而在執行良好的程式碼上浪費時間除錯。初級程式設計師的理性處理很少,基本都是憑藉直覺面對問題,缺少嚴謹的分析。
相反,高階程式設計師是深入研究問題的根源,並且站在一個巨集觀的角度去思考,為以後可以避免危機做了很多的鋪墊和準備。
善於溝通
編輯就是另一種形式的溝通交流,寫程式碼和寫文章是一樣的道理,能得到使用者和讀者的喜愛最重要。所以,會寫文章、報告,在大會談吐自如的初級程式設計師,在將來一定也會成為高效程式設計師。英語和程式碼有相似之處,用圓括號、括號和單個字母的函式寫出一行程式碼當然是有可能的,前提是有人理解,優秀的程式設計師會花時間以各種渠道交流、溝通。
保持工作熱情
個人認為是這是最重要的特質(當然,任何工作都需要高度的工作熱情)俗話說,不能愛一行幹一行,應該要幹一行愛一行,它說的就是這個意思。優秀的程式設計師大多喜歡程式設計工作,反而初級程式設計師對程式設計充滿不屑和厭倦,大多數初級程式設計師僅僅為了生活和薪水去程式設計。
有的程式設計師利用週末時間去無償做自己喜歡的專案,所以他們每天都在創新和進步,最終他們得到不同的生活方式和豐厚的薪水。這才是成為優秀程式設計師真正原因。對於這些程式設計師來說,編寫程式碼是改變世界的方式,也是獲得別人尊敬的目標。
翻譯:曲徑
英語原文:What Makes a Good Programmer Good?
來自:PHP100
相關閱讀
評論(2)