騰訊 后臺(tái)開(kāi)發(fā) 光子工作室 一面涼經(jīng)
之前很少分享面經(jīng),因?yàn)橐痪褪菍?shí)驗(yàn)室項(xiàng)目經(jīng)歷,八股拷打,一些解決問(wèn)題的思路,沒(méi)什么參考性。
這次面試騰訊,又再一次深切的感受到大廠的威壓(之前兩次有過(guò)如此感受的是字節(jié)的提前批算法一面和快手算法三面),面完之后能明顯感知到自己對(duì)于簡(jiǎn)歷上所寫(xiě)內(nèi)容的深入理解還不到位,以及難以在面試的短暫時(shí)間里體現(xiàn)出自己的優(yōu)勢(shì)。
而且開(kāi)放性問(wèn)題不少,發(fā)出來(lái)看看大家的看法以及對(duì)于其中的某些問(wèn)題有沒(méi)有好的答案,不吝請(qǐng)各位大佬賜教!
--------------
總計(jì) 50min
實(shí)習(xí)經(jīng)歷
騰訊云計(jì)算,實(shí)習(xí)的兩個(gè)月主要做了什么?(講了兩個(gè)主要完成的需求)
C++
引用和指針的區(qū)別?
引用的底層原理是什么?比如只能指向一個(gè)變量(一開(kāi)始沒(méi)想到,之后意識(shí)到了是const pointer)
在編譯器的哪個(gè)階段實(shí)現(xiàn)的?(?)
C++11里的特性,說(shuō)一說(shuō)?(列舉了常用的那幾個(gè))
你知道 Lambda 使用時(shí)需要注意哪些問(wèn)題嗎?(我自己說(shuō)了捕獲和返回值,但這種開(kāi)放性問(wèn)題真的不好答,尤其是沒(méi)具體的深究過(guò))
了解協(xié)程嗎?(只說(shuō)了知道騰訊開(kāi)源的libco,但是具體沒(méi)了解過(guò),面試官說(shuō)可以了解一下,C本身也有協(xié)程)
網(wǎng)絡(luò)編程
epoll 和 select 的區(qū)別?(紅黑樹(shù)和數(shù)組)
能不能再具體一些?epoll 和 select 是如何處理事件的?
(這塊兒也是好久沒(méi)看了,看得多點(diǎn),寫(xiě)的太少,就只有個(gè)印象)
計(jì)網(wǎng)
對(duì) tcp 和 udp 了解的深嗎?(這問(wèn)題我該怎么答?)
舉例,如何用 udp 實(shí)現(xiàn)可靠傳輸?(除了序列號(hào),超時(shí)重傳,擁塞、流量控制等機(jī)制,我說(shuō)了還有 QUIC)
為什么要有 QUIC?(這時(shí)候應(yīng)該說(shuō) TCP 本身的缺陷,建立連接延遲、隊(duì)頭阻塞、連接遷移等問(wèn)題,我舉了連接遷移的實(shí)現(xiàn)機(jī)制,但是之后也沒(méi)繼續(xù)問(wèn)了)
項(xiàng)目
webserver 定時(shí)器是如何實(shí)現(xiàn)的?如果要用 STL 里的某個(gè)數(shù)據(jù)結(jié)構(gòu),應(yīng)該選哪個(gè)?存放的數(shù)據(jù)又是什么?
(此時(shí)我透露了這個(gè)項(xiàng)目的部分是我參考開(kāi)源項(xiàng)目的實(shí)現(xiàn)做的,而且確實(shí)好久沒(méi)看了)
日志庫(kù)是如何實(shí)現(xiàn)的?(參考的muduo)有沒(méi)有什么優(yōu)勢(shì)?
線程池是如何實(shí)現(xiàn)的?(std::future + 可變參模版)為什么要用線程池?一個(gè)16核的機(jī)器,分配16個(gè)線程,任務(wù)結(jié)束后等待另一個(gè)任務(wù)的派發(fā),不用線程池不也是一樣的嗎?(我感覺(jué)這個(gè)問(wèn)題我沒(méi)有理解)
緩存池是如何實(shí)現(xiàn)的?(LRU)。有沒(méi)有突出的地方?(沒(méi)有。。。)
簡(jiǎn)歷中有pytorch?是用來(lái)做什么的?(聊了聊有關(guān)簡(jiǎn)歷上沒(méi)有的另一個(gè)實(shí)驗(yàn)室畢設(shè)項(xiàng)目,深度強(qiáng)化學(xué)習(xí)的全景視頻傳輸優(yōu)化)
能不能聊聊深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)的不同?
強(qiáng)化學(xué)習(xí)中有個(gè)概念叫 MPD,能不能說(shuō)一下?馬爾可夫決策過(guò)程
框架是自己寫(xiě)的還是有參考?深度學(xué)習(xí)用的pytorch,項(xiàng)目框架是自己搭的,有借鑒傳統(tǒng)視頻的處理框架。
主要用了哪些 python 庫(kù)?(聽(tīng)到這個(gè)問(wèn)題我真懵了,除了 numpy,我就沒(méi)記得其他庫(kù),除非實(shí)踐中遇到問(wèn)題找到了能解決這個(gè)問(wèn)題的庫(kù),否則我覺(jué)得很難回答上來(lái))
反問(wèn)?
主要技術(shù)棧?C++ 和 Lua,不過(guò) python 和 Go 也有。
如何看待 C++ 這門(mén)語(yǔ)言?(因?yàn)樽罱萑肓艘环N自我懷疑中,是否不該選 C++,以及我到底發(fā)揮了 C++ 的哪些特性?Go 和 Rust 在逐漸蠶食 C++ 后段服務(wù)器的應(yīng)用范圍,而Java相對(duì)來(lái)說(shuō)確實(shí)更好找工作)面試官說(shuō)即使是 C++ 開(kāi)發(fā),進(jìn)來(lái)也不一定能寫(xiě),而之所以這么招,是因?yàn)槿绻粋€(gè)人對(duì) C++ 特熟,那么轉(zhuǎn)別的語(yǔ)言相對(duì)來(lái)說(shuō)就會(huì)輕松很多。
面試官介紹了一些部門(mén)業(yè)務(wù),這也是為什么之前問(wèn)了問(wèn)強(qiáng)化學(xué)習(xí)的問(wèn)題。面試官舉例,和平精英里的 AI,應(yīng)用強(qiáng)化學(xué)習(xí)使之行為更自然。
#面試經(jīng)驗(yàn)#