如何成為優秀的開發人員?
阿新 • • 發佈:2019-01-01
於每個從事開發工作的程式設計師來說,成為一名優秀的開發人員或許是他們一直所最追求的目標。就如何成為一名優秀的開發人員,Alan Johnson發表了一篇博文《What Makes A Great Programmer?》,CSDN對此文進行了翻譯,全文如下:
事情猶如發生在昨天,那是在2000年,Pargas博士正在給我們資料結構班講解有關資料結構方面的內容,當他講解部署SSH應用時,一個同學問了他一個問題,當時他圍繞“如果你想成為一個真正電腦科學家,你就要從學習企業VI視覺設計開始。”說了一些事情。因為他說這些話的時候,面帶微笑,事後我並不覺得他的話正確。但當時由於年輕、易受影響,回到宿舍中,我就立即開始學習VI。這樣持續了一段時間後,我意識到一旦我掌握了一些東西,我就可以快速在VI中實現。
六年前,我迷上了TextMate編輯器軟體。當時我正從事Java軟體開發工作,並在業餘時間學習Rails並做一些Rails專案。那時幾乎所有我讀的文章和觀看的視訊都是說明和演示如何使用TextMate來完成文字編輯工作的方法技巧的。事實上,我當時每天用Eclipse,它總會讓我的心情變得很遭。所以我買了一臺Mac電腦,並在開機後的10分鐘內就購買了TextMate軟體。
我可以很老實地說,文字編輯器的改變並沒有使我成為一個更好的程式設計師。
僅僅靠好的工具,並不能使你成為更優秀的程式設計師。所選用的工具確實很重要。實際上,他們也很棒。正如Tiger Woods即便使用低劣的球棒也會擊敗我們,Messi不穿鞋照樣可以擊敗我們,Rafael Nadal在網球場用60年代的木製球拍也可能擊敗我們一樣。你所積累的技術、知識和經驗才是其中最重要的部分。
既然工具不能成就優秀的程式設計師,那什麼可以呢?我認為成就一個優秀程式設計師需要諸多因素,這些因素主要依靠你所工作的內容和與你一同工作的人。但我發現,在軟體開發工作中已取得很多成功的人中都有一些共性,值得借鑑。我不敢肯定你是否能選用這些技巧或你是否與生俱來這些個性,但我十分強烈的感到,如果我更加註重這些個性的培養,而不總停留在文字編輯器的替換上,我就可以提升到一個很滿意的位置。
使用者第一
我認識的最好的程式設計師都會把使用者放在第一位。他們都意識到軟開發出來是讓使用者用的,即便它是僅供其他開發者使用的、一個複雜系統或一個協議的後臺。他們把文件說明書看得很重要並把它認真寫下來。他們還會幫助使用者使用他們的軟體。他們也願意做一些額外的工作,降低軟體複雜度為使用者提供合適的解決方案。
有強烈的學習慾望
令人稱奇的程式設計師都對知識如飢似渴,他們總會告訴你一些新鮮有趣的事。他們喜歡大量閱讀(無論在線上閱讀還是線下閱讀)。他們也喜歡動手嘗試,並從中獲取經驗。他們從不害怕嘗試新語言或新平臺。
匹配問題的能力
從事軟體開發工作一段時間後,你就會發覺,在開發過程中遇到的問題有時和你以前曾解決的問題極其相似。能迅速意識到這些,並把以前解決問題的方案迅速遷移到當前問題上是一個很重要的能力。更好的就是在每次解決問題的過程中能夠不斷優化解決方案。
但仍要注意,這並不意味著你可以盲目地說以前的解決方案對本次問題一定奏效。此時巧妙地進行問題型別匹配顯得很重要。什麼時候用以前的解決方案可行,什麼時候不行,對此你要有一定的判斷力。
熱愛軟體開發工作
我哥在高三時學習Python語言,當我問他喜歡這門語言到什麼程度時,他對我說,我極想成為一名程式設計師,但這對他來說是件最無聊的事。從某種程度來說,我認為他是對的。絕大部分時間裡,我面對計算機的時間遠遠超過和人交談的時間。我常常因為把一行行“唧唧歪歪”的話轉化成可工作的軟體而興奮。從事軟體開發的每個人並不是都喜歡做這個工作,但我曾見過的最優秀的程式設計師絕對是喜歡開發軟體的。
持之以恆
軟體開發的推進過程往往比計劃慢很多。它需要花費時間來完成。有時你必須耐心地去完成你要寫的程式碼。作為開發者,有時我們會寫一些確實很有趣的程式碼,但有時我們也會因為大量寫重複的程式碼而失落。我認為最好的程式設計師是可以一直堅持到最後的程式設計師,他們可以預見他們所從事工作的遠大前景,他們樂於享受一步步構建工程直到最終完成的過程。
以上是我認為可以造就優秀程式設計師的幾個個性特徵,但並不意味著這是全部。所以我想聽聽你的看法。你認為什麼造就了成功的程式設計師呢?
原文連結:What Makes A Great Programmer?