優秀程式設計師的6個共同特質
如果你在一家IT公司,與周邊的程式設計師接觸時間越長,對他們的可愛之處瞭解地就越多:或呆或萌,或正派或猥瑣。如果你恰好是一個程式設計師,你會發現身邊優秀的同事也總是有一些共同點。
原文作者ROYVANRIJN總結了他身邊優秀程式設計師同事擁有的6個共同特質:
- 具有好奇心
- 熱愛分享
- 具有社群意識
- 以身為程式設計師而自豪
- 有點懶
- 程式碼視覺化
1. 具有好奇心
他們總是保持一顆好奇心,凡是遇到問題,首先就是:Google!沒有Google就沒有發言權。然後,會在StackOverflow上查詢相關問題、瀏覽郵件列表、閱讀線上文件等等。
這聽起來理所當然,但是部分人卻是先問自己身邊的同事。原作者認為,這個習慣不太好:Google檢索到的資訊遠比你周圍同事瞭解的多,沒必要放著這麼好的資源不用,在你緊張工作的同事身上費功夫。
當然,大多數時候第一次在Google搜尋問題,可能沒有自己想要的結果,不過不要放棄!繼續搜尋,嘗試使用不同的關鍵詞,或者直接閱讀原始碼。如果上面都沒有結果,那就在郵件列表、新聞組等社群提問。
2. 熱愛分享
一旦找到解決自己問題的方法,然後就到此為止,然後就沒有然後了?No!一名優秀程式設計師不能這樣做。在地球上正有一群程式設計師遭遇和你一樣的問題,他們也正在嘗試解決。
理理自己的思路,寫成部落格記錄下來:遇到了哪些坑兒,如何避免這些坑兒。在你曾經搜尋過該問題的地方,如果問題還沒有解決,就幫助回答,貼出自己的方案,接受後來者的膜拜。當然,你可能會“自問自答”,這樣就準備接受後來者的鄙視吧。
3. 具有社群意識
如果在使用某個開源軟體的時候遇到了Bug,你會怎麼辦?一般會有2個反應:
- 抱怨,尋找另一個替代軟體
- 下載原始碼,自己動手打補丁
上面2個方式都不太明智。開源社群之所以成為社群,就是因為是大家自願地來修復問題,很明顯第一個方式不太合適。那第二個方式為何不妥?我們不鼓勵直接下載原始碼來打補丁,應該首先聯絡該軟體的維護者。一個著名的例子就是,Linus Torvalds曾拒絕合併一段可以大幅提升Linux核心速度的程式碼,只是因為該段程式碼的作者獨自工作了6個月之久。記住,首先與社群一塊討論你的改進,然後大家一起來做!
有句俏皮話是這麼說的:開源專案沒死掉,是因為還沒人來修復你的Bug;因為沒人修復你的Bug,所以這個開源專案死掉了。
4. 以身為程式設計師而自豪
優秀的程式設計師都以作為程式設計師而感到自豪。一旦你完成了某項功能,你會迫不及待地將成果展示給客戶、麻利利地實現客戶的想法。
如果發現自己的程式碼裡面可能存在問題時,怎麼辦?可能會“自大”,因為是自己寫的,就覺得程式碼稽核沒有必要;或者有問題也非要自己完成,而不是協作解決。優秀的程式設計師,應該學會與團隊分享,時刻保持激情,但不僅僅是為了自己,而是為了團隊、產品和專案。
5. 嗯…有點懶
幾乎全部職業的優秀員工都很勤奮、工作努力,不過程式設計師例外,那些優秀出色的程式設計師都有點懶。這可能是唯一把懶惰當做優秀品質來對待的職業(測試人員可以除外)。
也許可以說明這一優秀特質的最知名的例子就是“計算機第一夫人”Grace Hopper在1952年發明了編譯器。她解釋說,做出編譯器就是因為自己很懶,並且希望程式設計師都能夠成為一個數學家。
如果一個程式設計師被要求定期完成某事,他/她會堅持想出一個辦法來避免這樣做。“一次編寫,到處執行。”如果客戶總是談論令人厭煩的重複性的工作,優秀的程式設計師總會嘗試著將這個工作自動化。
比爾蓋茲也講到“我總是會選擇一個懶人去完成一份困難的工作。因為,他會找到捷徑”。
程式設計師們,擁抱“懶惰”吧,將重複性的工作自動化,不要重複自己!提示:懶人們應該快速學會快捷鍵喲~這也是優秀程式設計師應該做的!!
6. 程式碼視覺化
對於整個程式碼庫,需要在腦子裡面構建一個模型。這就是我們所說的“程式碼視覺化”。
要做到“程式碼視覺化”,首先我們需要了解整個程式碼庫。需要對部分程式碼進行修改或增刪時,需要知道在什麼地方進行查詢。問題出現在什麼地方,應用程式中的物件/例程是怎麼進行的,每個模組之間的關係是怎樣的,這些都需要清楚。
其次,需要了解正在工作的程式碼環境。大部分情況下,我們會在多個檔案中來回切換,優秀程式設計師會明白自己當前所處的環境,不會覺得暈頭轉向。只要一看程式碼框架和結構,就可以快速找到自己需要的原始檔。當然,這需要對整個程式碼做到了然於胸。
不過,程式猿和程式媛在程式碼視覺化方面的能力是由有差別的,據目前研究,貌似IDE中的導航功能更對程式猿有利。
相關文章
- 優秀程式設計師都在注意的十個點程式設計師
- 2019如何成為一個優秀的程式設計師程式設計師
- 10個程式設計好習慣:優秀程式設計師的經驗分享程式設計師
- Java程式設計師如何成為優秀的架構師Java程式設計師架構
- 優秀的程式設計師都熱愛寫作程式設計師
- [開發故事]成為優秀程式設計師的十個有效方法程式設計師
- 我不是一個成功的人,但是我想做一個優秀的程式設計師程式設計師
- 優秀程式設計師,如何提高架構能力?程式設計師架構
- 優秀的程式設計師真的不寫註釋嗎?程式設計師
- 怎樣把自己培養成為一個優秀的程式設計師程式設計師
- 成為一名優秀程式設計師(&人類)的 101 個技巧程式設計師
- 初學者成為優秀Java程式設計師的8個步驟!Java程式設計師
- 優秀的工程師都有這些特質,看看你擁有幾項?工程師
- 一個優秀的程式設計師應有的產品觀和技術觀程式設計師
- 優秀的程式設計師10分鐘內能搞定下面5個程式設計問題,你呢?程式設計師
- 4-6年經驗左右、優秀的 Java 程式設計師應該具備的技能Java程式設計師
- 優秀程式設計師都在用哪些Chrome擴充工具?程式設計師Chrome
- 幽默:優秀程式設計師過馬路看兩邊程式設計師
- 優秀程式設計師必須知道的32個演算法,提高你的開發效率程式設計師演算法
- Python書單|成為一名優秀的Python程式設計師Python程式設計師
- 花費優秀程式設計師95%時間精力的事情 - MICHAEL JACKSON程式設計師
- 一名優秀的程式設計師應該向誰提問程式設計師
- 優秀的程式設計師都有的十條特徵,你中了幾條?程式設計師特徵
- 6個新手程式設計師程式設計必不可少的工具,你用過幾個?程式設計師
- 老程式設計師的10個程式設計小技巧,教你寫出高質量程式碼!程式設計師
- 同樣是程式設計師,為什麼別人比你更優秀?程式設計師
- 銀河國際被黑錢了V18669187779程式設計師應該具備的 11 個特質程式設計師
- 頂尖程式設計師的10個優良習慣程式設計師
- 2020 一個 30 歲的程式設計師被優化了程式設計師優化
- 資深程式設計師的16個優良習慣!!!程式設計師
- 一個優秀程式設計師的自我修養:當然不止會用代理ip那麼簡單程式設計師
- 優秀的程式設計師,原來是這個樣子,還是做python的魅力大(笑S你)程式設計師Python
- 如何設計一個優秀的秒殺系統?
- 程式設計師生涯,學到最重要的6個教訓程式設計師
- 談談一個程式設計師本該具備的素質程式設計師
- 頭髮都快掉沒了,才熬出來的優秀程式設計師的生存指北!程式設計師
- 超優惠:程式設計師的第一個一百萬,So easy!程式設計師
- 優質的企業展廳設計都具備哪些特點
- 我是6年的程式設計師了程式設計師