以前,對于“程序員”這個物種小編只是聽說,未曾見過(因為他們大多起得比雞早,睡得比驢晚)真正接觸程序員,是來一度教育以后,每天都對著一大堆程序員,他們有些人超級棒,有些明顯比較平常。因為我近來和一些熟練的程序員工作的很愉快,我花了一些時間考慮我羨慕他們什么。是什么讓一個好的程序員那么好,差的程序員那么差?或者,簡短一些,是什么讓一個好的程序員那么好呢?
成為一個優秀的程序員與年齡、教育或者你掙錢的多少沒有關系。關鍵在于你的表現,更深刻的說,是你如何思考。我注意到我羨慕的程序員有一致的習慣。比起他們所選語言的知識、對數據結構和算法的深入理解、或者幾年的工作經驗——更多的是他們交流的方式,管理自己的方式,和根據他們精湛的技巧可以知道他們接觸編程的方法很有意義。
高級程序員
我不會基于這些實踐的存在(或者缺失)而單獨評判任何程序員。但當我看到時我確實能明確的知道,當我看到一個具有這些性格的程序員時,我會想,“這個人的標準在哪?”
他們做研究
我曾經見過偉大的程序員急于給出解決方案,但是我曾經一起工作過的最糟糕的程序員,從來不咨詢他人,從而導致做了大量的重復性工作或者恰好使用了錯誤方式來解決問題。于是很不幸的,他們最終為他們的錯誤付出代價。
錯誤信息在這里終止
這包括對堆棧追蹤的符號解析。最高效的程序員不害怕深入挖掘問題。最低效的程序員看到錯誤甚至都不愿讀錯誤信息。偉大的程序員看到問題,會急迫的去解決它。對于他們來說,讀錯誤信息僅僅是第一步;他們渴望深入問題并找出錯誤的根源。他們對推卸責任沒有興趣,他們對找到解決方案有興趣。問題確實在他們這里止步。
他們會去看源代碼
文檔,測試和人:這些都可能會說謊。未必是故意撒謊,但是如果你想確切的知道代碼是怎么工作的,你就必須親自察看源代碼。即使這不是你非常熟悉的語言也不要害怕–比如,如果你主要是一個Ruby程序員并且你懷疑Ruby的C語言包里有錯誤,那就去解壓它看看再說。不錯,你可能會一無所獲。但是誰知道呢,你也可能會找到問題所在,比起什么都不做,你至少選擇了一條更有機會的路。
他們說做就做
好的程序員總是趨向于采取行動。他們似乎有種控制不住的強迫性:一旦他們確認了一個問題或者看到了一個新的特性需求,就會立即著手解決,有時甚至過早或者過于勇往直前。他們遇到問題的直覺反應就是正面解決它。
他們善于交流
說到底,編程也是一種交流的方式。能夠簡潔明了地表達出你的觀點之于寫代碼就如其之于寫詩一樣重要——長久以來,我發現那些能夠寫出精煉的電子郵件、優雅的報告或者僅僅是高效的備忘錄的人通常也會是更優秀的程序員。
他們激情四射
如果你真正關心你做的東西——不只是把它當做一個工作區應付,而是一個興趣、一件對你有著莫大魅力的事情,那么在這個行業里,相較于其他人而言,你就擁有了一項巨大的優勢。
好的程序猿會一直保持者寫代碼的狀態,他們每天花在這個行業里的時間都不低于8個小時:包括工作和空余時間。在編寫項目和授業解惑兩者之間,他們不會偏向任何一方。
他們不會只是為了搞清楚某個東西的工作原理而整天癡迷于新技術或新的編程語言。(來源:網絡)