好未來(已拿offer) CVTE(3面通過)

NO IMAGE
發個面經來回饋牛客網,灰常感謝找工作以來牛客網各種資源的共享,offer在大神們看來都不好,但餘已知足。排版了3次,終於好了。。。。
首先說明自身情況:非985、211本科生一枚計算機專業的渣渣。 提前批快結束了,終於有了一個offer了,實屬不易,從實習到現在也面過了BAT,金山電話面過了在等宣講會現場面。再不拿offer都開始要懷 疑人生了。。。。提前批阿里面了2面,感覺還可以,但是還是被拒了,好傷心,可能阿里是真的不招人吧
阿里一面
1、面試肯定少不了自我介紹,一通自我介紹,和之前差不多,沒有什麼新意
2、在棧上為什麼不能用變數做陣列的長度,堆上可以嗎?
3、問了我的專案,QQ聊天系統,怎麼實現的,客戶端為什麼要用TCP和UDP結合,用UDP協議有什麼好處,訊息是怎樣定義的,怎樣區分不同的訊息,怎麼知道使用鎖的。我給他說了epoll、執行緒池,Reactor模式,以及自己實現的雜湊表,執行緒之間怎樣同步等說了將近20分鐘
4、談談快排,於是3種快排4種優化方式說的還可以
5、STL裡的vector,擴容是怎麼擴容的,我說以2倍方式,又問我當容量很大時還是以2倍來擴容嗎?不造了,尾插O(1),非尾插線性時間複雜度,迭代器失效,vector實現等等。說的挺詳細的
6、程序和執行緒的區別,這個感覺面試官都愛問誒,Linux2.6核心之前沒有自己的核心級執行緒2.6之後的3種執行緒模型,多CPU執行,程序的PCB控制塊,殭屍程序遺留PCB控制塊在記憶體中等等,說的挺詳細的
7、TCP3次握手4次揮手,說了3次握手的原生缺陷以及怎樣解決,4次揮手的TIME_WAIT狀態,等等,說的也挺詳細的
8、其他的技術問題記不清了。。。。。
9、問我最近在學習什麼,感覺如何,對自己感覺如何,成績等就在那裡聊了,說我有沒有對網際網路技術瞭解,我說人工智慧、資料探勘機器學習等,又問我想往那方面發展,我說自己經常關注網際網路,正在瞭解著人工智慧,聊了一會
10、面試官說我對知識理解的還是比較深入的,內心暗喜。
阿里二面
很不爽,一面和二面的面試官感覺都是搞JAVA的。。。
1、快排,說了3種快排及4種優化方式,以及partition函式的應用,面試官說理解的還可以
2、接下來問了我的專案,我說了QQ聊天系統,balabala
3、問我學習,成績,排名,有沒有建立興趣小組等等
4、問我經常去哪些網站了解技術,我說CSDN、伯樂網等等
5、又問我對黑客懂不懂,我和他聊了會,網站SQL隱碼攻擊,緩衝區溢位攻擊,DNS劫持,DDOS攻擊,ARP欺騙以及原理,嗅探、肉雞、網頁掛馬等等,還好之前玩過一點黑客。
6、說一下網頁從請求到接受的全過程,學過網路的應該都知道,balabala
7、問我怎麼知道函式的具體呼叫一些列過程的。我說是除錯,然後看彙編,記憶體等。來一步一步走程式的執行過程等 一面面了80分鐘,二面面了45分鐘,然而還是擺脫不了掛了的命運,可能自己真的太菜了,也可能阿里今年真的找人很少吧。唉唉,很受打擊。。
好未來(已拿offer)
投了好未來的提前批,非常幸運的簡歷篩選過了,免筆試直接面試,8月27號下午面試,剛好打算面試完回家呆一週再來學校,休息幾天。整個暑假一直奮鬥在戰線上,於是乎就決定回家休息一週再來學校。面試的地點是在大酒店,挺派氣的,等了一會,一面開始
好未來一面
1、上來面試官調侃我說個子這麼高還做這麼高的凳子。。。。我在那裡傻笑,首先還是自我介紹,因為說的比較流暢,面試官說是不是背的?
2、問了我的專案,我把Linux的執行緒池,併發反應模式,TCP等等都說了一遍。TCP是基於位元組流的,給他畫了核心和使用者態相互拷貝資料圖,TCP沒有邊界限制,阻塞IO,非阻塞IO,epoll機制以及高效的關鍵,紅黑樹實現,mmap記憶體對映,連結串列是實現的3個重要技術,等等,總之差不多把Linux和TCP的知識全說了,大概20分鐘
3、面試官說來寫到程式設計題吧,手寫程式碼。題目是:給定一個字串,比如abc,計算出abc全排列的種數,字串的每個字母都是小寫字母,一看,這就是字串的全排列的問題嘛,我問了面試官字元有重複麼?他說可以重複也可以不重複,於是我用分治法寫了個全排列的程式碼,加上去重的判斷。因為之前競賽時用的熟的不能再熟了,雖然幾個月沒有寫過,但是根據思想,10分鐘就把程式碼搞定了。寫了3個函式。面試官看了幾分鐘,問我怎麼實現的,我把原理給解釋了一下,面試官又問我這個效率高嗎?可能是看程式碼有遞迴呼叫吧。我一愣想,自己之前用的就是這個呀,難不成還有更高效的?
4、面試官說你用數學的方式嘗試去解決,我說想了一會,面試官說用階乘,把計算過程給我大概說了一下,讓我寫程式碼,5分鐘搞定了,其實他這種方法雖然比較適用於這個問題,但是會溢位,而且超過10個字元之後就不可以用這個方法了
5、面試官讓我去找HR,一面過了
好未來二面
1、過了30多分鐘二面開始,自我介紹。。。。。
2、問我函式呼叫壓棧,我把函式的呼叫過程畫了出來,因為之前看過彙編,從右向左傳參,呼叫call指令壓入返回地址,保護各個暫存器等。 說的挺詳細的
3、this指標儲存在哪個暫存器中,我說ecx暫存器
4、C 呼叫約定和stdcall呼叫約定的區別,以及彈棧的時候的區別 我說了C和C 是_cdecl呼叫約定,由呼叫者把引數彈出棧。對於傳送引數的記憶體棧是由呼叫者來維護,而stdcall是由被調者自己平衡棧幀等等。說的挺詳細的。他問我當前指令儲存在哪個暫存器,這個還真沒有留意過。。。我說eax,他說eax用來儲存返回值的,我一想,eax就是來儲存返回值的,我說有一個pc指標指向當前執行指令的下一條指令,他說是儲存在哪個暫存器,誒,我說不造了。
5、C 類中執行緒callback函式怎麼使用自己類的成員,我說首先得定義成static的,他說嗯,然後把this指標傳入。他說可以。
6、TCP3次握手4次揮手,這個問的太多了,我詳細的從頭到尾說了一遍,他說第二次握手之後可以發資料嗎?我說可以,但是必須得把ACK子段 置位等還問了一些別的相關問題。
7、用過什麼框架沒有,我說用過一點libevent框架,把框架的原理說了一下。
8、還是手寫程式碼。。。 題目:用epoll的ET模式實現一個伺服器框架 要求:
1、接受client連線建立,出錯處理
2、處理client關閉連線以及出錯
3、TCP邊界問題,其實就是TCP粘包 寫了3頁的程式碼。。。。。。。。。
9、HR讓最後回去等他們回北京了給通知。最後幸運的收到了電話通知過了。二面面試官好像是我的部門經理,給我安排了一個導師,看來宣傳 的是真的
CVTE
招實習生的時候做了CVTE的筆試題,網頁卡了,把網頁重新整理了一下,所以兩道程式設計題就全沒了,手賤了。。。於是乎,只提交了個選擇題,筆試就掛了。校招筆試還好沒有出狀況,順利的過了筆試。然後在桃園酒店面試。面試前一天因為在沙發上睡了一覺,竟然發燒了,唉,第二天去面試的時候好頭暈,一直暈暈乎乎的,不過還好3面都過了,不過百度筆試錯過了,哭暈在廁所。
CVTE一面:
1、說一下最值得說的比賽或者專案,然後就直接問專案了
2、把專案給說了一遍,用到的技術,UDP廣播等等。
3、UDP實現廣播時會不會出現對方接受不到,可能是什麼原因
4、UDP在同一個網段下可以實現廣播嗎?在同一個子網下為什麼可以實現廣播?怎樣劃分子網
5、其他的忘記了
6、手寫程式碼, 題目:給定一個陣列,返回出現次數第二多的數 給5分鐘時間。。我問他對時間複雜度和空間複雜度有沒有限制,面試官說沒有。。我寫的是先快排,把快排寫了,然後在max,second遍歷一遍找到。O(nlogn),還說也可以使用雜湊表,在O(n)時間複雜度內就可以。
7、就這樣,一面感覺20多分鐘,就這樣過了,略水。。。
CVTE二面:
1、上來就直接手寫 反轉二叉樹 程式碼。。。
2、又給了幾道寫結果題,以及分析結果,基類和父類的構造解構函式呼叫,多型,結構體裡的位域,求大小並且分析,我說windows下和linux下對位域有區別,他問我什麼區別就balabala,說讓我在linux下求。。
3、問我專案,QQ聊天系統,balabala,又問我高併發怎麼辦,我說這個我的這個模型還可以應付併發模式不是很大的,他說TCP核心有沒有連線限制,我說有,好像儲存在一個配置檔案裡,但是具體忘記了。。
4、問我gcc和g 區別。。。。
5、會寫makefile不,gdb除錯,給我說了各種引數,ld,backtrace,等等7個,唉,只會兩個,感覺好虛。。。
6、程序間通訊方式,怎樣實現在兩個程序間互斥訪問共享記憶體,我說給共享記憶體加鎖,他說這是不可以的,鎖不會對兩個程序都有效,我又說了點別的,這個還真沒有注意過。。。 菜的摳腳 解法:http://www.cnblogs.com/my_life/articles/4538299.html
7、問我的專案有沒有用到什麼設計模式,我說單例模式等,讓我手寫了單例模式,加鎖,兩重判空
8、有沒有問他的,問了公司團隊以及專案分工。說讓我在後面等他一下,然後被他帶到HR面的地方
CVTE HR面:
1、對前面兩輪的表現打個分,對自己打個分
2、說說家庭,和家裡誰的關係最好
3、未來5-10年會做什麼,怎麼規劃
4、有沒有別的offer
5、如果給offer可能什麼原因沒來
6、什麼原因可能會離職
7、對工作的地點、時間、薪資怎麼看
晚上回來11點查了一下,終面通過
祝大家也早日收到自己心儀的offer