1. 程式人生 > >bigo 三輪面試面經

bigo 三輪面試面經

5.19 bigo面試,崗位C++後臺開發(廣州),面了一上午,總共面了三輪技術面,然後就沒然後了,聽天由命。。。

比較重要的點是筆試要認真的做,因為面試的問題基本上是針對你筆試的點一個一個問的。自己筆試做的有點粗糙,由於自己當天有事,差不多40分鐘左右就交了,然後後面程式設計題bug有點多,然後由於基礎薄弱前面選擇題做的也不好,自己也沒有太在意筆試,後面回去也沒有好好總結,就程式設計題回顧了一下貌似錯的挺多的……收到面試還是挺幸運的。

部分題目還是有些遺忘,不過大致知識點就是這樣了。

第一輪面試

一開始照例自己我介紹,然後就開始根據專案(簡易聊天室)問一些知識點

  • 網路程式設計TCP伺服器構建的步驟(就是socket那一套步驟)
  • TCP與UDP的區別
  • TCP如何實現可靠交付
  • TCP四次揮手的過程
  • 解構函式為虛擬函式的作用
  • 有問常用什麼程式設計環境(IDE(Code::blocks,Clion)什麼的,vim熟悉嗎)
  • 資料庫索引的實現原理,B樹和B+樹的應用場景
  • hash衝突的解決方法
  • 演算法題:給一個vector< float > p,p[i]表示下表為i的概率為多少,現在實現一個select函式返回一個索引i,進行若干次呼叫以後,使得返回所有的索引分佈儘可能近似趨近事先給定的概率

第二輪面試

  • 棧和堆的區別(記憶體方面的)
  • 演算法題:有一個記錄日誌(很多條),每條訪問記錄都有一個ip地址,現在問你訪問頻率最高(出現次數最多的)的20個ip
  • 大端和小端模式,如何檢視自己的電腦時大端還是小端
  • 邏輯地址和實體地址的關係,由具體什麼進行轉換(地址加法器)
  • 執行緒和程序的區別
  • 連結是什麼作用,整個程式到可執行程式碼經歷了什麼
  • 有很多個2毛硬幣,3毛硬幣,5毛硬幣,現在問你組成x毛的硬幣的方案數,寫出dp遞推式就可以了
  • 給出入棧序列,求出棧方案數(卡特蘭數)
  • 你覺得作業系統對你寫程式碼有什麼幫助嗎
  • 給出入棧序列和出棧序列,判斷是否合法
  • 怎樣理解hash
  • 給一串英文語句,讓你對語句進行翻轉(this is a word -> word a is this),第一次做法由對每個單詞進行翻轉,然後整體翻轉(複雜度要求沒滿足),然後就說如果是vector< string >就好做了,那麼就轉換成這樣子(手寫程式碼)

第三輪面試

基本上對著錯題一題一題問怎麼想的,還有一些寫的不確定的題目

  • 數組裡有一個數字出現次數超過一半,讓你找出來這個數是什麼。(筆試題目,程式碼寫的有bug,讓自己找bug)
  • 二分查一個有序陣列的值。(筆試題目,程式碼寫的有bug,讓自己找bug)
  • TCP三次握手時的幾種狀態,以及過程中的一些細節(seq包序號什麼之類的)
  • 資料庫事物鎖相關知識(沒了解,直接略過了)
  • 八個球其中有一個最輕,其他質量一樣,問最少需要稱幾次(2)
  • 九個球其中有一個最輕,其他質量一樣,問最少需要稱幾次(2)

真的對每一輪環節都不能洩氣,不然一定會在後面埋下大坑,就像這次我的筆試,以為水過去就好了,寫完以後也沒有仔細總結,導致面試的時候有點沒準備的太好。

最後一面結束的時候扯了些沒用的,不過說到底還是自己實力不夠,只有最後一面有問問題,其他兩面都沒機會問問題,其實挺想知道面試評價的,想多積累一點經驗的,不過硬傷還是基礎太薄弱了,前兩年精力大部分花在ACM上,結果ACM成績不是特別理想,然後專業課基本都是最後衝刺才勉強過去的,還是很多不足,最近需要看的東西有很多。

第三面面試官評價說有一定程式碼能力,但是計算機網路基礎比較薄弱(自認為計算機基礎都比較薄弱。。。),感覺如果從應試的角度來看,瞭解這個公司的部分業務,可能能獲得一定技術的側重點,然後多準備一點。不過最後還是需要自己實力夠硬,加油,近期好好惡補一下,自己一定能拿下暑假實習的。

忘更了,面完後過了兩三天hr就給了電話,不過在週一的時候就接了景馳的Offer,所以當時hr打電話來的時候沒怎麼聊,不過第二天又有另一個hr打電話來聊待遇,不過個人傾向於景馳一點,所以後面還是沒有接Offer,有點不好意思,只能說以後有機會吧。

現在已經在景馳工作了差不多半個月了,待遇挺高的,彈性工作制,包一日三餐,可以瞭解一下。