騰訊遠(yuǎn)程電話面試經(jīng)歷分享

本人明年就要畢業(yè)了,3月份正好是各大互聯(lián)網(wǎng)廠商開始春招和暑期實(shí)習(xí)招聘的時(shí)候,在完成了目前所在實(shí)習(xí)公司的一個(gè)任務(wù)后,我終于騰出手來無腦投一波實(shí)習(xí)。其實(shí)作為轉(zhuǎn)行的,本來對(duì)這些大廠抱的希望也不是太大,但是總是要試一試的,即使是失敗經(jīng)驗(yàn)也是有用的經(jīng)驗(yàn)。被騰訊面試官碾壓一遍也能更好地找到自己的不足。
我本來是在某個(gè)周五早上的中特課給騰訊、阿里、華為、字節(jié)跳動(dòng)、商湯科技等公司都無腦投了一波簡(jiǎn)歷。因?yàn)橛幸粋€(gè)同學(xué)告訴我,他本來連C++都不會(huì),然后無腦海投了一波互聯(lián)網(wǎng)實(shí)習(xí),結(jié)果就有一家不錯(cuò)的互聯(lián)網(wǎng)企業(yè)給了他offer。因此我也打算采取類似的策略,何況我還是會(huì)C++的。。當(dāng)天傍晚我就收到了一個(gè)深圳的電話,一開始還以為是什么推銷信用卡的騷擾電話,好在最近脾氣比較好,就蠻接起來看看,結(jié)果告訴我是騰訊的打算來電話面試。還在吃飯的我只好說要不過一小時(shí)面試吧,面試官估計(jì)周五晚上也趕著早點(diǎn)下班,就跟我說要不周一傍晚六七點(diǎn)時(shí)候給我打電話,我也同意了。
接下來我就花了三天時(shí)間準(zhǔn)備這個(gè)面試,周一的實(shí)習(xí)也翹了,詳細(xì)準(zhǔn)備了一下自我介紹、項(xiàng)目經(jīng)歷(包括其中遇到的難點(diǎn)),還有去搜了一下C++、數(shù)據(jù)結(jié)構(gòu)和算法、TCP/IP還有操作系統(tǒng)等方面可能的面試題,事實(shí)證明這些準(zhǔn)備還是挺有意義的,我基本蒙中了八成的面試題(雖然問的難度比我準(zhǔn)備的要難多了。。)注明一下,我投的這個(gè)崗位是移動(dòng)互聯(lián)網(wǎng)開發(fā),就是Android、IOS做app的。騰訊的校園招聘網(wǎng)上會(huì)標(biāo)明出每個(gè)崗位的報(bào)錄比,在暑期實(shí)習(xí)里報(bào)錄比最低的是6比1的安全技術(shù)崗位,最高的是37比1的數(shù)據(jù)分析崗,常見的一些比例都是10比1、12比1這樣,人人轉(zhuǎn)CS的時(shí)代是真的可怕。。我也不敢投圖像處理、語音處理這種熱門崗位,就投了報(bào)錄比7比1的移動(dòng)互聯(lián)網(wǎng)開發(fā),它的崗位要求是這樣的:
看起來要求稍微少一點(diǎn),不是那種一下上來十幾條要求還讓你有一年以上深度學(xué)習(xí)開發(fā)經(jīng)驗(yàn)或者在什么頂會(huì)上發(fā)表論文的那種崗位。。于是我就投了。接下來說說周一傍晚的面試過程,之前和我約的是周一傍晚6到7點(diǎn)面試,我在房間里等到6點(diǎn)半左右,差點(diǎn)以為對(duì)方忘記了,結(jié)果一個(gè)電話就撥了過來,然后面試開始(因?yàn)槊嬖囘^程太長(zhǎng),有一些意義不大的問答就不寫了):
對(duì)方:給我講講你最近的項(xiàng)目經(jīng)歷吧。
我:一通說了下最近在公司實(shí)習(xí)的那個(gè)東西。
對(duì)方:你這個(gè)寫的是個(gè)算法、還是個(gè)可執(zhí)行文件、還是什么。
我:我寫的就是幾個(gè)函數(shù),處理一些什么什么問題。
對(duì)方:那就是寫了一個(gè)函數(shù)?
我:應(yīng)該說是幾個(gè)函數(shù),有一個(gè)主函數(shù)調(diào)用幾個(gè)子函數(shù),這段程序是放在整個(gè)軟件框架里給其他程序調(diào)用的。
對(duì)方:那我知道了,你這個(gè)就是一組函數(shù)。你函數(shù)的輸入是什么?
我:是一個(gè)矩陣。
對(duì)方:一個(gè)矩陣?
我:我的函數(shù)里用了很多OpenCV的函數(shù),所以輸入的是一個(gè)OpenCV的矩陣。讀進(jìn)來的是一張圖片,用OpenCV的讀取函數(shù)成為一個(gè)矩陣。
........
中間又問了很多項(xiàng)目細(xì)節(jié),總之就是問你函數(shù)的輸入輸出是什么,做了什么工作,如何被其他函數(shù)調(diào)用。
........
對(duì)方:你這個(gè)項(xiàng)目中遇到的難點(diǎn)是什么?
我:又blabla
對(duì)方:我理解你這里面嘗試了很多方法來完成任務(wù),那么你有嘗試什么辦法去優(yōu)化這個(gè)算法。
我:有啊,比如圖片的上半部分基本是天空,不管從我們?nèi)说囊暯莵砜催€是裝在車上的相機(jī)的視角來看,上半部分都不可能有車道線存在,在處理的時(shí)候是可以直接忽視的。
對(duì)方:這個(gè)最多只能提高你的運(yùn)行效率吧,可以提高準(zhǔn)確率嗎?
我:又說了很多相關(guān)的處理細(xì)節(jié)。
對(duì)方:那你對(duì)霍夫變換這個(gè)函數(shù)的改寫,主要目的是什么?
我:又blabla,主要還是說原來霍夫變換的缺點(diǎn),改進(jìn)之后提高的效率。
對(duì)方:這個(gè)真的可以提高準(zhǔn)確率嗎?
我:是的,經(jīng)過實(shí)驗(yàn),準(zhǔn)確率有很大的提升。
對(duì)方:那你這個(gè)程序的時(shí)間復(fù)雜度是多少?
我:(我曹尷尬了。。從來沒想過這個(gè)問題)隨便編了一個(gè)一張圖片多少毫秒吧。。。(中間又經(jīng)歷了一些尷尬的問答)
對(duì)方:那你在讀取圖片的時(shí)候,有新建一個(gè)同樣的矩陣之類的去保存它嗎?
我:又blabla(其實(shí)這里也很尷尬。。感覺在公司里沒怎么考慮過這幾個(gè)問題,時(shí)間空間效率什么的感覺差不多就好,也沒去細(xì)究)
對(duì)方:那你有想過什么辦法去優(yōu)化這個(gè)存儲(chǔ)效率嗎?
我:比如可以減小圖片的分辨率,還有就是每個(gè)像素存儲(chǔ)的位數(shù)可以小一點(diǎn)。
對(duì)方:我覺得你這個(gè)程序用C寫也是可以的嘛。
我:(。。。又尷尬了,好像確實(shí)可以用C寫)C++有一些C里面沒有的特性,比如說引用,還有類,這些都是C里面沒有的,還有OpenCV只有1.0的時(shí)候是支持C的,在2.0之后就拋棄C了。我的這些函數(shù)還有一些參數(shù)都是寫在一個(gè)類里的。
(其實(shí)我回頭想想還有一些可以說的:比如C雖然可以函數(shù)形參可以用指針來避免大規(guī)模矩陣的復(fù)制,但是指針容易引起內(nèi)存泄漏,盡量用引用代替比較好。C++可以使用的第三方庫(kù)比較多,比如線性代數(shù)庫(kù)Eigen,如果用C去自己開發(fā),會(huì)非常影響開發(fā)效率,而且出現(xiàn)異常的概率更高,并且Eigen庫(kù)里對(duì)矩陣的很多計(jì)算進(jìn)行了優(yōu)化,運(yùn)行效率比自己寫可能要好很多。還有可以講的就是C++有STL庫(kù),它們不僅使用方便而且運(yùn)行效率高,可以極大方便開發(fā)??傊绻嬖嘋++還是可以好好去研究一下C和C++的區(qū)別的)
對(duì)方:你了解你們這整個(gè)程序框架嗎?
我:我知道其他部分的功能是什么,但不清楚具體程序是怎么寫的
對(duì)方:那你可以說說引用和指針的區(qū)別嗎?
我:(還好這個(gè)問題準(zhǔn)備過,就按之前準(zhǔn)備的回答了下)
對(duì)方:那你這個(gè)函數(shù)里,什么時(shí)候用指針,什么時(shí)候用引用。
我:能用引用的地方基本都用引用了吧,很少用指針(好像是因?yàn)橹羔樀牡胤蕉急坏讓幽切┖瘮?shù)庫(kù)封裝起來了我也看不到。。臨時(shí)想也想不出來,這個(gè)問題也可以去好好想想)
對(duì)方:怎么可能只用引用不用指針。你剛才說到類,那你知道虛函數(shù)是什么嗎?
我:(還好這個(gè)我也準(zhǔn)備過)
對(duì)方:那虛函數(shù)的作用是什么?
我:(繼續(xù)按準(zhǔn)備的說)
對(duì)方:那如果沒有虛函數(shù),會(huì)有什么影響?
我:無法實(shí)現(xiàn)多態(tài),基類的指針或者引用即使指向派生類,調(diào)用這個(gè)函數(shù)的時(shí)候也只會(huì)調(diào)用基類的。
對(duì)方:那你知道虛函數(shù)是怎么實(shí)現(xiàn)的么?
我:(md問這么深,雖然看過但是覺得太深入了根本沒細(xì)看啊。。)虛函數(shù)表。
對(duì)方:那這個(gè)虛函數(shù)表是怎么實(shí)現(xiàn)的
我:(這里真的不知道,隨便編了一下,估計(jì)是答錯(cuò)了)
對(duì)方:你開發(fā)C++,是在什么環(huán)境下。
我:是在linux下面用emacs開發(fā)的。
對(duì)方:那你知道linux下的多線程是怎么實(shí)現(xiàn)的么
我:(。。。這個(gè)在我的準(zhǔn)備體系里完全沒有啊,我以為最多問問linux常用命令是什么)只好說我平常不怎么用多線程,這個(gè)真不會(huì)。。
對(duì)方:那你用過STL庫(kù)么?
我:STL庫(kù)?(這里主要是發(fā)音問題,我聽成STI了,不過幸好反應(yīng)還可以),你是說標(biāo)準(zhǔn)模板庫(kù)啊
對(duì)方:對(duì)
我:用過
對(duì)方:那你最經(jīng)常使用的是哪幾個(gè)容器呢?
我:比如vector,list,set,map這幾個(gè)是最經(jīng)常用的。
對(duì)方:那你為什么要用map呢?
我:因?yàn)榭梢詫?shí)現(xiàn)鍵值對(duì)的查找,而且它的底層實(shí)現(xiàn)是紅黑樹,查找刪除訪問的時(shí)間復(fù)雜度都是logN。還說了一下map和unordered_map的比較
對(duì)方:鍵值對(duì)的查找?那我用list里面存pair也可以做到啊
我:list插入刪除快,但是查找很慢啊,是線性時(shí)間復(fù)雜度。
對(duì)方:那你說說紅黑樹的優(yōu)點(diǎn)吧
我:(大概說了一下)
對(duì)方:那它有什么缺點(diǎn)呢?
我:就是插入刪除相對(duì)而言比較慢
對(duì)方:紅黑樹怎么會(huì)比鏈表慢?
我:紅黑樹是查找速度比較快,但是插入刪除的時(shí)候要繼續(xù)保持紅黑樹的結(jié)構(gòu),所以需要調(diào)整里面的節(jié)點(diǎn)。鏈表插入刪除的時(shí)候只要調(diào)整前后兩個(gè)節(jié)點(diǎn)就行了。(感覺這里答的也不好,真記不太清了,數(shù)據(jù)結(jié)構(gòu)最沒認(rèn)真看的就是紅黑樹,而且很久沒看了。。)
對(duì)方:那你可以跟我說說紅黑樹插入刪除時(shí)候的過程嗎。
我:這個(gè)我不太記得了,我可以大概講講,不知道對(duì)不對(duì)。然后blabla
(中間好像問了一些技術(shù)問題,我有點(diǎn)不記得了)
對(duì)方:那你再講講hash表是怎么實(shí)現(xiàn)的吧
我:(這個(gè)其實(shí)我是知道的,不過當(dāng)時(shí)有點(diǎn)緊張,有點(diǎn)語無倫次,不過基本回答上來了)
對(duì)方:最后考你個(gè)編程題吧,圖像上下翻轉(zhuǎn)實(shí)現(xiàn)。
我:這個(gè)圖像是三通道還是單通道的
對(duì)方:你自己講
我:(大概說了一下)
對(duì)方:你先說這個(gè)函數(shù)的輸入是什么
我:就要翻轉(zhuǎn)的矩陣的數(shù)組的指針,然后數(shù)組的行長(zhǎng)度和列長(zhǎng)度。
對(duì)方:就只要這幾個(gè)么?
我:(暫時(shí)沒想到有其他的)對(duì)。
對(duì)方:你這個(gè)完全不考慮用戶怎么調(diào)用啊,也不考慮異常。
我:用戶調(diào)用的話,那我剛才那個(gè)可以修改一下,輸入增加一個(gè)輸出數(shù)組的指針,直接把對(duì)應(yīng)位置的值賦值到這里面。如果出現(xiàn)異常,在退出前清除這個(gè)輸出數(shù)組。
對(duì)方:就不檢查一下輸入?
我:要檢查一下輸入的行和列是不是大于0,但是每個(gè)像素的值應(yīng)該不需要檢查,那是讀取圖像應(yīng)該負(fù)責(zé)的事情,翻轉(zhuǎn)的時(shí)候只要翻轉(zhuǎn)就行了。
(這個(gè)題目回去好好想想。。感覺對(duì)方很在意用戶調(diào)用的體驗(yàn)還有異常處理)
對(duì)方:我的問題基本問完了,最后你有什么問題。
我:第一個(gè)問題是這個(gè)面試如果掛了,后面還有調(diào)劑的機(jī)會(huì)么
對(duì)方:這個(gè)簡(jiǎn)歷是開放的,每個(gè)事業(yè)群都看得到,他們?nèi)绻信d趣就會(huì)對(duì)你發(fā)起面試。
我:假設(shè)這次面試過了,后面還有幾輪面試,有筆試嗎
對(duì)方:一共有三四輪面試,筆試要看面試官的興趣。
我:那我想問一下您是做什么的
對(duì)方:我是做移動(dòng)社交app開發(fā)的
我:那應(yīng)該也有ios和Android之分吧
對(duì)方:對(duì),我是做ios的
我:我還想問一下,我是一個(gè)轉(zhuǎn)行的,為什么您會(huì)對(duì)我發(fā)起電話面試呢,應(yīng)該不是每個(gè)投簡(jiǎn)歷的都會(huì)被約面試吧,就是說我的簡(jiǎn)歷上面您最看重哪一點(diǎn)呢
對(duì)方:是這樣的,Android這些呢應(yīng)屆畢業(yè)生的話有開發(fā)經(jīng)驗(yàn)的很少,所以我們更加看重基礎(chǔ)知識(shí)的掌握,最好還有相關(guān)的項(xiàng)目經(jīng)歷,但項(xiàng)目經(jīng)歷不是必須的。
我:所以我通過篩選的原因就是我上面寫了自己有C++的開發(fā)經(jīng)驗(yàn),并且有一段相關(guān)的實(shí)習(xí)是吧
對(duì)方:對(duì)的
我:最后還有一個(gè)問題,可以大概評(píng)價(jià)一下我這次的面試嗎。
對(duì)方:中等……中等偏下吧
我:(雖然很尷尬但好像說的也對(duì))好的
對(duì)方:那這次的面試就到這?
(然后面試就結(jié)束了)
面試整體問了五十分鐘,其中項(xiàng)目經(jīng)歷就問了三十分鐘,剩下的二十分鐘集中在C++、數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)上面,而且面試官特別愛問時(shí)間空間復(fù)雜度、底層數(shù)據(jù)結(jié)構(gòu)這些??梢姅?shù)據(jù)結(jié)構(gòu)和算法是最重要的。如果還要現(xiàn)場(chǎng)寫代碼的話,一定要多上leetcode刷算法題。。
其實(shí)看了網(wǎng)上的一些騰訊面試經(jīng)歷,自己作為一個(gè)轉(zhuǎn)行狗已經(jīng)預(yù)料到會(huì)被面試官各種碾壓了。但是面試過程中被各種細(xì)問還是慌的一比,問了二十多分鐘就開始狂抖了,感覺就像受審判。
不過大家臉皮一定要厚,有些東西不試試更沒有機(jī)會(huì),如果自己菜去不去面試都是菜,只不過被碾壓一遍更能發(fā)現(xiàn)自己的菜。面試官的問題也非常有幫助,感覺有些地方之前寫程序一直沒好好考慮過,比如時(shí)間空間復(fù)雜度還有異常這些。另外花了三天搜集可能的面試題也是一次很好的復(fù)習(xí)機(jī)會(huì),后面再針對(duì)面試被問的問題好好回去想想該怎么回答,對(duì)自己的知識(shí)掌握程度還有項(xiàng)目都會(huì)有很大的幫助。
另外就是實(shí)習(xí)經(jīng)歷是真的重要,感覺自己的簡(jiǎn)歷沒有直接被扔進(jìn)垃圾桶,還讓面試官愿意騰出一個(gè)小時(shí)來面試一下的重要原因就是上面有一份實(shí)習(xí)經(jīng)歷。而且確實(shí)在實(shí)習(xí)的時(shí)候我也更加深刻理解了C++ Primer上面的一些知識(shí)點(diǎn),所以大家一定要早點(diǎn)出來找實(shí)習(xí)啊,特別是準(zhǔn)備轉(zhuǎn)行的學(xué)校里沒有機(jī)會(huì)鍛煉的同學(xué)們。。
相關(guān)文章
工作一年后騰訊社招面試經(jīng)歷與經(jīng)驗(yàn)分享
這篇文章主要介紹了工作一年后騰訊社招面試經(jīng)歷與經(jīng)驗(yàn),總結(jié)分析了筆者參與騰訊社招面試過程中所遇到的問題與相關(guān)經(jīng)驗(yàn)總結(jié),需要的朋友可以參考下2020-01-06騰訊測(cè)試崗位的面試經(jīng)歷與經(jīng)驗(yàn)分享【一面、二面與三面】
這篇文章主要介紹了騰訊測(cè)試崗位的面試經(jīng)歷與經(jīng)驗(yàn),總結(jié)分享了騰訊測(cè)試崗招聘面試中一面、二面與三面各個(gè)環(huán)節(jié)所遇到的問題與參考建議,需要的朋友可以參考下2020-01-03- 這篇文章主要介紹了記一次騰訊社招前端面試,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-12-03
- 這篇文章主要介紹了騰訊社招面試經(jīng)歷與問題,總結(jié)分析了騰訊社招面試過程中所遇到的各種問題及相應(yīng)的參考答案,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2019-11-27
騰訊后端面試經(jīng)歷與經(jīng)驗(yàn)總結(jié)
這篇文章主要介紹了騰訊后端面試經(jīng)歷與經(jīng)驗(yàn),總結(jié)分析了騰訊面試過程中所經(jīng)歷的問題、面試流程、相關(guān)注意事項(xiàng)與失敗經(jīng)驗(yàn)總結(jié),需要的朋友可以參考下2019-11-25- 這篇文章主要介紹了2019年騰訊最新前端工程師面試題(附答案),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-11-21
- 這篇文章主要介紹了騰訊游戲客戶端開發(fā)面試經(jīng)歷,整理記錄了騰訊游戲開發(fā)面試中遇到的各種問題與心得體會(huì),需要的朋友可以參考下2019-09-24
- 這篇文章主要介紹了騰訊游戲客戶端開發(fā)面試經(jīng)歷,總結(jié)分享了騰訊游戲客戶端開發(fā)面試所涉及到的考點(diǎn)與注意事項(xiàng),需要的朋友可以參考下2019-09-20
9月最新184道阿里、百度、騰訊、頭條Java面試題合集(小結(jié))
這篇文章主要介紹了9月最新184道阿里、百度、騰訊、頭條Java面試題合集,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-09-09騰訊前端面試題相關(guān)知識(shí)點(diǎn)集錦
這篇文章主要介紹了騰訊前端面試題相關(guān)知識(shí)點(diǎn),整理總結(jié)了騰訊前端面試中所涉及的相關(guān)基礎(chǔ)知識(shí)點(diǎn)與疑難問題,需要的朋友可以參考下2019-08-27