|
公司在招聘程序員時,可能更注重開發(fā)者是否聰明,是否有深厚的開發(fā)技能等,但 Tammer Saleh 在 EngineYard 中發(fā)表文章《The Number One Trait of a Great Developer》中表示,判斷力才是一名出色開發(fā)者所應(yīng)具有的首要特征。下面是對該文的譯文:
我發(fā)現(xiàn)很多公司在招聘 Ruby on Rails 程序員時,往往注重開發(fā)者的三個主要特征:足夠聰明、大技術(shù)社區(qū)中的知名度、深厚的 Ruby 開發(fā)技能。其實這些考察點并不正確。雖然這三大特性很重要,但他們卻忽略了一名出色開發(fā)者所應(yīng)具有的首要特征:判斷力。
關(guān)于 Jack 和 Dianne 的故事
Jack 是一個搖滾巨星。Jack 喜歡談?wù)撌澜缟献羁釙h中提到的最新發(fā)展趨勢。他很重視在一個新項目中使用三種以上的新技術(shù)。當請他做一個基于互聯(lián)網(wǎng)的控制后臺,用于將烹飪方法與廚具進行匹配。他投入很大的精力開始做此事。最終該后臺中用到了 Google Protocol Buffers、node.js,具有可擴展性,卻很難維護。
Dianne 是一個優(yōu)秀的程序員。最初 Dianne 是一個 Unix 管理員,兩年前才開始做 Ruby 開發(fā)。當被要求開發(fā)一個同樣的系統(tǒng)時,她首先問了以下幾個問題:
“預(yù)期會有多少廚具?”
“我們希望12個月內(nèi)賣出500套廚具。”
“需要多長時間出一份報告?”
“大概一小時一次。”
“這網(wǎng)絡(luò)的可靠性如何?”
“使用 WiFi,它很穩(wěn)定。”
Dianne 使用 MySQL 數(shù)據(jù)庫寫了一個 RESTful API 結(jié)點。PostgreSQL 可能更適合,但她只懂 MySQL。
Dianne 采用的這個解決方案可以擴展到1萬個用戶嗎?不能,但這個系統(tǒng)并不需要這樣做。Dianne 的解決方案很簡單、容易理解,具有更好的維護性。Dianne 知道它并不是最簡潔的解決方案,但她卻知道任何更復(fù)雜的事都會超出她現(xiàn)在的能力。
判斷力很重要
當給定一個很有趣的“問題”時,沒有判斷力的開發(fā)者就會陷入精心設(shè)計最簡潔解決方案的陷阱中。他們總會有一種很自然的欲望而導(dǎo)致過度設(shè)計該解決方案,要么追求復(fù)雜度、速度和功能性,要么很簡單地找機會演練一下他們所掌握的新技術(shù)。他們需要時常被檢查,以確保不會在半路掉進“兔子洞”里。
更遭的是,他們并不知道什么時候才超出他們的能力,所以他們總會在整個項目中留下代碼炸彈。
雇傭有判斷力的員工
我會讓我的團隊判斷應(yīng)聘者是否聰明,是否適合我們的文化。而我負責判斷他是不是有很好的判斷能力。為了做到這一點,我會帶他出去喝啤酒,并兩個主要的問題:
1. 對于 Ruby 和 Ruby on Rails 框架,你最不喜歡哪一部分?為什么?
2. 請告訴我你最后一次使用的很有趣的技術(shù)?你從中學到了什么?
這些問題可以很好地幫助你,讓一個開發(fā)者充滿熱情地談?wù)撍麄冊谑裁磿r候充滿激情,在什么地方情緒低落。從中你可以了解到很多,他們是怎樣的人,他們來自哪里。他們是否喜歡 NoSQL 這種數(shù)據(jù)庫?他們是否了解什么時候不能使用它們?他們是否了解多線程編程中最難點?他們是否喜歡使用函數(shù)式編程、哈希函數(shù),原因是什么?
英文原文:The Number One Trait of a Great Developer
it知識庫:優(yōu)秀程序員的首要特性:判斷力,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。