尋找少數精英——尋找和僱用業內最好的軟件開發人員

已發表: 2022-03-11

挑戰

招聘軟件開發人員通常是一項艱鉅的任務,因為全世界都是您的人才庫。

招聘軟件開發人才——真正的人才——是一項多方面的技能,它處於社交網絡、技術敏銳度、流程管理和直覺的十字路口。 任何曾經負責招聘的人都非常了解招聘挑戰的範圍和深度。

招聘人才是一項多方面的技能,處於社交網絡、技術敏銳度、流程管理和直覺的十字路口。

特別具有挑戰性的是,優秀的軟件工程候選人的標誌性品質極難評估。 您如何探索候選人的創新能力和創造性思考能力? 怎麼判斷他是不是隊友? 你如何診斷她接受建設性反饋的能力? 你如何調查某人的道德纖維?

雖然評估這些“軟”標準並非易事,但這樣做對於僱用最優秀的人才至關重要。 然而,評估這些關鍵但難以捉摸的屬性的嘗試常常包含足夠透明的問題或挑戰,以使“正確”答案對大多數候選人來說是顯而易見的。 因此,通過詢問他們無法獲得任何實質內容。

一個常見的陷阱是過於關注技術細節,而不是評估候選人解決問題、創造性思考以及與團隊其他成員合作的能力。

一個常見的陷阱是過於關注技術細節。

誠然,有效地面試和聘用高級軟件開發人員既是一門藝術,也是一門科學。 儘管如此,確實存在用於評估軟件工程師技能和能力的更微妙維度的方法和方法。

當共同使用時,這些招聘技術產生了一個高效的篩選過程,並在招聘受薪或自由編程人才方面取得了成功的成功記錄。 這個過程就是這篇文章的全部內容。

入門:用最好的方式填充管道

尋找和僱用少數精英的過程早在面試之前就開始了。 事實上,正確識別潛在合格候選人的系統方法可以顯著簡化和提高整個招聘過程的效率。

填補軟件開發人才的招聘渠道對於招聘最優秀的人才至關重要。

毫無疑問,合格候選人的唯一最佳來源是個人網絡,因為有素質的人往往會與有素質的人交往。 個人推薦是成功的新員工(來源)最有成效的來源。

其他有價值的頂尖技術人才來源包括:

這些資源的美妙之處在於,它們甚至在面試他們之前就以一種或另一種方式提供了你已經審查過的候選人。
  • 博客和在線技術帖子。 開發者博客可以成為優秀候選人的重要來源。 技術帖子通常會為開發人員的技術敏銳度、解決問題的方法和寫作技巧提供有價值的見解,所有這些都是確定優秀候選人的重要標準。
  • 開源代碼貢獻者。 在 GitHub 和 SourceForge 等網站上仔細閱讀開源項目可以產生高素質的候選人。 這種方法的另一個好處是它允許您在決定聯繫之前查看和評估候選人的代碼示例。
  • 會議。 相關技術會議的會議發言人和共同與會者通常為合格的候選人提供寶貴的資源。 如果您無法參加,請查看在線計劃並考慮聯繫演示者。 您可能只是碰巧“在正確的時間”與他們聯繫,或者他們可能會將您推薦給其他高素質的人。

這些資源的美妙之處在於,它們甚至在面試他們之前就以一種或另一種方式提供了你已經審查過的工程候選人。 無論是您公司中的某個人,還是您認識的某個人,都認識他們並高度推薦他們。 或者您已經查看了他們的開源代碼並對其印象深刻。 或者他們的博客文章暗示了成熟的技術專長和理解水平(理想情況下甚至是幽默感:-))。 這裡的關鍵是,當您聯繫時,候選人已經遠遠超過“只是一份簡歷”。

此外,考慮使用職位描述模板(例如用於 SEO、前端 Web 開發和後端 Web 開發的模板),這些模闆對您想要的候選人類型設定了很高的期望。

評估軟件開發人員的技術敏銳度

對技術熟練程度的有效確定遠遠超出了特定編程語言或技術的細微差別。 雖然這些技術細節當然不應被忽視,但它們通常不是評估過程中最重要的元素。

對技術熟練程度的有效確定遠遠超出了特定編程語言或技術的細微差別......
評估的關鍵是候選人的基本技術實力和理解力、創造性思維和解決問題的能力。

最好的開發人員不會將時間浪費在可以在語言規範或 API 文檔中輕鬆找到的內存上。 此外,學習一門新的語言、技術或設計模式對於一個強大的開發人員來說是一項相對微不足道的練習(考慮到新技術被引入和獲得市場份額的速度加快,這實際上是一項基本技能)。 因此,評估候選人的基本技術實力和理解力、創造性思維和解決問題的能力至關重要。

實現此目的的一種行之有效的方法是提出不受語言限制的編程挑戰。 向候選人提出一個問題,並要求他或她用他們選擇的語言編寫解決方案。 唯一的要求應該是解決方案徹底和正確,包括解決任何邊緣條件或潛在錯誤。 請記住,這裡的目標是評估候選人的 (a) 解決問題的能力、(b) 計算機科學知識和 (c) 編碼風格。 此時您不是在評估特定編程語言的能力。 (順便說一句,這種方法的另一個好處是,它避免了要求面試官成為候選人編碼語言的專家。)

存在許多在線資源,您可以從中選擇此類編程挑戰以納入您的面試過程。 那些專注於算法(而不是特定編程語言的知識)的人有助於評估候選人的計算機科學基礎和解決問題的能力。 一些值得注意的例子包括hackerrank.com、projecteuler.net 和beatmycode.com。 但是請記住,您不需要使用這些站點來管理測試; 相反,您可以簡單地將它們用作從中選擇挑戰的資源,然後讓候選人在面談期間(在白板上等)編寫解決方案。

也就是說,在線測試可以成為面試過程中有價值的附加組成部分。 但是,在使用在線測試服務時,重要的是要避免過度關注候選人網站生成的分數而不是其解決方案的細節的風險。 一方面,您可能不同意測試服務採用的評估指標。 此外,您認為解決方案的某些方面可能特別聰明或優雅,而自動評估過程可能完全沒有註意到。

使用在線測試服務時,重要的是要避免過度關注候選人網站生成的分數而不是其解決方案的細節的風險。

在線測試服務提供的評級也可能出現“誤報”或“誤報”。 一方面,誤報可能會導致浪費時間和資源來面試不合格的候選人,而誤報可能會取消非常值得考慮的候選人的資格。 從長遠來看,後者俱有更嚴重的後果,因此必須仔細監控。

一般來說,親自進行的測試本質上比在線測試更可靠,因為它們減少了欺騙的可能性。 此外,現場測試提供了觀察軟件工程師候選人在壓力下如何運作的機會。 儘管如此,使用在線測試服務可以成為此處提倡的更全面的篩選過程類型的有效組成部分,該過程結合了其他技術來幫助清除欺詐或不合格的候選人。

在線開發測試也可以作為一個有價值的初步過濾器,以消除技術技能遠低於標準的高比例候選人。 有趣的是,由於缺乏信心,許多這樣的候選人甚至沒有嘗試參加考試就放棄了這個過程。 也就是說,信心並不總是最好的態度晴雨表,正如鄧寧-克魯格效應所證明的那樣。

評估技術敏銳度的另一個非常有價值的技術是要求候選人提供他們在 GitHub 和 SourceForge 等網站上創作或至少貢獻過的開源項目的列表(如果他們只是貢獻者,請他們向您指明他們個人編寫的代碼的哪些部分)。 然後,您可以在審查他們的代碼後參加面試,準備向他們詢問具體的設計決策、編碼風格、採用的模式等。 這樣的討論可能比簡單地詢問候選人關於語言的技術細節更有價值。

說到語言……

少數精英不僅精通技術,而且是完美的軟件開發專業人士,無論是口頭還是書面都清晰、有效、簡潔地進行溝通。

口頭溝通技巧在面試過程中很容易評估,無論是面對面還是通過電話。 雖然口頭技能在某些不涉及用戶聯繫的“幕後”技術角色中的重要性毋庸置疑,但它們對於最大化有效的團隊互動和思想交流仍然很重要。

精英中的少數成員是完美的專業人士,無論是口頭還是書面形式,都能清晰、有效、簡潔地進行溝通。

最好通過要求候選人提供寫作樣本來評估書面溝通技巧。 強烈推薦技術寫作樣本,因為它們不僅展示了寫作技巧,而且還展示了技術清晰度。 在面試前索取這些樣本可能特別有用。 一方面,這提供了提前審查和分析他們的寫作的機會,這樣你就可以準備好與他們討論和批評他們的寫作。 此外,一些技術候選人會被要求編寫樣本而“推遲”,樣本本身可以作為一個有價值的過濾器。

道德困境

有一個古老的笑話是關於一位父親想教兒子道德的。 父親告訴兒子,他和他的合夥人有一家乾洗店。 父親說,有一天,一位顧客來我們店取她的干洗衣服。 當顧客轉身離開時,我意識到她多付了 10 美元。 好的,道德規範來了……我要不要告訴我的伴侶?!

相比之下,真正的道德困境——道德困境——往往是模糊而復雜的,而且它們肯定會出現在商業中。 如果最強大的軟件開發人員缺乏經過適當校準的道德指南針,他或她可能會對項目造成無法估量的破壞。 因此,候選人的這一維度對評估至關重要。

如果最強大的軟件開發人員缺乏經過適當校準的道德指南針,他或她可能會對項目造成無法估量的破壞。

實現這一點的一種非常有效的方法是向候選人提出一個假設的道德困境,並詢問他們在這種情況下會做什麼。 為了使這一點有效,這個困境沒有一個明顯的答案是至關重要的。 理想情況下,任何可能的答案都應該是不完美的並且有些問題。 候選人對此類問題的回答可以為他們的思維方式、道德標準和優先事項提供巨大的洞察力。

這是一個例子:

您工作的公司已被另一家公司僱用從事一個項目。 該項目需要使用特定的分包商。 您以前曾為該分包商工作,因此您直接知道他們經常加班並為客戶的時間多收費用。 但是,如果他們在這個項目上這樣做,它不會傷害您的公司,因為這些成本將轉嫁給您公司的客戶。 您已經向您的老闆提到了這一點,他建議您不要對客戶說任何話,特別是因為分包商的項目部分只佔總預算的一小部分。 不過,您有一個非常親密的朋友為客​​戶工作。 一天午餐時,你的朋友問你對這個分包商了解多少,因為他知道你曾經在那里工作。 你如何回應,你告訴他什麼?

這裡的美妙之處在於沒有明確的“正確”答案,這種情況反映了現實生活和商業世界的道德複雜性。 如果問得當,對這種“道德困境”問題的回答可能是招聘軟件開發人員面試過程中最有說服力和最有價值的部分之一。

認識你(你到底誰?)

面試過程的固有缺陷之一是,在你真正與他們一起工作之前,真的沒有辦法知道與一個人一起工作會是什麼樣子。 儘管如此,對候選人的個性和氣質有一個真實的感覺對於成功的招聘至關重要。

技術精英不僅技術出眾,而且專業性很強。 因此,對它們的搜索不限於嚴格的技術評估。

技術精英不僅技術出眾,而且專業性很強。

考慮到這一點,這裡有一些面試技巧有助於評估候選人的個性和專業精神……

一方面,考慮有意開始面試過程,由非技術人員(如行政助理)進行預篩選。 然後,您可以詢問該工作人員,一旦候選人意識到他們不是技術人員,他們是如何對待他們的。 他們是貶低、不耐煩和居高臨下,還是令人愉快、耐心和尊重? 工作人員向你轉達的內容確實很能說明問題。 您想知道候選人是否尊重他人,無論他們是誰。

在整個面試過程中,尋找機會為候選人提供建設性的反饋。 仔細觀察這引起的反應。 反饋是否受到讚賞,或者候選人似乎變得完全防禦?

在面試的前 5 或 10 分鐘進行非技術性的“閒聊” ,作為了解候選人個性的一種方式。 候選人可能認為這只是實際面試的前奏,因此更有可能“放下頭髮”。 因此,在這段時間裡,你可能能夠從他們的性格中看出驚人的數量。 當然,如果他們表現出幽默感,那總是一個好兆頭。 :-)

除了這些招聘工程師的一般技巧外,這裡還有一些示例問題,可幫助評估候選人的個性、自信、誠實和專業精神

  • 當你回顧你的職業生涯時,你所面臨的具體困難情況是什麼讓你印象深刻? 詳細描述挑戰以及您是如何應對的。 你覺得你處理得特別好? 如果你有機會再做一次,你會做些什麼不同的事情?
  • 你認為你在職業生涯中犯過的最大錯誤是什麼?
  • 您最喜歡軟件開發的什麼? 你最不喜歡什麼?
  • 如果你可以為自己畫出理想的位置,那會是什麼? 就你的角色和職責、公司的規模和類型、工作環境等而言,它會是什麼樣子?
  • 你最大的優勢是什麼? 僱傭你我們能得到什麼?
  • 沒有人是完美的。 你正在努力改善你性格的哪些方面?
  • 如果我打電話給你現在的老闆,問他關於你的事情,他或她會告訴我什麼?
  • 我們在僱傭你時應該注意什麼?

總的來說,這些問題和技巧已被證明可以促進對候選人真實身份的更深入和更深入的了解,這對於做出成功的招聘決定至關重要。

感情是相互的嗎?

所以,你找到了一個 A+ 候選人。 高技能。 積極向上的性格。 優秀的文化契合度。 那太棒了! 但…

還有一個關鍵問題有待回答:候選人在多大程度上對您的空缺職位和為您的公司工作特別感興趣? 這個問題的答案對於確保成功聘用至關重要。 片面關係在商業中的作用並不比在我們生活的任何其他方面更好。

再一次,簡單地直接問問題的價值是微乎其微的,因為在面試過程中,人們必須懷疑候選人在回答這樣一個問題時的坦率。 相反,這是人們必須嘗試通過其他不那麼直接的方式來確定的事情。

片面關係在商業中的作用並不比在我們生活的任何其他方面更好。

對於初學者來說,候選人從一開始就接近你的方式是一個相當可靠的衡量標準。 候選人是否提供了一個令人信服的、令人信服的解釋,說明他或她為什麼對你的公司和可用的機會特別感興趣? 如果是這樣,這不僅顯示出真正的興趣,而且顯示出一定程度的專業成熟度和成熟度。 在與您聯繫之前,這樣的候選人顯然已經對您的公司和機會進行了至少一定程度的事先研究(而不是簡單地“在城裡到處掃射他們的簡歷”)。

進入開發人員招聘流程的候選人已經完成了公司及其產品或服務的功課,為他們的興趣和精明提供了一個有用的指標。 對面試官進行了預先研究(例如,閱讀他或她的簡歷、LinkedIn 個人資料、博客文章等)的候選人尤其值得注意。 更老練的候選人會在面試過程中強調透露這些信息。 對於其他人來說,簡單的開放式問題,例如“您對我們公司了解多少?” “你對我們公司和這個職位有什麼特別感興趣的地方?” 確實可以引起非常有說服力的反應。

最後,真正感興趣的候選人可能會在整個面試過程中提出問題。 儘管如此,通過詢問候選人是否有任何問題來結束面試總是一個好主意。 根本沒有任何問題可能是一個危險信號,即使對於本來會被認為是 A+ 候選人的人也是如此。

包起來

這裡描述的技術可以作為一個有價值的核心過程,用於尋找和僱用業內最好的軟件開發人員。 然而,重要的是要記住,有效的招聘不是目的,而是一段旅程。 人們必須不斷地重新評估和調整他們的流程,因為靜態流程注定會成為死流程。

有效的招聘不是目的,而是一段旅程。

根據自己的文化和優先事項,每家公司的旅程都會有所不同。 找到適合您組織的路徑並在其上執行。 你會有成功,也會有失敗,但只要你從後者中學習,你就可以放心,你是在正確的道路上。