1. 程式人生 > >騰訊實習生面經

騰訊實習生面經

      首先介紹一下,本人是廈大的研究生,計算機視覺方向,是一個標準的中等生,實驗室重演算法輕開發,找實習的過程中所用到的知識或者說是技能60%都是通過平時跟導師交流溝通學習來的(甚至很多對深度學習,最新前沿技術的理解面試過程中都是老師原話,高度自然不一樣),最應該感謝的是我的導師和其他實驗室老師們。 

      有找實習這個想法是從年後開學開始的,雖然之前工作過一年(比亞迪軟體工程師),但是以後想去的還是網際網路公司,在這個 “網際網路+” 的浪潮下,我們總應該去在自己興趣範圍的前提下做點什麼,之前的工作環境和工作內容跟網際網路公司差距還是很大的,所以覺得自己應該找一個實習,去接觸一下在公司裡面的演算法工程師和學校實驗室裡面的區別。接下來按照準備實習和麵試兩部分來總結一下:

    準備實習

    準備實習是從年後開始的,一方面是手上有專案比較著急,壓力比較大,寒假還在家做,沒有時間準備思考這些東西,一方面是覺得還早,不想把戰線拖得太長,那樣也太累。(得瑟一下,可能潛意識裡覺得自己也不需要那麼久),分析了一下,因為方向很明確,就是機器學習演算法工程師,主要需要準備兩個方面,一個基礎演算法,一個專案論文拔高。(現實證明準備遠遠不夠,後面再說)基礎演算法首先是機器學習十大經典演算法,各種看,各種推導,因為之前師兄面試華為的時候推了兩個小時的公式,所以。。。把這個作為一個重點,這個過程還是挺痛苦的,推公式的過程中會涉及到矩陣求導之類的矩陣論的東西,之前沒學過,還是蠻痛苦的感覺。在面試過程中被問到挺多機器學習演算法,這方面準備還是比較充分,所以表現還比較ok。另外一個方面是專案及論文拔高,在準備面試前,一定要能夠用最簡潔的語言,通俗易懂的方式把你的專案或者論文講給一個完全不懂的人聽,並且讓他感覺你做的這個東西是有價值的,確實是解決一個比較突出的問題的。準備的時候,我是找周圍的同學,講給他聽,很容易就聽懂就OK,不懂的話你就需要反覆的斟酌你的表述方式。

      面試

      騰訊的校招,先是線上筆試,主要是數學方面的東西,還有一些機器學習的知識點。大題是開放性的題,順利通過,4.10晚上八點鐘收到通知,4.11號早晨十點半在廣州喜來登酒店面試,只能立刻出發坐最晚的飛機從廈門飛廣州,這樣到廣州都要半夜兩點了估計,然後聯絡HR,問可不可以安排到下午,HR姐姐很好,說盡量安排,讓我儘快過去,我買了第二天最早的高鐵去深圳,然後轉廣州。由於下大雨各種晚點,沒票。真有種人在囧途的感覺,很幸運的是我們迷迷糊糊的跟著一群人上了一趟最快去廣州的高鐵(我們沒票,跟車站工作人員類似哀求的請讓我們上去補票,說是去參加面試什麼的,很遠過來的。。。。第一次感覺到了車站工作人員的人情味,竟然讓我們上去了)到了面試地點由於早就到我了,所以直接上去面試,面的情況比較一般,但是一個開放性的題目覺得自己回答的還是不錯,面試官也比較認可:深度學習在網際網路中的應用。晚上到賓館面試狀態就變成了複試中,第二天中午收到簡訊通知參加二面,二面面試官是MIG的,覺得溝通的還是很順暢,是感覺最好的一次面試,面試官也很nice的跟我說讓我注意關注後續通知,然後我就等啊等,等了兩天他才全都面完,結果我還是複試中,去現場問,說沒有被pass,應該是待定但是當時肯定是不會有HR面了,讓我會學校等通知。在廣州待了四天,回來之後幾天發現狀態變成了淘汰。

    找朋友內推到騰訊SNG的演算法相關小組,當天(週四)接到電話面試,總共是兩部分,首先是五個計算機基礎的問題,就不列舉了,在下面統一列出來。然後就是細緻講了我的論文,很細,很細。最後面試官的意見是:科研做的不錯,去跟組長商量一下讓我等訊息。週五沒訊息,週末過後,週一早晨九點半電話二面,詳細問了專案,然後是問的機器學習的演算法,包括SVM和邏輯迴歸,答得還不錯,面試官直接說:我對你很滿意,很快會有三面。中午在去實驗室的路上接到三面的電話,這次就沒有那麼友好了,我不是很擅長開發,估計一面二面全都是問的演算法,他也沒必要繼續考察了,全都是計算機基礎和開發的東西,計算機基礎倒是都答上來了,但是每一個問題答案他都不滿意,總是在問複雜度,然後怎麼能降低複雜度,還有沒有更好的方法。。。。直到我說想不出來了為止,才換下一個題目。最後還問了一些開發的問題,答得也不好,面試官結論:開發偏薄弱。並且說由於名額太少,需要多面幾面,就算通過還會有接下來的面試。。。直接淚奔!覺得肯定沒戲了,心情很差,玩著手機看一些笑話,突然收到簡訊說是通過了,預約總經理的視訊面試。很難相信自己的表現竟然通過了(應該是前兩面給的評價比較高)。然後就是準備總經理面,以為不會是技術面了。。。。結果還是技術面,各種深度學習模型,深度學習見解,神經網路和深度學習的淵源之類的,高度還是比較高的感覺,講了很多很多(很多話直接從老師那拿來,覺得還是有高度的)最後問了一下對我的建議:興趣不錯,做的也不錯,從他個人角度來說希望我能去實習,但是不排除一些他不太清楚的名額或者匹配度的問題,但就算進不去實習,也希望我堅持做下去,他認為這是一個很好的方向,會有很好的發展。然後就開始了漫長的等待。。。。

    等騰訊的過程中,參加了美圖的現場筆試和麵試,技術面之後直接安排的HR面,兩個小時搞定,還是比較順利,個人覺得美圖的面試還是比較簡單,也許是我太對口(視覺演算法工程師)所以有這種感覺,要說一句的是,美圖的技術面試官,HR甚至是保安大姐都很nice,整個面試感覺都很舒服。

      週四跟老師去南京出差,美圖說是週五之前如果通過的話會有訊息,騰訊總經理面試也過去好幾天了,兩邊都沒有訊息,很煎熬,下飛機之後在出租車上接到了美圖面試官的電話,說通過了面試,實習時間可以自己隨意安排,只要是兩個月就好了。心裡算是踏實了,即使等不到騰訊也不會覺得多麼失望,畢竟也很喜歡美圖。週五整整一天緊張的答辯,下午答辯完回賓館的路上,接到朋友電話說是騰訊通過了,讓我安心等訊息。連續兩天接到最想去的兩家公司的offer,覺得兩個月來的抽時間來準備都沒有白費。接下來是騰訊的HR面試(應該只是流程走完),面試官還是比較犀利,完全沒有當時美圖的那種感覺,HR面試結束面試官跟我說五一過後會有同事聯絡我關於正式offer的事情,至此所有面試結束。

      計算機基礎(我能記得的一部分):

      講一下,動態規劃,貪心演算法,分治演算法(百度)。

      如何將非平衡二叉樹轉化成平衡二叉樹(阿里)。

      幾種查詢方法,分別說出他們的演算法複雜度及適用情況(阿里)。

      快速排序與堆排序的各自優缺點及複雜度,快速排序什麼情況下最糟及複雜度(騰訊)。

      OSI模型,TCP執行在哪一層(阿里)。

      三次握手(騰訊百度阿里)。

      四次揮手(百度)。

      三次握手各種情況下系統如何響應,問的很細(騰訊)。

      什麼是多執行緒,程序(騰訊 百度)。

      指標與引用的區別(百度 美圖)。

      2n+1個數中找到只出現一次的數(騰訊)。

      C開發中如何呼叫到動態庫(騰訊)。

      static如何用?(騰訊)。

      單向連結串列的中點,逆序,寫程式碼(百度)。

      如何判斷兩個連結串列有沒有交集(騰訊)。

      一千萬個數中找到最大的1000個,如果是一億個數呢(騰訊)。

      海量資料中找出頻率出現最高的100個詞條(百度)。

      會不會Java(阿里)。

      會不會資料庫(騰訊)。

      會不會linux(騰訊)。

      會不會socket網路程式設計(百度)。

      程式碼量多少(騰訊)。

       還有一些我完全不會的也就沒什麼印象了。。。大致這麼多能想到的。

      簡單羅列一下我還記得的機器學習演算法問題:

      邏輯迴歸都有哪些類,每一類什麼情況,簡要介紹?

      邏輯迴歸的典型應用是什麼?

      邏輯迴歸是一個典型的迴歸模型嗎?

      經典的邏輯迴歸還存在哪些問題?

      簡要介紹一下對KNN的理解?

      KNN中K怎麼取,跟什麼有關?(給我舉了一些具體的情況讓我來選擇K值)

      KNN演算法中主要的關注點是什麼?

      KNN中常用的距離度量是什麼,各種情況下距離度量的選擇?(舉了一些具體的例子,問我怎麼選距離度量方式)

      說出不少於5種距離度量方式

      講一下在你們專案中boosting演算法怎麼用的?

      詳細講一下DBN的模型(專案中有用到)

      詳細講一下pre-CNN的模型,特點及論文貢獻(論文用到的模型)

      基本就這些吧,還有一些記不太清楚了,整體感覺是十分重視最基本的東西,並且問的也比較細,有些面試官確實會讓在解釋不明白的時候推公式。

      總結一下吧:最重要的是計算機基礎,比如:資料結構,計算機網路,作業系統。之後是要有硬功夫,演算法的話要對常用演算法很熟悉甚至推導。然後一定要把自己的專案進行拔高並且講清楚,最後是實事求是,不會要表現出來謙虛的態度。希望大家都能拿到自己中意的offer。