1. 程式人生 > >2018年演算法工程師秋招經驗貼(微軟、華為、網易遊戲、阿里offer)

2018年演算法工程師秋招經驗貼(微軟、華為、網易遊戲、阿里offer)

目前不打算再投其他的公司了,所以來寫面試總結。一直被各種人追問面經,準確寫好一勞永逸哈哈哈。本人985碩士,性別女,可以參考下哈。有什麼問題,可以留言哈。

1.微軟
微軟是參加的進校面試,(師姐安利的,師姐是參加的夏令營)微軟的面試體驗是非常的棒的,微軟特別尊重面試者,面試一般集中在問演算法題上,一時想不出方法,面試官也會給一些思路引導,不會懟人真的是很親切的。。。

進校面試是上午10點簽到,10點到11點現場筆試,筆試為兩道基礎資料結構演算法題,第一題為查詢兩個連結串列的公共節點,第二題為最大堆的插入節點與刪除節點。要求在A4紙上手寫程式碼實現,要注意判空和邊界,以及演算法複雜度和空間複雜度。微軟看重演算法的實現。

11點到12點宣講並公佈筆試結果,中午休息下午進行面試。面試分三輪,一面與二面為平行面,兩面中至少有一位面試官給通過才能進入第三輪面試。一面的面試是看了看簡歷,什麼都沒問簡歷相關的東西,直接出題。問,一個流資料流過來,要去讀取這個資料,然後需要反覆讀一部分資料所以用buffer儲存它,buffer裡的資料可以反覆讀,但是buffer如果讀完沒有讓讀資料的指標指向之前的資料的話,指標就無法再回去讀buffer的資料了,所以要實現如何讓它再去讀buffer的資料。(其實我完全沒聽懂啥意思)面試官給我解釋了一下,但是我還是沒怎麼聽懂到底想讓我怎麼實現。最後我只寫出了每次呼叫指標定位資料就開始讀資料,一直讀到末尾。面試官說我沒有實現如何把buffer讀完之後,怎麼再返回到buffer裡面去讀。。。(聽不懂,心很累)然後,我感覺涼涼,便等待第二面。

二面的面試官性格非常好,一開始看了看簡歷,讓我介紹一下現在做的專案,我是盡全力再介紹了,不過他好像沒怎麼聽懂。然後問tensorflow與pytorch的區別。然後就開始出題,一共兩個題。第一個題目是,括號匹配,一個字串中有左括號、右括號、星號,星號代表左括號或者右括號,判斷是否是合理的括號匹配。(如果想讓我寫出問題答案或思路,請在評論中留言哈,這裡就不說答案了)由於第一題回答的太快了,又有第二題目,是第一個字串重複多少次可以包括第二個字串。實現的時候都要注意判空與邊界。然後面試官看了下時間,說還有一段時間(微軟面試一般是1小時),就告訴我他這邊肯定是過了,問我有什麼想讓我在評價中寫的嗎?我就大致說了說想做的東西,他說可以幫我在評論中寫上我的意願。很耐斯的面試官。

然後,順利進入三面。三面應該是主管級別的,首先自我介紹(不得不說,自我介紹是真的不知道怎麼表現自己),然後讓我描述一個簡歷中的專案,然後我又講了一遍我最近的專案,感覺面試官也沒怎麼聽懂。然後問我知不知道hadoop與spark的區別,用英文說一下。(微軟都會有英文面試,當時教室裡的人都在烏魯烏魯說英語),說完之後讓用中文再說一遍。然後就再開始出題,題目是給定一個數組,求取其中的有最大和的子陣列,簡單DP。面試官提出了程式碼的幾個問題,是空間複雜度的問題,時間複雜度要求是o(n),做到之後需要空間複雜度為o(1),當時是用陣列儲存的所以空間複雜度為o(n)。然後就讓再改下,改出來之後便面試結束。面試官也很耐斯。
然後,HR說回去等通知。

一週過後,借到HR電話,說有會第四面skype視訊面,面試時間為三天後。第四面應該是總監面,首先自我介紹,然後描述一個簡歷中的專案,專案中是怎麼與人合作的。然後開始出題,將羅馬數字轉為阿拉伯數字。
三天過後,給HR發郵件詢問面試結果,說得到了面試官的Hire。一週過後,收到了HR的同意郵件,相當於口頭offer,薪資會再商議。

2.華為
都說華為面試水,一開始我還不相信,後來真的信了。
投的提前批,筆試三道題300分據說150就可以過,我做了260順利收到面試通知。面試是在香格里拉酒店,環境是一級棒啊。一共兩輪面試,一輪技術面,二輪綜合面。

一面面試官應該是做java的,我簡歷上一共兩個java專案,就問這兩個java專案了,由專案會引申出很多相關問題,例如寫出匹配多個字串的正則表示式、描述一個場景是怎麼實驗的,基本是在判斷你的專案的真實性。最後面試官讓寫出,讀入一個檔案,判斷裡面有多少個’hello world’,語言不限。面試大概一個小時。
二面等了兩個小時才到我,都到了下午六點。。(是真的餓)二面也就十分鐘,瞭解家庭情況,有沒有男朋友,個人性格方面的問題。面試結束,面試官還最後跟我握手,挺耐斯的。
一週後收到HR發的面試通過的簡訊,註明有 ‘並非正式offer’。

3.網易
3.1網易遊戲(雷火伏羲實驗室)
投的伏羲AI實驗室的人工智慧工程師,筆試要去公司現場,面試也要去公司現場。。(公交車超累的。。)
筆試感覺難度挺大,四張卷子,一張選擇,半張填空,一張半簡答,半張程式設計題(半張意思是一面)
程式設計題是迷宮題,dfs解決。因為投的人工智慧,選擇填空和簡答都是深度學習以及機器學習的知識,強化學習考察的偏多。可能他們遊戲用強化學習比較多吧~
筆試順利通過,第二週收到面試邀請,問下週是否參加面試。

面試還要去現場面,路途是真的奔波,網易遊戲提供了高鐵二等座的報銷,面額不超過1200,同時通過筆試參加面試的人去簽到即可獲得小禮物一份,禮物為倩女幽魂掛鏈、小豬佩奇玩偶、網易遊戲帆布包以及面試必過符(網易遊戲是真的有錢~)
面試為上午兩面平行面,人工智慧崗位對深度學習演算法可能要求比較高,所有的演算法都要在紙上可以畫出思想,以及推出公式。我只能做到畫出思想。。不過去伏羲AI實驗室實習人工智慧的同學說演算法做的很少,都是搞平臺開發的。

第一面面試官比較耐斯,上來自我介紹,後問做的深度學習的專案用到的LSTM,畫出原理圖,以及寫出推導公式,我當然推不出來。然後問的都是關於大資料的知識,因為我本身也有大資料的專案,Flume、Kafka、ES、Spark Streaming的原理以及各種使用方法都有問到。比如Flume是怎麼配置的,用的哪種agent,介紹一下Flume裡面的三個部件;Kafka的訊息傳送接收機制,Kafka的topic、partition的定義;ES的索引、以及與標準資料庫的差別與對應之處;Spark Streaming的RDD有哪些細分,以及實現機制。然後問了些linux基礎知識,檔案的許可權以及常用命令;還問了python的使用情況,元組與列表的區別,以及字典的使用。(這個時候我感覺我跟人工智慧已經脫離了。。)
最後一道演算法題,一行一行的遍歷樹結構,要求五分鐘內寫出來(使用佇列即可實現),面試結束,進行第二面。

第二面面試的與第一面差不多,另外還涉及到了Kmeans演算法原理,K的選擇與初始點的選擇;ES倒排索引的原理;以及影象中對抗學習的使用原理。最後一道演算法題,深度遍歷樹結構(使用棧即可實現),面試結束。
第一面與緊接著的第二面一共面了兩個小時。中午可在食堂用餐,1點半公佈結果(是否進入第三輪),網易食堂是免費,但感覺不怎麼好吃哎(我是吃的盒飯型別的飯哈)。

結果兩點多才公佈結果,大概三點半開始第三面,面試半小時。面試官上來就說要把我轉到平臺開發,問我可不可以接受。簡單的問了所有的大資料的專案,每個元件用的什麼版本(真的每個都問了是用的什麼版本,也是神奇),大致瞭解下專案是怎麼做的,結果面試。據說今年人工智慧爆滿,沒人投開發崗。。所以開發崗很缺人的。
招聘助理說一會有HR面試,要等下。

大概四點半開始HR面試,面試半小時。首先自我介紹,之後問些性格問題,大致是瞭解團隊合作怎麼樣,是否可以與人愉快的交往之類的。由於是第一次HR面試,完全不懂得套路,HR讓我用兩個詞來形容自己,愣是沒想出來。。。還要描述在專案中覺得自己有哪些缺點(???)有很多我都不知道怎麼回答,可能回答的HR不是很滿意吧。

大概一週多的時間,招聘助理打來電話,接到了offer待處理的通知。

3.2網易網際網路(雲音樂)
(一面掛,羞恥呀)
我投的演算法工程師-NLP。筆試為線上筆試,20道選擇,3道程式設計,2道簡答。題目挺難的,很多同學都掛了。需要好好準備哦。

大概過了幾周收到面試通知,現場面試(又要去網易。。)網易網際網路是公眾號叫號。
一面面試官一開始自我介紹,然後他看了下簡歷感覺極度涼涼,可能他只找到了一個小專案是他所涉獵的。開始提問LR原理,資訊熵、資訊增益、資訊增益率,都要寫出公式,我一個都不會寫。。(抱歉我完全不想為了面試去記公式),只是口頭說原理,感覺那個人愛答不理,也不怎麼聽我講。然後讓我寫出合併兩個有序連結串列的虛擬碼(注意是虛擬碼),然後寫完,他說你這個有錯誤讓我改,然後我改了。然後說我這個程式碼無法上線(???)。然後說面試結束,有什麼想問的。我說NLP演算法工程師主要做什麼,他說什麼kmeans、LR都在嘗試,tensorflow也在嘗試(???)。給我的感覺是網易雲音樂的演算法可能偏向於做推薦,其他的可能沒怎麼做新的東西。然後三分鐘後收到不通過。

再見,回到宿舍怒卸網易雲音樂。(感覺網易雲音樂今年極度不缺人,師兄師姐一面也掛了(前端))
就這樣,一面面試官那副嘴臉在我腦海裡揮之不去(233沒有這麼嚴重哈,當時我阿里也只剩HR面了)

4.阿里爸爸集團
阿里是走的內推,內推崗位為演算法工程師。是師姐幫忙找人內推的,部門隸屬於阿里雲。因為部門是做深度學習的,所以問題偏向於深度學習知識,不過問題都是根據簡歷問的,因人而異,僅供參考哈。

內推第二天收到一面,一面為簡歷面,歷時將近兩個小時。首先,介紹最近做的深度學習的專案,面試官很耐斯,我在介紹的時候沒有打斷我的講話,講完之後面試官提問了些細節,大概有十五分鐘,面試官已經明白我是怎麼做的了。然後對專案的細節做出提問,比如特徵是如何計算的,損失函式是用的什麼,為什麼使用這個模型,以及專案引用的論文思想。(其實問的很細的,就是每一步是怎麼做的,我一時想不起來具體的問題)然後問還做過什麼深度學習的專案。簡歷中也有大資料的專案,提問spark 與tensorflow分散式平臺的區別,kmeans或者其他的演算法是如何實現分散式,SVM的原理以及核函式的定義,(都是根據簡歷中提到的知識點進行提問,問題很多暫時回憶起這些)最後是線上程式設計,題目為K大數,要求演算法複雜度為O(n),即為快速排序演算法的變種。
面試結束,一面面試官也是我的內推人,感覺我跟部門很match,講了很多他們部門在做什麼,面試官也非常厲害,海歸博士一堆論文還是阿里星,羨慕!!

一面第二天即收到二面,二面為主管面,首先,介紹最近做的深度學習的專案,面試官瘋狂打斷並瘋狂問問題,就是問一些做的細節,到底是怎麼做的,資料一開始怎麼處理的,為什麼用這個模型,你這樣做創新點在哪裡。然後進行對簡歷的技術點提問,有一個大資料專案面試官說偏工程就沒怎麼問,然後問LR的原理,LR與SVM的區別,hadoop的原理,hadoop與spark的區別;如果實現kmeans、LR、SVM演算法,用hadoop和spark有什麼區別,或者說用哪個更適用?Spark Streaming的原理(大概就是簡歷上寫什麼,基本上都會問這個的原理,說完原理可能還會深入問一個問題)
最後向面試官提問,我是否還能接著面試,面試官笑著說應該可以。二面一小時。第二天內推人告訴我過了,準備三面吧。

三面應該是總監面,全程被懟,懟到沒朋友,經受了阿里傳說中的壓力面。。太痛苦了。。全程沒有問技術(阿里好像都是這樣,兩面技術,三面不問技術問其他的,四面交叉,五面HR)首先問看你最近都在搞深度學習演算法,有做過深度學習的專案嗎(超輕蔑的,時間是週一的八點面的,感覺面試官有一種我極其耽誤了他的睡眠時間的怒感)然後問你現在專案為什麼選這個模型?參考別人思想,那你的思想在哪裡?比如你現在面對一個別人從來沒處理過的問題,你現在用什麼模型都無法收斂怎麼辦?(我說調研一下都用什麼模型,然後就瘋狂被懟啊,說用啥都發散就問你怎麼辦??當時內心是崩潰的)問你是不是數學比較好,那你說L1L2正則項為什麼加上之後對整個式子沒有影響?(試圖說L1L2原理,被瘋狂懟,說不要聽原理就問你為什麼加上沒有影響, oh no…各種朋友們,遇到這種面試官一定要堅強)然後線上程式設計,找到樹中兩個結點的最近公共父結點(遞迴即可解決),然後他一度懷疑我寫的是最遠公共子結點。然後然後又加了一題,用多執行緒實現定時器,每到一段時間就執行一個任務,並實現多種任務執行。
面試結束,三面一小時。面完整個人是灰暗的。。。第二天意外得到通過驚喜,說還會有交叉面和HR面。三面給我的感覺是,無論面試官怎麼懟,心態一定要放平,保持謙虛謹慎就好了,瘋狂被懟大概是壓力面吧。。(抱住pangpang的自己)

四面交叉面,都說交叉面不掛人的,一開始我還不信,後來信了。交叉面一共15分鐘,大致問了問最近專案怎麼做的,為什麼這麼做。然後對簡歷上的技術點問了幾個地方。比如tensorflow的優缺點,深度學習演算法的優缺點,要結合平時使用。就迅速的掛了電話。

五面HR面,交叉面和HR面是平行的,不分先後(意思是不是交叉面過了才有HR,是兩個面試我都需要面)。HR小姐姐很耐斯,問問題也很有技巧,HR的技巧在於讓你感到你是在和她聊天而不是面試,而她可以在聊天過程中判斷你的各項性格。聊天過程還是很舒適的,沒有第一次HR面試那麼不知所措。。大概是先問對前面哪個面試官印象最深為什麼;城市的選擇為什麼;最印象深刻的專案;與老師的關係;與父母的關係、性格與影響。最後講了之後會有結果,最後要稽核發放offer不能保證有offer(感到涼涼),也講了入職的後續流程(感到有一些些希望),同時也告訴我可以多面幾家,不要就面一兩個就算了(這個讓我感覺有一些些涼)。

面試結束,面試時間半小時。輕鬆愉快。然後進入了焦急的等結果狀態。功夫不負有心人,三天後收到了錄用喜報(意向書),真是一把鼻涕一把淚,開心~ 因為我超希望進入這個部門,因為我現在做的實驗,他們也在做,特別match。我也特別想知道阿里是如何做深度學習工程的。希望可以收到最後的offer!!!

在收到offer之前,我還投了頭條與搜狗,但是九月份投的太晚,至今沒有通知。
後續如有offer狀態更新我會及時更上來,祝大家也有收到稱心如意的offer~

----------------------------9.29更--------------------------------
我拒絕了其他所有的筆試,前幾天收到了微軟說十一之前會發第一批offer,如果沒有收到要等到十一之後再發,然而我至今米有收到。也收到了阿里巴巴的電話,問我什麼時候可以簽訂三方,讓我儘快簽訂。然餓還是沒有正式offer,哇等的好著急。

----------------------------10.23更--------------------------------
拿到網易遊戲平臺開發offer,薪資17k*13
拿到阿里巴巴演算法工程師offer,薪資20k*16
----------------------------11.7更----------------------------------
拿到微軟蘇州軟開工程師offer,薪資23w
(微軟所有offer都是軟開,進入部門再細分,可以自己選擇彈性比較大)
拿到華為演算法工程師offer,薪資20k,按照評級發14或16

綜上可以看出,只要面試通過的,收到意向書之後,offer都是穩的,沒有傳說中公司很不靠譜不發offer的情況,祝大家也收到自己喜歡還有錢途的工作哦,蟹蟹大家的關注,有任何問題都歡迎提出哦~
最後,大家加油呦!!
在這裡插入圖片描述
----------------------------完結 撒花----------------------------