1. 程式人生 > >致未來的演算法工程師-演算法校招經驗總結

致未來的演算法工程師-演算法校招經驗總結

       大家好,我是SDD,最近有一些低年級同學包括一些同校的師弟們因為今年的演算法行情都對自己找演算法崗不自信,開始放棄初衷轉其他崗位了,下面從我的個人校招經歷來談談自己的理解,希望能幫助到未來的演算法工程師們。
       本人硬體出身,本科電氣碩士控制,從去年5月轉行演算法以來入坑差不多有一年半了,在今年的校招過程中除了騰訊三面倒在coding上,其他參加面試的主流網際網路公司CV/NLP/推薦廣告/機器學習等演算法工程師崗位基本都收到offer了,大多為白菜,少數是sp,具體的面試問題牛客論壇很多大佬已經總結的很詳細了,下面主要把自己的一些經驗感悟說一下。
       首先,現在各大網際網路公司的演算法崗需求相比開發確實比較少但是並沒有飽和,而且比較缺人(缺合適的),只是很多找演算法的同學可能在專案經歷/coding/實習/top競賽/論文/學校上有所欠缺,如果在其中有一兩項比較突出我覺得找個主流公司的演算法offer問題應該不大,至少從我身邊認識的朋友而言是這樣,準確定位自己,如果簡歷上沒有演算法類的專案經歷或者沒有實習,沒有演算法類top競賽經歷可能在就業上難度確實比較大,而且從今年我面試的經歷來說,主流公司核心部門的演算法對學校要求都比較高,基本沒有非985碩士,而且大多是top高校碩士,當然非核心部門在學校上要求會鬆一些,但總體相比於開發在學歷上要求更高。
        其次,對於演算法一定要把握好提前批內推,因為提前批內推大多是不用筆試的,比如百度,阿里巴巴,騰訊,今日頭條(白金碼),美團,京東,地平線等都是不需要筆試的,等到了秋招基本都要筆試,從我今年做的一些筆試來說,很少通過,可能是因為做演算法筆試的人太多但是需求比較少的原因,所以coding能力不是很強的同學一定要把握好提前批,等到秋招可能一次面試機會都比較難。
        此外在找工作的過程中資訊資源是最重要的,多認識一些和自己找類似工作的朋友,相互交流,分享招聘資訊與面試經驗對拿到offer幫助會非常大,我的美團面試機會就是後來通過我的朋友推薦的部門leader和HR直接面試的,同時多關注牛客論壇,這裡面會有很多一手招聘內推資訊與最新面經,記得暑假的時候自己每天平均刷牛客的時間可能在2個小時以上。

       再說一下各大網際網路公司的提前批面試流程與考察特點:

       (1)今日頭條:總共三輪技術面,優秀者後期會加面,若遠端面試則均通過牛客視訊會議進行,頭條的面試效率比較高每輪面試大概1小時左右,三輪技術面半天就可以結束,且相鄰場次面試等待時間大概為5-10分鐘,考察重點為coding能力以及演算法相關經歷,基本每輪面試都會考coding,我當初一共被問了六題,如果沒有通過面試也會當場告訴結果。

       (2)百度:總共三輪技術面,百度面試風格和其它所有公司的風格均不相同,重視面試者的工程能力和基礎知識,會考察linux系統常用命令,以及c++語言特性與資料結構基礎知識,前兩輪面試,面試的一半時間以上都在考察線上coding的能力,一般每輪1到2個相關的coding題目,三面是經理面這個看運氣了有的會考程式碼有的不會考,大多數情況不會考程式碼,通過聊天考察思維,溝通能力。

        (3)阿里巴巴:阿里巴巴招聘是集團統一負責,一旦簡歷被某個部門鎖定則無法再面其它部門,直到這個部門的面試流程結束,簡歷釋放才可以面其它部門,透露一個細節,如果不喜歡當前面試的部門可以和leader商量讓HR釋放簡歷轉投其它部門,或者當前面試流程被回絕了也是可以再面其它部門的,但是阿里的面試評價是一直存在的,前面的面試評價如果不好後面會很難。阿里每輪面試都有一個評級,研發/演算法達到B+就算通過面試,有下一輪面試機會,正常演算法一共會有5輪面試,評級為A,前三輪是組內技術面(三面是你未來的部門leader),四面為交叉面,5面為HR面,沒有交叉面評級就沒有A,即使前面告訴的結果是通過面試了也基本拿不到演算法OFFER。至於面試特點,阿里的面試比較注重思維,溝通表達能力,專案經歷情況,整個面試過程一般只會考一個coding題,也有可能不考,因此簡歷好的同學面阿里相對會比較輕鬆。

        (4)騰訊:總共三輪技術面,二面是leader,三面是總監面,騰訊的校招評級分的比較多有A- ,A, A+,S,達到A-就達到錄取標準,因此騰訊的薪資差距比較大。就我面試的經歷而言,騰訊比較注重演算法理論基礎,對演算法基礎知識問的比較多,也相對比較細。然後就是coding了,騰訊的coding比較喜歡考察一些DP的問題,對於總監面,我的總監面,面了兩個多小時,全程只和我交流他們現有推薦演算法工程化過程中碰到的一個問題,考察我們的思維能力。

        (5)美團:總共三輪技術面,美團的面試感覺還是挺不錯的,每一輪面試都會出一個coding題,但是不會通過coding刷人,會綜合考察我們的經歷,思維情況,從面試中給我的感覺,美團的演算法應用做的相對比較多,面試官們對演算法的理解也比較深,因此聊的比較開心,雖然程式碼基本都寫的比較差,但是最後還是給我offer了。

        (6)華為:華為的面試比較佛系,一般都是現場面,2-3輪,不同於其它任何網際網路公司,華為比較看重學校,學歷,還有成績,會讓我們帶上成績單,每一輪面試開始前都會仔細看我們的每一科成績,就我上次的面試經歷來說,沒有問任何深一點的東西,大多都是簡單淺顯的詢問就結束了。

         (7)地平線:總共三輪技術面,地平線的三輪面試官都很NICE,正常面試不管我們說錯了還是說對了,面試官都不會告訴我們結果,但是地平線的每一輪面試官在我們回答不正確或者不完善的時候,他們都會緊接著告訴我們正確答案,由於當時面試的是CV感知演算法崗,因此三輪技術面問的全部都是計算機視覺相關的深度學習方法,除了常規基礎知識,演算法特點,地平線的部分面試官還會考察我們的學術思維。當然地平線也少不了coding要求,一面二面沒有考察,三面的時候考了我三個coding題目一題Leetcode,兩題概率題,coding難度中等。
        好了,現在可以說一下演算法面試重點需要準備的細節了,我覺得演算法面試重點關注我們的演算法思維能力還有專案/比賽/實習經歷以及coding能力與一些概率相關題目。對於coding重點刷一下劍指offer加50道左右leetcode easy題,我覺得絕大多數面試基本可以應付(自己因為提前沒有接觸過資料結構,加上今年暑假去了5個城市參加答辯與出差耽誤了20多天時間,只刷了35題劍指offer與3題leetcode,因此在面試過程中還是經常在寫程式碼的時候被虐,只能拿白菜),然後就是概率相關題目,這個也是最容易被忽視的,在8月之前我並沒有關注過概率覺得面試應該不會問,但是後來多了發現這個是面試的一個重點考察方面,尤其喜歡考硬幣,撲克牌,隨機數發生器相關,百度有相關總結基本都覆蓋到了,除了這些基本知識外,在找工作前一定要豐富自己的簡歷,比較重要的就是實習/top競賽或者比較好的專案經歷,這樣才能讓我們的簡歷從簡歷池裡脫穎而出獲得面試機會。很多實驗室導師都是不同意學生實習的,我自己也是,沒有實習經歷,但是可以通過演算法競賽與演算法類專案進行彌補。在7月開始的內推前,我參加了多個比賽,涉及cv/nlp/推薦廣告/資料探勘等方面,獲得3個top名次,當然最重要的是在這些比賽中學習到的一些行業知識。除了比賽,自己也做了實驗室一個演算法相關的小專案,併發了一篇水文。
        最後,強調一下,口頭offer不等於offer,作為應屆生在求職的過程中一定要多找幾個offer在手上才能保證自己不至於太過被動。在8月初的時候我先後收到了百度與螞蟻金服的口頭offer,頭條也成功面完了三面,而且螞蟻金服的leader和我承諾肯定沒有問題,已經把我的offer報上去了,然後我就沒有再投其他公司了,覺得兩個已經夠了而且都是比較不錯的,再投其他的影響其他人找工作不太好,就這樣拖到了9月底,但是卻被告知他們部門演算法hc發不了了,只能給我發研發offer。這個時候我再去投京東的,發現提前批基本結束了。後面又緊接著投了華為,地平線cv感知演算法,美團廣告部推薦,快手社科推薦,開始了瘋狂的面試,於是在9月又拿到了頭條,華為,地平線,美團的offer,快手三面自己主動放棄了。過程中先後還收到了阿里巴巴集團hr打來的電話說給我發其他部門的offer,阿里的招聘和其他公司區別還是蠻大的是集團統一負責。所以只要面試評級通過,就會不斷被分到其他有hc的部門,主要是大文娛,高德這些。


        最後的最後,演算法沒有網上說的那麼難,但也不是很簡單,只要你的簡歷上有一些演算法相關的東西,找準自己的定位,堅持下去就可以,相信自己,祝大家都能找到自己滿意的工作。

        附我的知乎地址:
        https://www.zhihu.com/people/chen-dong-dong-36-29/activities
        歡迎大家關注我,後續我會在知乎上分享更多的經驗。

        另:開啟支付寶搜“547441602”領取來自SDD的幸運紅包,能不能吃飯加根雞腿就靠老鐵們的支援了。