如何招聘程式設計師?

夏雪冬日發表於2017-03-14

    

  同步釋出http://www.yuanrengu.com/index.php/20170314.html

  近一年技術團隊在不斷擴充成員,一直忙於高階java工程師、android工程師、iOS工程師的面試,很想寫一篇和招聘程式猿相關的文章,特別是看到“酷殼”裡皓哥寫的一篇《我是怎麼招聘程式設計師的》文章後,產生很多共鳴。

     雖然工作年限還不夠長,但也經歷過很多大大小小的面試,即被面試過,也面試過很多人。經歷過很多很專業的面試,也經歷過一些非常BT和令人不怎麼舒服的面試。

     一個好的面試體驗,公司的考核流程和麵試官就顯得非常重要了,如果考核流程非常繁瑣,會讓面試者內心沒有任何好感,如面試時在前臺莫名其妙的被晾置一兩個小時,筆試初試複試得跑三趟公司。面試官就更重要了,不要剛開始面試,就弄的像別人欠你錢或別人在挑戰的技術能力似的。

      公司招聘不要弄成一種買賣關係,應該是尋找一些志同道合或跟公司“氣場”匹配的夥伴,這裡的氣場是指跟公司所需要的技能匹配。公司行政經常給我說:“技術人員是不是很矯情啊?說好來面試的,最後都不來,說好要入職的,入職前一天又說有公司給更高的待遇。”

      我只能微微一笑的給她說:“你見,或者不見我,我就在那裡,不悲不喜。你來入職,或者不來入職,offer反正在你手裡,不增只減”。因為我也曾經矯情過,研究生快畢業時,做了一堆的演算法和資料結構方面的題,搜了一堆面試常問的題和一些面試技術,就到處投簡歷面試(其實當時手裡已經有幾個不錯的offer了),不為找工作,只為刷存在感,回來這年少無知的舉動,倍感慚愧。

      如何去考核一個程式猿是否可以給offer?我在面試應聘者的時候,最主要是要弄清如下幾件事:

  1. 應聘者是否可以跟我“正常對話”?

  2. 應聘者的技能是否跟公司所需的技能達到一定的契合度?

  3. 應聘者是否有能力解決工作中的難題?

  4. 應聘者是否可以跟我們團隊一起愉快的工作?

      我相信絕大部分的公司在考核應聘者時都會圍繞上述四個問題來進行,可能有人會對第一個問題產生疑問,難道還有不能正常對話的人?還真別說,我就遇到幾個性格比較“鮮明”的應聘者,面試時頭抬的高高的,眼瞅著天花板,一副老子天下第一的表情,技術人員有傲骨可以理解,可是問幾個技術問題,卻一問三不知,問他之前團隊如何協作的,只回答說公司安排的任務不喜歡就離職了,讓人真的很難正常對話。對於第二個問題就更重要了,公司當然希望應聘者的技術越牛越好,夢想是美好的,現實終究還是很骨感,公司也不期待能招到全棧工程師,只希望能找到跟公司所需的技能契合的人。對於第三個問題,程式猿最基本的技能就是要通過網路解決工作中的一些難題,多問度娘,多問谷歌,程式猿比較忌諱的一點就是“拿來主義”,遇到問題不動腦思考張口就問別人。第四個問題,基本就是考查人的社交能力和情商了,個人人為,團隊的和諧是一切事情的前提。

      之前我經歷過的一些比較傳統的面試流程,基本是下面這樣的:

  1. 應聘者先做自我介紹

  2. 問一些比較難的非常細節的技術問題,基本就是快問快答的形式

  3. 給應聘者出一些比較怪異的演算法題

      個人覺得這種面試形式不是太合適,可能會錯過很多適合公司的程式猿。其實我個人不論是面試別人還是被面試時,都非常討厭第一個問題,拿著別人簡歷難道不知道別人叫什麼名字?技術面試,這種形式上的東西能少就儘量少即可。

      但應聘者一進來,總得有個關於介紹的開場。我面試應聘者時,別人一進來時我會先問好,給個微笑,讓應聘者不要太緊張。讓別人做下技術方面的簡單介紹,如工作中主要處理哪裡方面的業務(電商、金融等等)啊?主要用哪些程式語言?主要用哪些開發架構(dubbo、SOA等)?主要用哪些框架(Spring、mybatis等)?這樣也方便對這個人有比較全面的瞭解,交流時也好針對性的問些問題,做偏技術方面的介紹也好了解這個人的溝通交流能力。最後發現,其實很難從一個人的簡歷或自我闡述上來考核這個人是否合適。

      我絕不會在面試應聘者時問一些非常細節的問題,我曾經就經歷一個非常BT的面試,面試官據稱剛從華為出來,一上來就問我是否用過mybatis,我說用過。接下來這哥們問,mybatis是哪一年被開源的?接手的是哪個開發團隊?mybatis的升級歷史?當時我覺得我可能聽錯了,我讓面試官重複了一遍,確認自己沒聽錯後,我說不清楚哪一年被開源的,現在是apache的開源專案。這哥們說是都不知道哪一年開源的,也不知道是apache的哪個團隊接手,真的用過mybatis?當時內心就千萬只駿馬奔騰而過啊,我真的是在應聘程式猿嗎?

      我在面試時一般會根據應聘者自己的專案描述來提問,考核下他自己說的技能的熟練程度。也遇到一些技術確實夠菜,簡歷寫的無比高大上,問他自己說的問題都回答不上來,你問東他答西,完全不在同一頻道對話。碰到這種情況,我就會問筆試題裡的SpringMVC工作原理(筆試只是公司要求的形式,我一般不會太看重筆試的成績),這個問題非常簡單,只要用過這個框架的人都能說出個一二三來。這道題也是所有人都答的非常好的,因為網上一搜,答案一大推,問這個問題也是讓應聘者放鬆些不要太緊張,畢竟自己剛寫過。但有些人筆試題上答案寫了好大一堆,但口述卻一點都說不出來,知道什麼問題了吧?我真的不介意你筆試時抄網上的東西,只要你能複述出來我都算你掌握了這個問題,但假如是抄的東西連複述都說不出來,那面試還有什麼可問的?碰到這種情況,我也不能直接打發別人,還得照顧應聘者的自尊心啊,我會跟應聘者聊聊人生聊聊理想,然後面試就愉快的結束了。

      如果沒有一起工作過,沒有一些實際的專案做背景,單靠半個小時或一個多小時的面試,是比較難全面的瞭解一個人的。個人覺得在應聘程式猿職務時需要做好如下幾個方面:

  1. 穿著簡單整潔,不需穿個西裝打個領帶。

  2. 提前熟悉公司的招聘需求,需要的技能可以提前準備下,有備無患嘛。

  3. 對於面試官的問題,知之為知之不知為不知,技術這東西會就是會,不會就是不會,沒法偽裝或隱瞞,不然等著面試官問個問題而拆穿就尷尬了。

  4. 平時可以養成一些寫技術部落格或參入開源專案的習慣,反正我是非常喜歡這樣的程式猿,肯定能加分。

      所有的面試技巧都敵不過自己知識體系的深度、廣度!不斷提升自己,基礎紮實,對某一個或幾個業務有比較深入的熟悉,這樣的小夥伴無論在哪家公司都是非常受歡迎的。

相關文章