騰訊面試:軟體開發--後臺
加入騰訊2019暑期實習大軍中,浩浩湯湯,雖然最終還是被刷,但至少也領略了鵝廠的風範。鬱悶之至,寫下這篇部落格,聊以自慰,也為後來者提供前車之鑑。。。
提前批
憑藉著群裡大神們發的內推連結,順利搭上了內推的快車,進入提前批狀態。今年3.30號是騰訊的提前批面試階段,過了這一階段,無論你是不是內推,還是面試到了哪個階段,只要你沒有在提前批截止之前拿到offer,就要在提前批結束之後,正式加入招聘大軍中了。也就是,所有人在4月1號之後,就規規矩矩得給我參加筆試-->面試-->等待offer的正常流程啦。呵呵,我雖然在提前批階段內推了,但無奈一直沒有接到電話面試。之後一直反思是不是自己簡歷寫得不好??還是相比其他人,簡歷遜色許多了?反正看了周圍有的同學接到電話面試的通知,心裡無不羨慕呀~~
筆試
沒辦法,只能走正常流程啦。先是筆試環節啦。怎麼準備也不用說了,刷下題目,該會的題就會,不該會的題怎麼也不會的。為了準備筆試,我也是刷了刷題。筆試的時候有一些做過,一些實在是知識面有限也只能隨機啦。不是很清楚鵝廠是怎麼看筆試成績的,好像周圍的人只要參加筆試一般都會發面試通知的。哈,可能是學校原因還是真的實力吧??
一面
筆試通過,鵝廠也發來了面試通知。整個過程只要在微信上關注“騰訊招聘”,就可以實時檢視自己的狀態的。一面時會顯示是“初試”狀態。一面準備也不是很多,之前零零散散的看會演算法書,熟悉下一些面試的演算法題,也上網搜了一下面經。就這樣,第一次線下面試,內心忐忑不安。面試那一天,提前來到面試地點,是一家酒店,不得不說鵝廠選擇在酒店面試招人是不是想“秀肌肉”哈?光看酒店一天住房費用就夠將近一個月生活費了,也是夠豪的了。不確定鵝廠是不是把整個酒店包了下來用於面試還是咋的,反正大半個酒店都用來面試倒是不假。面試的環境確實很好!面試來得早,就一直在等候區等著手機資訊通知面試。等了將近一個多小時吧,終於輪到我了,根據提示坐電梯來到指定房間面試,敲門進去,發現有一哥們正在面試,面試官很客氣得帶我到另一個房間裡等待,同時給了我一個程式設計題,讓我做一下。
- 程式設計題目大意如下:給定一個字串s=“abcd”和字元陣列words={“abc”,“ac”,"adc"},判斷words中屬於s的子串的個數。注意,這裡的子串的含義是指子串中每個字元的相對位置與字串s中的位置一致即可。即“ac”,"abc"是子串,“adc”不是。一開始看到程式設計怕得要死,看了這道題,幸好不難,寫了一通,發現面試官還在面試之前的那個人,索性便把註釋,時間複雜度,空間複雜度都寫了上去。
等了一會兒,終於輪到我了,面試過程涉及的問題主要如下:
- C++:虛擬函式是什麼?new和malloc的區別(這個明明之前看過,但是忘了,後來面試官提示後才知道,new有呼叫到建構函式,具體就百度去吧)?深拷貝和淺拷貝?
- 計算機網路:TCP和UDP的區別?遊戲是用什麼協議,會有什麼問題?(遊戲為什麼不直接用TCP,這個不會)?丟包怎麼解決?
- 作業系統:程序和執行緒的區別?程序通訊的方式?鎖?(鎖這方面瞭解的不多,所以老老實實說不熟悉pass了)
- 資料庫:往資料庫中寫資料時,突然斷電或突然錯誤時怎麼辦,如何解決(也就是資料不一致問題,回答時說到Mysql為例,說有一個日誌,mysql啟動時會檢查日誌,並對執行錯誤的操作重新執行一遍或回滾之類的,還講到資料庫中事務的概念,講到資料庫利用事務的特性解決這一問題,但好像面試官對這些回答不是很滿意)?鎖(也是不熟,pass了)
- 人工智慧:由於簡歷中說到上過人工智慧的課程,面時官讓我說一下實際如果應用這些演算法。(GG,人工智慧沒先做功課,突然沒想起來怎麼用,支吾半天沒說出。)
- 網路程式設計:資料加密的方式(講了SSL,但發現這部分沒做準備,也忘了具體是什麼來著)?伺服器如果處理多個程序的請求,或者如何解決大量請求訪問?客戶端與伺服器通訊的方式?(這部分不是很懂,答的也不好)
- 演算法:大量的單詞,找出頻率最高的前10個?(明明看過,但又忘了。。答的不是很好)如何解決雜湊衝突?面試中自己談了點陣圖,隨便讓我解釋下點陣圖。
- 其他:面試過程中,面試官還打開了我的筆試卷,讓我把第一道程式設計題重新做一遍。(其實就是推匯出一個公式,很簡單的,但塗塗改改推匯出來還是費了點時間。所以筆試還是要認真做下);設想情景,在支付中,如何防止重複支付的問題?(同樣回答了資料庫中事務的特性,利用這一特性保證資料正確寫入,即保證一次支付後資料依舊一致,同時服務端向支付的客戶端回傳類似ACK的應答。但好像不是這種回答??);設想情景,客戶端向伺服器傳送訊息,如何保證客戶端不會重複傳送同一訊息?(回答了類似TCP協議,服務端接收到一條訊息後回傳ACK應答之類的相應?但這回答好像不是很完整?又說通過在客戶端對每條訊息加上序號用於計數,防止同一訊息多次傳送之類的情況??但這回答不知可不可以?)
最後,面試完,詢問有什麼需要提問的,問了面試官幾個問題後便走人啦~~
總結:一面基本上是基礎面,面試官都是根據面試題記錄來提問的(看他時不時看著電腦提問),期間可能會根據你提到一些想法提出別的問題。所以還是要看你會不會引導了哈~~~一面回答一半一半吧,但發現面試官對於那些如何保持資料一致,伺服器與客戶端資料通訊,同步之類問題還是挺感興趣的。。
注:一面都沒讓我自我介紹,但面試官看上去覺得挺和善的哈,雖然面試官過程中不怎麼笑。
二面
一面結束後一直重新整理狀態,發現一直是初試。直到晚上發現變成複試了,在23點快凌晨時才收到二面面試的通知簡訊。興奮之餘,也帶著緊張。終於到了面試那一天,還在現場看著演算法相關的書籍,但也漫不經心。過了半個多小時,終於收到簡訊,根據樓層指示來到了面試房間。走到房間前,只見大門大開著,面試官正在面試一哥們,見到我只是示意在外面等著。等了一會輪到我了,在面試官面前坐下。相比一面的面試官,他顯得更為高挑瘦弱,瘦削的臉帶著一種凌厲的嚴肅感。面試開始。
自我介紹。(不知道為什麼,自我介紹顯得有點心不從力,不知道是不是被面試官的嚴肅震住了哈)
接下來才是噩夢的開始。面試官丟擲一道程式設計題。如下:給定一顆二叉樹的根節點和樹中的任意兩個節點,找出這兩個節點的公共父結點。(GG,應該是腦袋抽筋了,一開始就一直想著通過遞迴來做,磨蹭許久,還是沒能想到較好的處理方法。整個過程面試官也是一直安靜著坐在我對面。唉~~)
知道我無能為力後,面試官也對我放棄了吧。(他也沒有給任何提示)唉,只見他看著簡歷,便要開始提問了。,,(啊,什麼?!!!二面會問簡歷的嗎?簡歷上的內容並沒有這麼準備啊!!)但也是自己才疏學淺吧,對於自己簡歷上的,並沒有引起面試官太大的興趣。(唉,專案經歷少真的是硬傷~~~)問了一些,也只是草草結束。
面試官也試著轉移話題,提到資料庫,問我資料庫有哪些表???(??完全不知道,資料有哪些表)
看來面試官也無能為力了,又問到平常看什麼技術類的書或者瞭解過什麼沒?因為最近區塊鏈炒的很火,所以我談到了區塊鏈。但面試官問起區塊鏈加密方式。咳咳,沒了解那麼深啊。又問自己對區塊鏈的理解。扯了一通。他又問道比特幣現在多少錢?咳咳,母雞。。
呵呵,你有什麼要問的嗎?唉,我問了幾個問題便灰溜溜的走人了。
總結:二面會問經歷多點。一直以為不怎麼會問簡歷上的內容,所以沒怎麼準備。後來和同學談起,說要把面試官把簡歷上引導。唉~~~都沒怎麼準備,就不敢引了。專案經歷真的很重要,沒有的話,根本無話可聊的啊!!程式的自我修養,沒事多看點技術類的書也挺重要的啊!!現在想想,二面的面試官也挺好的,整個過程已經在盡最大努力引導我了,給我很多機會了。
末
雖然二面結束後就不抱太大希望了,但微信上的狀態一直是複試。真的是“希望給的不充分,絕望給的不徹底”。提心吊膽得等了二天還是三天,看到群裡一大群說三面了,真的只有羨慕的份。終於,刷到狀態顯示為“沒有適合你的崗位”。唉,成敗與否也就此塵埃落定了。只能來年再戰了。