1. 程式人生 > >2019騰訊校園招聘開發崗面經(一面+二面+HR面),已拿offer

2019騰訊校園招聘開發崗面經(一面+二面+HR面),已拿offer

2019騰訊校園招聘開發崗面經(一面+二面+HR面)

背景:

華為實習結束前兩天,突然接到騰訊的郵件,邀請我現場面試,但面試前需要我做道題,這道題的回答內容將作為一面時的溝通話題(當時整個人是懵的,咋還有這操作)。暑期實習投的騰訊是安卓崗,華為實習期間是軟體開發崗,最後拿到騰訊offer的崗位是專項技術測試開發(我以為和軟體測試崗一樣,看到題目以及最後和麵試官的溝通才發現這根本就是開發,為啥呢?慢慢往下看)

初面前的題目

一共有四道題,任選其一進行回答。第一題是有關語音識別的,不會;第二題是有關雲端計算服務的,不會;第四題是有關安卓的,本人做過一些安卓專案,對安卓比較熟悉,但早就不想走這個方向了,因此也放棄;第三題是有關後臺開發和架構的,這是我喜歡的,於是選擇了這道題(每個題目都是實際工程中需要解決的問題,給答題者非常大的發揮空間,做完題非常期待騰訊大佬當面指點我一下)。

題目及解答思路(題目太長,只寫我選擇的題目):

一、題目:現在後臺開發可選擇語言很多,從歷史悠久的PHP到新興的GO;可選擇框架更多,Python下常用的就有Django、Tornado等等。 至於部署方案,從apache、nginx時代到容器時代,更是發生了天翻地覆的變化。 另外,一個後臺系統離不開資料庫儲存。從上世紀70年代起,關係型資料庫一直獨佔鰲頭,但NoSQL的出現結束了前者一枝獨秀的局面。比如,MongoDB、Redis、ElasticSearch都是近幾年DB引擎使用者量排名TOP 10的常客,在不同應用場景下發揮著獨特的價值。 那麼,你所開發的後臺系統,選擇該種框架、部署方案和資料庫的根據是什麼呢? 如果要求這個系統實現1000次/秒併發訪問+100G/天資料庫儲存,你會考慮何種優化方案,或者何種技術選擇呢?

二:我的思路:通過審題,首先這是一個高併發、高資料量的系統,這兩個特點是選擇語言、資料庫的重要依據。我從資料庫選擇(選了MongoDB)、併發模型選擇(選了基於go的GSP模型)、通訊框架選擇(選了grpc)和部署(選擇了Nginx)四個方面進行了分析和解答;其次,關於優化方案,我認為提高效率,能複用的儘量多複用就是優化,我的方案是使用go的協程池進行優化。(看完所有題目以及提交完我的答案後,對這個崗位和麵試充滿了好奇和期待,第二天就收到了面試地點和時間的通知,開心又緊張)

一面

下午4.30到了面試九點,但前面還有好多人。5.15進去了。
一面面試官很和藹,喝了點水,邊喝邊問了問我的家鄉,明顯感覺不緊張了。他說我們開始吧。

面試官:介紹下你自己

我:請問有時間限制麼?

面試官:我面了一下午,你是最後一個了,你儘管說,我們就像聊天一樣。
我:省略一堆。。。(一直在講自己做過的專案)

面試官:你在這個專案中遇到的印象最深刻的問題是什麼?
我:專案最後有一個數據去燥處理的過程,我們把資料進行了兩次取平均值。

面試官:為什麼要這麼做?

我:當時為了效果好,臨時想了這個辦法,取一次平均效果不好就繼續取了一次。(說了一下具體怎麼做的)

面試官:這麼做好像不太合理啊。(看到面試官有點皺眉,趕緊繼續說)

我:其實還有別的演算法,還沒來得及實現。

面試官:什麼演算法?

我:設兩個闕值,設定上下限(詳細說了下該怎麼做)

面試官:可以這麼做,但還有什麼演算法,你再想想

我:用KNN

面試官:機器學習裡的也可以用,但太麻煩了,你再想想,還有什麼演算法(這時候我整個人緊張到爆炸)

我:那我大致說一個,但不知道靠譜不(面試官安慰我說別緊張,慢慢說)。 先清洗資料為亂序,把資料分成不同的部分,對於每部分來說,找到資料的峰值,對這個峰值的兩邊其他資料進行排序,離這個峰值距離很遠的地方就去掉。(在紙上大概畫了畫)

面試官:你所表達的這個方法,其實就是我一開始就想到的,找峰值就是為了呈現資料滿足正態分佈。我一直在等你說這個答案。
面試官:我看你簡歷裡挺多東西的,說一個你想和我討論的東西

我:我研究生方向是區塊鏈,您感興趣麼?

面試官:區塊鏈和深度學習是我比較持中立態度的,這樣吧,我也瞭解過但不是很懂,你想辦法讓我明白這到底是什麼。

我:那我拿一個區塊鏈平臺——以太坊的架構給您說(在紙上bla~bla筆劃了一堆)

面試官:那我差不多懂了,具體細節我得找些書來看學習啦。那你總結下區塊鏈的特點及核心

我:。。。(總結了幾個點就不具體說了)

面試官:你都擅長什麼語言?說一下其特點

我:以前搞安卓用的java,比較熟悉。但我對後臺架構感興趣,而go語言天生支援併發,恰好區塊鏈底層需要用go語言,最近就一直在學習go語言。go語言您瞭解麼?

面試官:我們的雲平臺百分之40以上都是用go寫的(撞槍口上了,我覺得他此時內心只想對我說句“呵呵”,哈哈哈),那你解釋下他怎麼天生支援併發的。

我:主要體現在go中的協程以及底層的排程原理。。。(和麵試官討論了好久,面試官還給我講了他們看中go其實主要原因是他對protobuf支援的比其他語言好,中間在一個地方提到了grpc的框架,於是繼續往下問了)

面試官:為什麼grpc效率高?

我:第一次聽說grpc是參加hackathon比賽時候接觸的,區塊鏈底層通訊也有用到這個框架,他基於tcp/ip層。。。(說了一堆)

面試官:講一下你在hackathon比賽時候做的專案。

我:。。。(說了一堆)

面試官:你們用到了GAN,你對GAN有了解麼?

我:不會強化學習相關知識

面試官:好吧,你要是知道我們又有的聊了。那你手寫個排序演算法,冒泡寫的太多,想個別的寫。

我:。。。(寫了快排,我的字跡一塌糊塗,表現特別不好,寫完後面試官說其實主要想看看你程式碼風格)

面試官:作業系統你瞭解多少?用一個你熟悉的領域來解釋作業系統裡的一個知識點。

我:MongoDB裡用到了mmap ,記憶體對映檔案(在紙上畫了畫,這時候給自己挖了個坑)

面試官:你提到MongoDB,你說下為什麼MongoDB查詢快?

我:因為mmap?

面試官:mmap很多資料庫都用到,不是它獨有的地方。

我:那我不會了,這方面不熟悉。

面試官:看你有安卓開發經驗,再問你最後一個問題吧。使用相簿時涉及到圖片的處理,如果UI給你把介面做好了,現在你需要設計傳輸圖片的API,你會關注哪些點?

我:。。。(說了幾個點,這個問題和初面前出的關於安卓那道題差不多,實習回來之前剛好和學弟討論過,還算有思路)

面試官:你有什麼要問我麼?

我:這個崗位是測試崗麼?我想做開發,但和您聊下來感覺不像是測試崗。我理解的測試就是黑盒白盒測試。

面試官:這個崗我都是從開發、資料探勘方向招人,其實就是開發,你說的測試是自動化測試。我們的業務主要是對雲產品進行效能的優化和提供解決方案,剛和你聊的方向我們都有涉及。

我:感覺您什麼都懂,移動開發到後臺,還有資料處理。好強

面試官:現在不都講究全棧麼,哈哈哈,我做過很多方向的開發。

面試結束,一共兩個多小時,感覺學到很多,酣暢淋漓。面試官太強了,總結能力表達能力各方面都讓人佩服。一直在引導我,特別感謝他。

二面(壓力面)

一面結束後當天晚上就收到了二面邀請,這次約的時間是下午兩點半,我到的時候前面有五六個人在等。一面結束的那天晚上和第二天早上一直在想一面回答的不好的地方,尤其作業系統很薄弱,臨時惡補了幾個小時,怕二面被問到。

一進來面試官就拿了張白紙和筆
面試官:我給你出兩道題,40分鐘內完成,開始計時
我此刻非常懵,也太乾脆了,上來就出題,我都沒說話的時間,手都在出汗。

題目一:
在這裡插入圖片描述
上圖中的9個五角星都是1-9中的數字,但不能重複,寫出最後的答案(不用寫程式碼)

我只能想到暴力求解,其實列舉幾次就能出結果的,我繞了一圈才找到,如果大家有好的解法告訴我噢。

題目二:
從左到右一共有100張牌,牌面是不重複的值,且能看到每個牌的值是多少。A和B玩這樣的遊戲:每人一次拿一張牌,一個人拿完另一個人再拿,直到所有牌拿完。
條件是:1、第一次拿牌,A必須先拿,A拿完B才能拿;2、每次只能從整套牌的兩頭拿,不得從中間拿。
問:有沒有一種策略,使得最終A拿到的牌面總值總是大於 B?如果有,該怎麼拿。

我先想到的還是暴力解,列舉每一種牌面可能出現的排序狀態。面試官很快阻止我說你不可能想到每一種結果,給你個提示,用數學歸納法。最後在面試官的引導下說出了答案。全程壓力賊大,難怪都把二面稱作壓力面。後面還聊了下我學校做的專案和華為實習期的專案,以及我的興趣和技能,面試官覺得我挺符合他們部門的標準。還了解到二面面試官是一面面試官的boss,雖然比較嚴厲,但還是超耐心,很nice,出門的時候長舒一口氣,感覺應該穩了。面試時長差不多1個半小時。

HR面

不出所料,當天晚上收到了終面邀請,這次是第一場,下午兩點開始。去的時候面試官還沒到,也沒面試的人,心裡有點慌。腦子一熱就去問了助理小姐姐:請問今天是HR面麼?怎麼沒人來面試呀。小姐姐說:同學,走到終面的同學可不多噢。當時也說不出什麼感覺,一個渣碩在戰場上幸運的活到了最後?哈哈,皮一下。

來之前做了一些攻略,發現HR面刷人也是常事,內心還是很緊張的。面試官是一個很成熟的女士,感覺是那種御姐範的職場女強人。具體的不說了,光上問題吧。

1、簡單介紹下自己。
2、你是哪裡人?
3、你父母是做什麼的?
4、你父母對你的事業是持怎麼樣的態度?
5、本科是哪個學校?
6、考研成績是多少?排名多少?
7、你女朋友是哪個學校的?工作了還是在讀研?
8、你和你女朋友誰學習好?
9、高中時期談戀愛,你是怎麼平衡學習和戀愛的?(我太實誠了,現在想想真不該提早戀的事,嗚嗚嗚)
10、為什麼喜歡深圳?以前都去過哪些城市?
11、你在華為實習做的專案是什麼?
12、你在做交接的時候有沒有提前預知完不成的風險?給上級提前說好了麼?
13、華為的導師最後給你什麼評價?
14、你說你抗壓,舉個例子說明一下。
15、當你碰到自己不太懂的任務,你如何處理?

全程面試官面帶微笑,一雙大眼睛目不轉睛的看著我。腦子保持八核運轉,好幾次險些掉進坑裡。總之這一面保持一顆坦誠的心就夠了,坦誠對人對事,是對待這個世界最好的方式,世界也會溫柔對你吧。

總結

總體感覺自己很幸運與這次的技術面試官們非常聊的來,雖然他們表面在無限的探索我的知識邊界,實際一步步在引導我發散思維,也讓我在總結自己的不足。三天時間裡感覺自己成長了好多,作為一個渣碩能得到夢想的公司大佬的認可和指點,對我是莫大的鼓勵。很幸運,很開心。

10月16號面試,18號面試結束,30號收到offer call,31號收到郵件offer。

路還很長,沉下來,慢慢走。。。