字節跳動三輪技術面_後端研發提早批

聲明:本文做者:煉獄的吹笛人 原文連接:https://www.jianshu.com/p/a44f2e25d98d前端

人在杭州,投的是深圳崗,因此是在牛客網上的視頻面試。程序員

1 一面

  • 項目相關
  1. 介紹一個項目
  2. 爲何考慮使用Spark?
  3. 使用華爲的服務減小了哪些運維工做?
  4. 你以爲項目中有哪些比較有意思的點?
  5. 數據處理方面作了哪些工做?
  6. 用Redis作了什麼?使用過Redis的什麼命令?什麼狀況下會用到flush?
  7. 若是一個信息更新很是頻繁會怎麼應對?
    前面的結合本身的實際經驗回答便可。
    最後一題答使用了消息隊列作緩衝。
  • 手寫代碼
    很經典的一個二叉樹鏡像問題,讓我作兩個事情:
  1. 如何將這個問題進行抽象(其實就是算法的思路)
  2. 實現算法
    面試官看完個人代碼後進行了追問:
    Worst case下你的代碼的時間和空間複雜度?
  • 書本上的問題
    面試官也注意到我不是科班出身,答得出來就答打不出來就算了(使人感動>_<+)
  1. Windows系統中文件信息是存放在哪裏的?
  2. 雙擊文件夾時,如何獲取裏面的信息?
  3. 瞭解TCP和UDP嗎?各有什麼特色?各舉一個場景?

面試官很和善,人超nice的。前面的內容畢竟是本身項目的,答得較有底氣;代碼題之前也見到過,比較容易就寫出來。可是操做系統的問題確實是一問一個懵,好在後面的網絡正好前一天覆習到。。。面試

  • 個人提問
    後端部門的業務怎麼劃分?

2 二面

一面技術後,夠了大約十到十五分鐘,就進入了二面。此次的難度進行了全面升級。。。算法

  • 基本狀況
  1. 自我介紹
  2. 介紹一個項目
  3. 說一下項目中難點
  • 操做系統
  1. 進程間的通訊方式有哪些?
  2. 哪一種效率最高?爲何?
  3. 內核態在何時調用?
  4. 字節對齊有了解嗎?
  • 計算機網絡
  1. UDP最長長度是多少?(此時我回答了不清楚)
  2. UDP的包頭有什麼?
  3. 包頭中有多少個字節用來表示長度?
  4. UDP最長長度是多少?

從這裏能夠看出來,面試官的提問頗有技巧,經過一步步引導我思考,中間偶爾糾正個人錯誤,最終能把問題引回到最初。既考察了個人基礎知識,也順帶讓我學習了一波。編程

  • 數據結構
  1. 最大堆有什麼特色?
  2. 構造最大堆的過程?時間複雜度是多少?
  3. 堆排序的過程?時間複雜度是多少?

當時忘記構造二叉堆有坑,徹底掉坑裏了。。後端

  • 算法
  1. 說明如何求斐波那契數列的第N項?
  2. 爲何你選擇迭代而不是遞歸的方法?
  3. 怎麼求根號N的近似值?要求精度在小數點後5位(我說了二分法並解釋了大體思路)
  4. 你的方法的終止條件是什麼?
  • 不知道歸在哪一類
    最近在學習什麼?(我回答說地理相關的開源組件,而後沒再問下去了)
  • 場景實現

兩個系統,一個機器上有大約1k的小文件,共10G,系統間網絡不好,怎麼高效地把全部文件從一個系統傳送到另外一個系統?安全

這個問題花了好久的時間,我提出本身的實現後,會問我這樣實現會有什麼問題?還能不能繼續優化(網絡的硬件層面已經定死了,主要是應用層面怎麼優化)?這方面確實不懂,基本只能胡扯,磕磕巴巴說了一些,可是面試官仍是聽了下去並引導我進行分析,但無奈水平太差提不出什麼好點子(掩面哭泣)網絡

  • 手寫代碼

一個角色,從二維矩陣的左上角移動到右下角,每次只能右移或下移,生命值會隨着遇到的格子裏的數字加減(整數加負數減),到終點變成0就死掉。問初始生命值最少要多少才能安全抵達?數據結構

一開始說的是統計全部路徑中最後血量的最小值,負數取反加一,正數爲0。後來面試官補充說,在中途變成0也會當即死掉,並且在開頭變0也會死。我一會兒沒反應過來思考了一下,面試官就主動下降了難度,說把條件設置成一維,且角色只能右移。雖而後面寫出了代碼,但他沒有評價,大概也不太滿意。併發

  • 個人提問
    對技術棧的要求?

一面感受良好,可是二面感受涼透了。計算機網絡一問三不知,系統設計漏洞百出,數據結構踩了坑,算法題還主動被降難度=_=本身做爲非科班出身的半路出家碼農,確實還有不少須要補充的基礎知識和技能。但願之後的面試能吸收經驗教訓,每次都能比前一次更順利一點!加油,鹿小葵

更新:沒想到二面也經過,收到了預定三面的短信,而三面依舊是技術面。此次得要吸收教訓,準備得好一點!

公衆號 逆鋒起筆 專一分享 JavaPython、前端、大廠經驗、職業發展乾貨;天天下午 14:40 推送,每一個程序員值得關注的技術平臺。關注即送小編整理的精品視頻教程

3 三面

  • 項目
  1. 自我介紹
  2. 項目裏的難點或者有趣的地方

此處面試官屢次提問「難點在哪裏呢」,看來有必要好好練習這一塊Σ( ° △ °|||)︴

  • JVM

  提問前面試官先問我Java、SpringBoot、MySQL、Redis的熟悉程度,我回答前兩項較熟。這裏是對着簡歷問的,可見簡歷不能瞎寫。戲說不是胡說

  1. 什麼是GC?爲何要GC?GC有哪些算法?
  2. 什麼是垃圾?怎麼判斷它是垃圾?
  3. 什麼是STW?爲何要STW?會帶來什麼影響?有沒有減小STW時間的方法?
  • Java併發編程
  1. 什麼是線程安全?
  2. Java中確保線程安全有什麼方法、工具或者容器?
  3. (我剛說的)重入鎖、倒計數器、循環柵欄等分別是啥?有什麼用?在什麼狀況下使用?
  4. 瞭解CopyOnWriteArrayList嗎?在什麼條件下用它?
  • 手寫代碼

把一箇中文表示的正整數轉成Int,如輸入字符串「五千三百萬零五百零一」,輸出53000501。其中輸入的數字小於一億(且不包括一億)。
說是先給二十分鐘搞出一版,我搞出一版後發現編譯不經過還在調,他就直接讓我說思路,而後就完了。。。(慌)

  • 其餘
  1. 之後的工做規劃(技術面咋問起這來了)
  2. 提問環節

此次運氣好,問的專業問題幾乎都複習到了,算法題也不算難。可是面試官全程冷漠臉,既不願定我,也不糾正我,搞得內心很沒底。最後說了一句「此次面試先結束了,之後常聯繫」,不知道是好是壞呢~

4 後續

過了十天左右,收到了offer call和意向書,很開心~因爲我面的公司還不算多,不能橫向比較,可是字節跳動的面試難度給個人感受仍是挺大的,尤爲二面快給我問懵了。面試官喜歡讓你講項目裏比較難的或有意思的點,專業知識很注重基礎,但不是說背下來就行,須要本身深刻去理解的那種;可是相對來講,代碼題就比較簡單了,只要不被前面的問題嚇到,都是能作出來的。

公衆號 逆鋒起筆 專一分享 JavaPython、前端、大廠經驗、職業發展乾貨;天天下午 14:40 推送,每一個程序員值得關注的技術平臺。關注即送小編整理的精品視頻教程
相關文章
相關標籤/搜索