優秀程序員的首要特性:判斷力

openkk 13年前發布 | 2K 次閱讀 模擬器 LCMC

公司在招聘程序員時,可能更注重開發者是否聰明,是否有深厚的開發技能等,但Tammer Saleh在EngineYard中發表文章《The Number One Trait of a Great Developer》中表示,判斷力才是一名出色開發者所應具有的首要特征。下面是對該文的譯文:

我發現很多公司在招聘Ruby on Rails程序員時,往往注重開發者的三個主要特征:足夠聰明、大技術社區中的知名度、深厚的Ruby開發技能。其實這些考察點并不正確。雖然這三大特性很重要,但他們卻忽略了一名出色開發者所應具有的首要特征:判斷力。

關于Jack和Dianne的故事

Jack是一個搖滾巨星。Jack喜歡談論世界上最酷會議中提到的最新發展趨勢。他很重視在一個新項目中使用三種以上的新技術。當請他做一個基于互 聯網的控制后臺,用于將烹飪方法與廚具進行匹配。他投入很大的精力開始做此事。最終該后臺中用到了Google Protocol Buffers、node.js,具有可擴展性,卻很難維護。

Dianne是一個優秀的程序員。最初Dianne是一個Unix 管理員,兩年前才開始做Ruby開發。當被要求開發一個同樣的系統時,她首先問了以下幾個問題:

“預期會有多少廚具?”

“我們希望12個月內賣出500套廚具。”

“需要多長時間出一份報告?”

“大概一小時一次。”

“這網絡的可靠性如何?”

“使用WiFi,它很穩定。”

Dianne使用MySQL數據庫寫了一個RESTful API結點。PostgreSQL可能更適合,但她只懂MySQL。

Dianne采用的這個解決方案可以擴展到1萬個用戶嗎?不能,但這個系統并不需要這樣做。Dianne的解決方案很簡單、容易理解,具有更好的維護性。Dianne知道它并不是最簡潔的解決方案,但她卻知道任何更復雜的事都會超出她現在的能力。

判斷力很重要

當給定一個很有趣的“問題”時,沒有判斷力的開發者就會陷入精心設計最簡潔解決方案的陷阱中。他們總會有一種很自然的欲望而導致過度設計該解決方 案,要么追求復雜度、速度和功能性,要么很簡單地找機會演練一下他們所掌握的新技術。他們需要時常被檢查,以確保不會在半路掉進“兔子洞”里。

更遭的是,他們并不知道什么時候才超出他們的能力,所以他們總會在整個項目中留下代碼炸彈。

雇傭有判斷力的員工

我會讓我的團隊判斷應聘者是否聰明,是否適合我們的文化。而我負責判斷他是不是有很好的判斷能力。為了做到這一點,我會帶他出去喝啤酒,并問兩個主要的問題:

1.對于Ruby和 Ruby on Rails框架,你最不喜歡他們的哪一部分?為什么?

2.請告訴我你最后一次使用的很有趣的技術?你從中學到了什么?

這些問題可以很好地幫助你,讓一個開發者充滿熱情地談論他們在什么時候充滿激情,在什么地方情緒低落。從中你可以了解到很多,他們是怎樣的人,他們 來自哪里。他們是否喜歡NoSQL這種數據庫?他們是否了解什么時候不能使用它們?他們是否了解多線程編程中最難點?他們是否喜歡使用函數式編程、哈希函 數,原因是什么?

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!