獵雲網註:本文為迅雷產品總監,原YY語音、騰訊高級產品經理BLUES在QQ秀產品中心的同事,梅沙科技的技術合伙人Martin的分享,他來自騰訊,這篇文章來自Martin多年來面試程式設計師的經驗總結,也有梅沙科技程式設計師Mask、Lemon一起作為面試官參與面試之後的總結思考。本文轉自BLUES (微信號:BLUEMIDOU)。
創業公司如何招聘程式設計師有多難?
我們每招聘1個程式設計師,幾乎要看100份簡歷。
梅沙科技的技術合伙人Martin來自騰訊,是BLUES以前在QQ秀產品中心的同事,高級架構師。這篇文章來自Martin多年來面試程式設計師的經驗總結,也有梅沙科技程式設計師Mask、Lemon一起作為面試官參與面試之後的總結思考。
Martin把這份開發團隊的招聘文章寫完,發給BLUES的時候,順便說了一句,做好了被噴的心理準備。
這年頭,觀點比較鮮明的文章總會有不同看法,這是正常現象,正如網際網路公司不可避免的進行需求PK。
其實,每個創業公司的奮鬥過程,都不容易,我們想把在這個過程中的探索進行總結分享,但願對更多的創業團隊有幫助。
這篇文章,就是梅沙科技在創辦4個月以來的開發團隊招聘實錄。
在團隊組建過程中,產品經理的招聘,相對順利。程式設計師的招聘,則經歷了所有創業團隊遇到的各種困難,並且,我們還是在一個辦公地點相對偏遠的創意園區,所幸,在堅持質量第一的前提下,我們的招聘進度符合預期。
對加入梅沙團隊的每一位同事,都很感激,在團隊還很小的時候,能加入進來,一起做一件對教育有價值的事情,但願更多的小朋友都能在梅沙教育體系下快樂成長。
從5月份招聘以來,直到8月上旬,招聘歷時3個多月,後端開發的招聘比較幸運,很快就招到,或許也是因為我們的技術合伙人Martin本身是後端開發,他在招聘過程中的面試官評價,一直獲得應聘者很高的認可。
前端開發,是簡歷少,人難招。
iOS開發,簡歷很多,但簡歷質量不高。或許因為前兩年的APP創業大潮之下,很多程式設計師開始走上iOS開發之路,不少新的程式設計師也選擇了iOS之路,今年創業遇冷,不少iOS程式設計師被釋放出來。
下面從技術面試的每一關通過率和每一關具體的評價情況進行統計分析。
簡歷:不過關的五大原因梅沙科技目前的簡歷來源:BLUES的公眾號、拉勾網、100offer。
iOS的簡歷比較多,最終應聘成功率是1%。前端應聘簡歷少, 相對的應聘成功率高一些3%。
這裡的成功率是用招聘成功人數除以簡歷數。
程式設計師招聘的流程如下:
簡歷篩選電話初面技術基礎面第二輪技術面產品/ui 溝通HR面試CEO面試iOS崗位從簡歷篩選到面試情況的統計情況如下:
流程通過率(入選數/應聘簡歷數)人數應聘簡歷--200簡歷篩選20%40電話初面18%36技術基礎面8%16第二輪技術面2%4溝通和hr面1%2前端的從簡歷篩選到面試情況統計如下:
流程通過率(入選數/應聘簡歷數)人數應聘簡歷--40簡歷篩選80%30電話初面60%24技術基礎面15%6第二輪技術面8%3溝通和hr面3%1從最終通過率來看, 前端的通過率是比iOS要高的。 原因是前端的簡歷確實比較少,我們只能儘量從可培養性方面考察。
簡歷不過關的五大原因如下:
不通過原因佔比項目經驗,工作經歷不符40%學歷不符,且不夠優秀30%工作變動頻繁20%簡歷太過簡單5%殺馬特非主流個人照5%上面的簡歷篩選中,包括iOS與前端, 大體類似。 前端的簡歷,轉專業的情況比較多,下面也作一個專業上的統計。
前端簡歷按專業統計
類別人數佔比應聘簡歷40100%大專2870%轉專業820%本科且計算機專業410%前端這個崗位有個特點, 應聘者中有20%的人是先從事過其它行業,如化學、機械、電子等, 再通過自學或者培訓轉業到前端開發。
從總體的面試結果分析, 一般計算機科班出身的人無論從基礎上還是深度上來說,都會比非計算機專業的應聘者要優秀。當然,也有非科班出身的牛人,只是概率比較小,所以從所學專業來看也可以從一個角度反映出簡歷的水平。
電話面試:項目描述不清是主要失敗原因基本問下工作經驗,溝通是否順暢。
不通過原因佔比項目描述不清晰50%溝通不暢45%工作地點不符合5%項目描述是指, 面試的時候讓應聘者描述自己做過的項目,自己在項目中擔任的角色和職責,自己在項目中做了什麼,有什麼效果。一般對自己所做的東西描述不清楚,我們就不考慮了。
技術面試:體現核心能力基礎面與二輪技術面,問題有交錯,放在一起,下表是未能通過技術面試的主要原因。
知識點備註計算機作業系統應聘者中大部分比較薄弱網絡協議知識一般安全知識應聘者中大部分比較薄弱語言基礎知識一般技術能力是首要的條件, 如果這個都不滿足,基本上不用考慮了。
至於怎麼判斷是否有相關專業的知識,具體分崗位來描述。
每一個崗位都有一個對應的知識棧。
這裡就後端、前端、終端來分別列舉一下知識點。
計算機基礎知識
無論做前端、後端,還是終端。如果有紮實的計算機基礎,如進程與線程知識,TCP/IP協議,數據與結構等,那會是很大的加分項。
有很多人認為計算機基礎知識只是做後端,做伺服器開發的人才需要,像前端開發,根本不需要,這是絕對錯誤的。
對於只應付日常業務編碼的普通工程師來說,紮實的計算機基礎知識,是錦上添花的東西,但對於優秀的前端工程師來說,基礎知識是必不可少的。
作業系統的基礎知識 ,能更好的掌控代碼, 避免性能上不必要的開銷, 或者對其有所警覺, 同時也能避開一些邏輯上的問題。
數據結構和基本算法
清楚特定的基礎數據結構的可以處理的問題, 如果已經知道這些算法,那可以跳過很多耗時的技術選型階段,這就是知識的廣度帶來的優勢。
網絡協議知識
TCP/IP等網絡協議知識,到應用層的HTTP/HTTPS等,對這些協議的深入理解,可以解決web頁面在行動網路下的訪問耗時長等疑難雜症,提出優化方案。
一般來說,做後端要求對計算機基礎知識掌握得非常紮實。才能應對像編譯、網絡連接、高並發訪問下的各種問題與疑難雜症。
後端程式設計師面試點作業系統基礎知識
文件系統、任務調度、內存管理,進程與線程、進程間通信以及同步,鎖等知識必須要有。
基礎語言
一般要求有C、C++基礎,精通如但不限於C/C++/PHP/Java/Go等至少其中一種後端語言
紮實的網絡協議知識
TCP/UDP、HTTP、HTTPS協議,Linux網絡編程
存儲資料庫知識
包含資料庫原理,sql語句的使用、優化。積累搭建mysql和運維mysql的經驗。
數據結構知識
不要求能寫出RB樹的算法,但對常用的排序要熟悉。熟悉常用軟體設計模式
熟識常用的框架與組件nginx, mysql,redis等
實際的項目經驗
能分析出系統各個模塊的關係,為什麼這樣設計。系統瓶頸在哪裡,如何優化性能
前端程式設計師面試點主要分為兩大部分:前端代碼技能部分(html、css和javascript),前端架構部分(構建工具,新生框架,優化以及安全性)。
如果把一張網頁比喻為一棟樓房,那麼html相當於搭建一個主體結構,css相當於來做粉刷,javascript發揮的作用就是類似於水泥的粘合劑。其中任何一個環節出現問題,都會可能導致房屋出現問題。
html基礎,如各種Element的含義和用法。
dom結構與事件模型。
css樣式部分
得熟悉最基礎的布局方式和一些常用定位的作用和區別和css的一些常用的選擇器以及選擇器的權重,另外就是css的浮動部分,掌握浮動的應用場景和消除浮動的一些常用方法。
看是否熟悉響應式布局這塊,對最新的css3的知識掌握熟練程度以及移動端這塊的經驗,這塊屬於面試之中比較看重的一塊,css3中出現了很多的新的瀏覽器特性和效果,使用熟練程度之餘還要知道它的兼容性。
javascript基礎
理解閉包的概念和用途,原型鏈和繼承的概念。
網絡基本知識像HTTP協議,Get/Post的區別與聯繫。
前端與後端交互的數據格式Xml/Json等。
進階部分包括得熟悉使用javascript的流行mvvm框架(vue,angular,avalon等等)其中的一種到兩種,構建工具(webpack,fis,gulp等等),以及系統後期的一個優化過程(包括靜態資源壓縮,合併,按需加載,分流)
前端安全這塊的知識,如跨域機制,CSRF/XSS 漏洞等知識以及如何防範。
客戶端程式設計師面試點首先要對系統如何啟動App,App如何運行有一個整體的了解, 這裡就包含App啟動過程,沙盒機制的目的,實現原理等。
App說到底就是一個可以運行在手機作業系統上的程序與資源的集合,所以對於作業系統中進程與線程的知識點,App怎樣處理圖片與外部網絡資源,也要有一個整體的認識。
再有就是App界面布局和交互的知識。以iOS為例,要掌握:
語言基礎包含OC,Swift,至少精通其中一種。對象的生命周期,面向對象思想。
App界面知識點,自動布局, 自開發組件。和UIView,UIControl,UIScrollView,UIViewController等核心類型的概念和關係。
App屏幕旋轉及屏幕適配,觸摸、手勢、加速計的使用。
手機功能,定位、電話、簡訊、郵件、日曆和通信錄的操作知識。
網絡協議HTTP/TCP等基礎知識,Socket/CFNetwork/NSURLConnection等類的使用
代碼管理如Git/Svn的使用,開發測試流程,Bug管理,打包上架到蘋果審核發布等知識。
常用類庫框架UIKit/Foundation/MapKit。
熱門技術如微信支付/友盟分享/第三方統計等的使用和注意事項。
性能調優方面,內存洩漏、網絡流量、耗電量方面的優化知識,Analyze的使用。
程式設計師的進取心除了自己工作上用到的知識, 對業界新動態,新技術也有所學習和了解。
這裡涉及到業餘時間怎麼安排分配,如下班後,就只有在家裡/寢室通宵玩遊戲,看電影,從來沒有想過要為自己的發展加一把油,充電學習的人, 會被判斷為沒有進取心,得過且過的人。
當然,不是要求沒有娛樂,從不休息,但至少有過學習的安排,所謂學無止境,沒有人敢說自己的知識是足夠的。如果只靠工作時間學習充電,是沒有多少時間去深入反思和總結的。
儘量要避免的減分項在約定好的時間下,面試遲到。
在面試場景裡, 如果見面是給面試官的第一印象的話, 那麼是否能準時是給面試官的第第一印象。參加面試不準時,留給人的評判空間有:
不尊重面試官。時間對真正想做事情的人來說,是很寶貴的,面試者遲到,其實是浪費了面試官的等待時間。雖然這時候面試官也可做工作上的其它事情,但時間也是碎片的,而且不能投入。
參加面試都不能按時,那麼以後的工作任務也不一定能按時完成。參加面試是獲得工作機會的一個相當重要的步驟,不準時參加面試,要麼是沒有分析能力,不知輕重,要麼是時間把握能力太差。
所以說,儘量不要遲到。可以提前些時間出門,避免交通堵塞等意外耗時。
萬一真的是遲到,怎麼辦。有如下補救方法, 提前告知會遲到,讓面試官可以做其它事情;見到面試官後, 要表明一下歉意。這樣給人的感覺是有時間觀念的,不至於被扣分扣得很麼嚴重。
如何找到面試的地點,這其實也是一個考驗。如果連找一個地點的能力都沒有,那如何做好工作上的事情。
曾經遇到一個面試者, 直到約好的面試時間,才打電話來問,坐車到哪一個地鐵站。過一會又打電話問,到地鐵站後從哪個出口,坐哪一路公交車到哪一個站。
這種問題相當低級,完全沒有一點準備,如何放心讓這種人去做事情。
解決方案是:提前查好路線,規劃好時間。像坐什麼車這種事情,自己動動手指在地圖上搜索一下的事情就真的不要打電話問了。如果確實找不到地點,可以打電話表明一下自己的歉意,尋求面試官(或公司招聘聯繫人)的幫助,因為面試官沒有義務為你指路。
面試姿勢不正
面試畢竟是一個比較正式的會話場合,坐姿和行為舉止都需要有分寸。 如果應聘者坐姿不正,對面試官不尊重,那麼這場面試基本沒戲了。曾遇到個應聘者,工作5年,一副老成的姿態,本來工作經驗和知識尚可,但行為和表現非常沒有分寸,除了坐姿不正,空隙期間還翻動辦公室器材。兄弟公司團隊的人都看不過去了,結果自然是讓他回去了。
跨崗位面試看緣分這個包括與產品經理、u設計師、測試等相關崗位的溝通, 通過之後,還有hr面,具體就不細講了。
基本要求
三觀正常,為人正直,誠信。 身心健康。
如果年輕、熱情有朝氣,當然更受歡迎。
寫在最後有句話說招聘就像相親一樣,很難找到合適的。的確,從應聘方和招聘方來說,要找到合適的公司職位/候選人都不容易。雖然像BAT這樣的高帥富很容易吸引大批人才,但要在上千的應聘者中挑選出合心意的人才也要花費很大的成本。招聘說到底是信息匹配的過程,如果能做到信息的透明化,做到精準匹配,當然可以節約大量成本,也有招聘網站在做,但實際上依然很難做到完全匹配。
另外一點,無論從應聘方還是招聘方,要收穫到高質量的職位或人才,都要不斷的提升自己的價值,符合對方的標準,才能達到自己的目標。