最好的程序員比最差的程序員好28倍。
—— Robert L.Glass
優秀的開發者確實不多見,他們的生產力是普通開發者的3部,是平庸開發者的10倍(來自《人月神話》)。這個世界上的TOP100的開發者不僅能寫Solid的代碼,而且還具備很多優秀的品質。我于1000多個開發者合作后,總結了7個優秀品質,使他們在程序員中更顯卓越。
1、積極的態度
一個優秀的程序員關心自己的產品。他們積極,愿意全力以赴地完成工作,每天都能帶來非常好的成就感。很重要的一點是不要消耗開發者,比如頻繁修改項目期限。有時不可避免,優秀的程序員會盡可能加快產品的發布,他們在乎和不愿意防礙項目的進程。 具有積極態度的好方法是給他們做一個有趣的項目,讓他們有自主權,贊美他們做好工作。
初創的互聯網公司可以發放股票期權,給加班工作的員工,提供補償性的帶薪休假,或找到確保優秀程序員其他的福利。
怎樣測試這些技能
面試的樣題,4次重要面試,GitHub的項目。
其它問題:
你怎樣處理沖突?(沖突處理或面向解決方案)
你認為自己很幸運嗎?(傲慢或謙虛)
你愿意怎么樣面試?(抱怨者或沒有后顧之憂)
在這些人里,你不愿意和誰合作?(關于老板)
2.有良好的溝通技巧
良好的溝通能力與良好的開發能力有關。一個優秀的開發者能夠清晰地了解問題,并分解成不同的假設可能,以一致的方式提出解決方案。他們可以快速理解新概念,或者要求掌握更確切的問題,并不需要寫什么規范文檔。優秀的開發者能夠適合多種語言,而且擅長閱讀英文文檔。在技術世界中,英語是絕大多數文檔,以及開發人員互動的通用語言。即使他們說的不夠流利,他們會使用翻譯工具或者利用翻譯。把知識放在第二位,并且能夠快速適應。
如何測試這個技能
模擬一個Scrum會議,看他們如何交互的。
給他們一個問題/場景,看他們如何溝通。
3,時間管理和任務管理
優秀的開發者非常主動、可靠。他們有極強的工作倫理,能夠準時出席會議。一個非常非常重要的技能是能夠準確衡量完成任務的時間表,能夠準確傳達和交付成果。卓越的開發者會管理客戶,是領導,而非管理者。
如何測試這個技能
這通常在碎片化的時間。測試這些素質的好方法是一個短期項目,要求一個時限,每個人都要提供開發的反饋。通過這些會很快識別您所在團隊人員的優劣勢,根據能力績效開發團隊潛質。如果有人沒有交付,也許需要你“做出艱難的決定”,讓他們脫穎而出,嘗試一些新東西。
4.快速學習能力
優秀的開發人員通常有著驚人的自學能力。他們自己有能力學習新技術,不受新技術的威脅。他們還有能力即時抽出不同的信息并即時處理信息。每個程序員都會遇到他不知道答案的情況。優秀的程序員會找到不同的資源,與合適的人討論并找到解決方案。
任何人都可以擁有如何學習的能力。而卓越的開發者掌握了自我學習的訣竅。
如何測試這個技能
通過快速提問
案例訪談
古怪的問題
5.深度和較廣的技術經驗
優秀的開發者會脫穎而出,成為專家,勝任很多工作。 當你尋找到一個與自己產品相仿或使用相同技術的程序員,您的項目會更容易成功,因為他們已經掌握了正確的技術。 他們會嚴守編碼標準,并且能夠寫出容易理解的代碼,并在有必要時一起討論,并且可以很輕松的傳達給別人。
通過結合他們的認知能力和多個行業的經驗,能夠快速形成最佳解決方案。
有經驗的的開發者精通敏捷開發,任務管理(如使用jira,Trello等),版本被控制(比如他懂得Git,代表他從舊的SVN上進行了知識升級)等軟件的最佳實踐。
另外,他能夠在不同的工作環境中切換,如本地開發環境與部署遠端后的應用環境。
如何測試這個技能
提問他以前工作的例子,展示他以前的產品,發送代碼樣例或優秀功能的抓圖或演示。
也可以與他以前服務的老板或CTO討論,了解他的技能和其它軟素質。
編程算法挑戰:盡管這類的技能與實際開發有一些區別,但是開發者如果在短時間內成功搞定一些困難的算法問題,那么,我們知道這位聰明的人對計算機科學技術掌握有深度。
Hackathons:黑客馬拉松。現在很多公司已經從這里面招聘了。在這類活動中,你會看到高素質的程序員在幾小時內構建出軟件。這對于評估編程效率,創建高可用的軟件以及獨立作戰與團隊合作的極好方法。
6.一個團隊好玩家
優秀的開發者的另一個上佳品質是可以幫助其它開發者變得更好的能力。他們在別人遇到困難時提供幫助,為他人講解新技能,并且提供文檔,不僅在公司中幫助隊友,還在技術社區中分享更深入的技術。
如何測試協作技術能力
7.高端用戶聚集
一個優秀的程序員會考慮更全面的問題,卓越的程序員會把自己當成小白,當成使用軟件的最終用戶,努力在組織的能力為他人解決問題。
卓越的程序員知道自己做的功能是具備高價值的,當產品為更多的人創造價值,他會得到更多的回饋。
如何測試技術領導力
其它考慮事項
當專長被高估:技術專業知識很重要,但也不是被招募的唯一因素。具有快速學習能力,積極的態度、領導力的人會更有創造性,更能對公司提供有大價值的解決方案。技術專長常常伴隨著我們,我們能夠在眾多場景中,有正確的態度對待自己的專業。
成熟的公司會按一種模板化的職位描述,成為固定的標準后,變得牽強靈活。
恰恰地,在產品啟的方案中,解決問題的能力、學習能力等多面選手在小團隊開發的工作顯得非常重要。
你是否能成為一個卓越的開發者?
強大并強壯的心靈。隨著在線課程的普及,我們不必去學校里也能成為一個優秀的開發者。然而,很多卓越的程序員走進了校園,專門學習計算機科學技術,獲得學位。他們知道這有助于更好的理解計算機和系統架構,能夠從整體觀念理解計算機編程。
另外,與最新的技術同步,讓自己隨時煥然一新。大量的閱讀關于最新趨勢的文章與博客。在業余時間嘗試新工具,新玩具,跟隨技術社區,積極參與技術會議,并通過寫作為社區分享增值。
如有問題請聯系我們,我們7*24小時竭誠為您服務