大四菜雞的第一次面試經歷,我的後端日常實習面經,已經拿了位元組跳動和B站offer!

前程有光發表於2020-12-06

前言

lz大四,大概11月初開始面位元組,第一次面三面後掛了,然後又被hr撈起來又面了一次,這次四面過了,掛了之後我就跑去B站實習了,後來位元組的HR又打電話來撈了我,可能是位元組現在真的確認吧(小聲bb:不會是因為我這張英俊的帥臉吧…)

我這裡準備了一線大廠面試資料和我原創的超硬核PDF技術文件,以及我為大家精心準備的多套簡歷模板(不斷更新中),希望大家都能找到心儀的工作!有需要的朋友點選這裡備註csdn自行下載即可,希望對你們有幫助!
在這裡插入圖片描述

一面:

我這輩子第一次面試,特別緊張,裝置沒有除錯好,面試官那邊聽不到我聲音,所以就推遲面試了,耽誤了面試官的時間。

第二次上來問了:

  • 專案
  • TCP握手揮手
  • 面試官看我沒啥經驗,專案做的也不怎麼樣,於是說“做兩道題吧”
  • 判斷平衡二叉樹。我確認了以下定義開始寫,因為太緊張把java的語法都寫錯了hhh面試官跟我說不用緊張
  • 請寫出一個高效的在m*n矩陣中判斷目標值是否存在的演算法,矩陣具有如下特徵:
  • 每一行的數字都從左到右排序
  • 每一行的第一個數字都比上一行最後一個數字大
  • 二分,面試官說我邏輯寫複雜了
    然後第一次面試就結束了,全程基本就是在做題,沒有問作業系統。可能公司面對沒有開發經驗的候選人就會讓他做題吧。

二面:

二面面試官看起開不太開心,上來問了我點Java相關的,我答得不好,我跟他說我平時用Java只是刷leetcode,他說那我們們做兩道題吧。。。

二叉樹的最大路徑和,Leetcode hard原題,還好我前幾天刷過一遍,我感覺這個面試官不懷好意,上來就一道hard,說好的循序漸進呢
給定一個字串m(只含有26個小寫字元,假設m的總長度不大於1000),要求在字串中找到最長的一個連續迴文子串k,返回其長度。其中連續迴文子串 k 需滿足以下條件:

  • 整個字串是迴文串(從前往後和從後往前看字串是一樣的)
  • 該字串中的任意相鄰字元在ASCII 碼錶中也是相鄰的
  • 字串中字母序必須是且只能是先升序後降序,且字母序只能改變一次

我拿到題很開心心想這不就是最長迴文子串嗎,這個我會!然後就要DP。面試官說停停,你再看看這題需要DP嗎?我一看,噢,原來一遍遍歷就行,然後就開始寫,期間寫了很多bug,都被面試官挑出來了
做完兩道題才開始問八股文

  • 資料庫的隔離級別
  • 解決幻讀需要什麼隔離級別
  • 外存排序,歸併

Top K問題,快排+剪枝。如果資料量很大沒法快排呢?維持一個堆。因為那段時間我Java用的比較多,心裡想的是程式碼,上來就說PriorityQueue,面試官沒聽懂我要幹啥,問我學過資料結構沒,我說哦哦哦用堆,他說你早說用堆不就完了
然後第二次面試就結束了,還是做題,做題,做題

三面

上來先讓我自我介紹,我就把學過的課程說了說
聊到語言,又說到了Java,我說我這個就是刷題用的,暗示他別問了,他說刷題為啥不用c++,我說好久沒用忘了
可他還是要問Java(╯▔皿▔)╯

Equals和HashCode方法,自定義資料結構放在HashMap裡需要重寫哪個。我學Java的時候記得,後來忘了。。
HashMap擴容策略,我說連結串列轉紅黑樹,他說如果紅黑樹變得很大呢,我說我真不知道別問了
他說好好好不問了,我們做題吧。

最大子序和,leetcode經典中的經典,直接背出來。他說如果我不僅想要最大的和,還想要區間範圍呢,我就又改了改。他說行,下一題吧。
一個先升序後降序的陣列,找出某個值在不在這個陣列內。二分魔改過了,期間他一直引領我,我說您說的我沒太聽懂,我按照我的思路寫可以嗎,他說好的好的,不打擾你了,然後我就給他邊寫邊講我的思路,他說也行
做完了題問我打不打ACM,把我樂的夠嗆,說我刷題才倆月,哈哈
問我用過Linux嗎?答曰學計組和OS的時候會用ubuntu,但命令列不太熟
會git嗎?不會
用得慣蘋果系統嗎?我說我倆電腦一個win一個mac,會的

然後結束了愉快的面試,第二天收到了拒信

後來我就去B站先實習了,那邊用的也是Go

過了兩週,又被hr拉去面另外一個組,說缺人,我一開始是不想去的,但還是同意了面試

一面

聊天聊到了我現在的實習,於是問了我點Go相關的

在公司都寫什麼東西了
ConcurrentHashMap如何保持一致性。我說全域性大鎖,他說注意效能問題。然後我說能給點提示嗎?他說如果這個HashMap陣列特別長呢?我問那可不可以分段加鎖?他說可以。後來我回去查了查老版本的Java真的是用的分段加鎖,我可真機智
slice瞭解嗎,我說暫時沒用到過。被“嘲諷”了,他說在位元組的節奏會快很多,你過來學兩三天就要幹活了。
Goroutine為啥輕量
程式執行緒相關的,問的比較深入。他說:你剛才提到了Goroutine對於作業系統是透明的是吧,那麼作業系統如何向某個Goroutine傳送時鐘中斷呢?如果不能傳送如果有某個Goroutine一直執行怎麼辦?這個我不太會,他說沒事,回去查查
HTTPS握手,我說不了解握手,簡單地說了對稱加密演算法和非對稱加密演算法
ARP協議是什麼,我說還沒學到IP層,不知道
然後就開始做題了。感覺這個組面的基礎知識比較多,而面的演算法都很簡單

兩個排好序的連結串列排序並去重,我一邊講思路一遍寫。tips:寫題的時候一定要和麵試官說明自己的思路,不然面試官不知道你在幹什麼
就這一道題
我問了他們組是做什麼的

二面

這時我經歷過的最難受的一次面試,面的東西我基本全沒答出來
而且面的時候我的電腦當機了,趕緊借室友的電腦面的,耽誤了五分鐘,回去發現面試官還在等我

HTTPS怎麼握手,我說不知道,他說以前不是問過你嗎?我才知道他們有記錄的,就說忘了去查了(後來面完去查了
ARP解析,我恰好下午看書看到那,就回答出來了,他說你是回去看了嗎?我說我只是恰好學到這。。
Cookie瞭解嗎。我把Cookie和session記反了,說cookie是存在伺服器端的,他說你確定?我說emmmm…(後來回去一查這麼簡單的問題都沒答對他居然放我過了。。
他說之前問過你的,你有沒有回去查過哪些?我就答上次的那個Goroutine相關的問題,說Goroutine之間是協作式排程,如果某一個Goroutine一直在佔用CPU而不阻塞那麼他是不會讓出去的(這是舊版本的特性),他說那這樣的情況就一直佔著?不能強行執行排程嗎?我說好像是的。後來我回去看了看最新版本的特性,發現可以搶佔式排程了。。
Go如何利用多核效能?不知道。(也是回去查,學到了GMP模型,一開始會分配GOMAXPROCS個Processor
設計一個秒殺系統?不會不會不會
做題吧

荷蘭國旗問題。這個我做過,但時間久遠,現場做的時候還是做了挺久的,邊做邊想肯定去不了自己了,在B站實習也挺好的/(ㄒoㄒ)/~~
他說你等十分鐘三面吧,我Σ(っ °Д °;)っ,居然還有三面

三面

HashMap擴容。所以我發現他們真的很愛問之前你沒答上來的東西。我說不會。。他說沒事你自己設計一個,然後我就自己設計了一個,他指出了不足,我就又接著改,改了好幾個版本他說行
設計一個排程系統。我用的多級動態優先順序佇列+堆,作業系統課剛講過的
他似乎問了不止兩個問題,但我有些記不得了

演算法:

最大子序和。我說之前問過了,換一個吧(當時我好呆啊,萬一換一個我不會咋辦(╯‵□′)╯︵┻━┻
矩陣內的最短路徑,只能向下或向右走。這個比較簡單,一個DP搞定
三面結束

HR面

(不是和我對接的HR)
HR來勢洶洶,語速很快,期間跟我聊了專案,性格等等好多東西,勸我如果想工作的話儘早脫離學校的環境等等。。然後說你沒有工程開發的經驗,我們北京這邊北航和北郵的學生來的時候都有相關開發經驗的,他們上手會很快。我一聽這不是要把我給拒了嗎,趕緊說我在B站實習了hhh因為B站的技術棧和位元組的技術棧很像(都是Go)我上手也會很快的blabla,她聽了很開心,說你等通知吧!但其實我上手會很慢(●’◡’●)

寫在最後

最後提供免費的Java架構學習資料,學習技術內容包含有:Spring,Dubbo,MyBatis, RPC, 原始碼分析,高併發、高效能、分散式,效能優化,微服務 高階架構開發等等。
在這裡插入圖片描述
還有Java核心知識點+全套架構師學習資料和視訊+一線大廠面試寶典+面試簡歷模板可以領取+阿里美團網易騰訊小米愛奇藝快手嗶哩嗶哩面試題+Spring原始碼合集+Java架構實戰電子書。有需要的朋友點選這裡備註csdn自行下載即可,誠意滿滿等你來拿,希望對你們有幫助!

相關文章