一天約了4個面試,覆盤一下面試題和薪資福利

語言: CN / TW / HK

highlight: a11y-dark theme: Chinese-red


前言

昨天我的交流羣裏,有位寶藏羣友分享了自己的面試經歷:一天約了4個線上面試,收穫滿滿。

為大家分享了面試題和每個公司給出的薪酬範圍。

簡單説下這位羣友的情況:3年開發經驗,最近2年做Go語言開發,還有1年Java/PHP工作經驗。手撕CSAPP選手,每天打卡分享手寫的學習筆記。

注意:是每天手寫筆記學習!每天+手寫!

image.png

也有羣友反饋,有人海投200多份簡歷沒人回覆,boss直聘上都是已讀不回。對比寶藏羣友一天約4個面試可以説是雲泥之別。

很重要的一個原因,就是簡歷不行。或者你海投的公司都不靠譜,如果你海投200家都是已讀不回,大概率不是這200家公司的問題......

我的經驗分享

這是我之前找工作和簡歷優化的經驗總結,希望對大家有幫助:

【求職覆盤】我是怎麼做到面試一次就拿到offer的?

【簡歷優化】怎麼引導面試官提問自己準備好的問題?

【簡歷優化】如何在簡歷中最大化體現出自己的學習能力?

也歡迎大家關注我在掘金的 # 簡歷優化專欄

羣友面經分享

再次感謝寶藏羣友的分享,給了大家刷題的方向、市場的薪酬行情、更重要的是給了大家信心

在求職市場哀鴻遍野的情況下,還能做到一天能約到4個面試,不説別人,起碼給了我很大的信心,對市場還是看好的。(如果這篇文章能給10個人帶來信心,我就心滿意足了)

(相同的事情,不同的人看會有不同的反饋:比如對於這件事情我是看到了市場的信心,還是有不少公司在招聘的,並且待遇不差,要求確實不低,沒有像網傳中説只讀不會連面試機會都沒有那麼悲觀;有的羣友看到面試題的反饋是太卷,會的不多;有的羣友看到的反饋是找開發崗位,Docker CNI 的實現都要考嗎.....)

20K-30K 深圳

Docker 底層、多階段構建、原子指令你怎麼理解、CSP和Actor分佈式模型的區別、內存對齊、Channel 和select的基本用法、賦值你認為有多少條彙編指令、比較出名的開源項目pr、Redis持久化、GMP模型、一致性算法

13-20K * 13 深圳

3個算法題,暴力1道,2道有思路,一個貪心、一個動態規劃、一個冒泡。聊異步、業務、持久化

13-20K * 13 廈門

TCP 粘包怎麼解決、同步控制 waitgroup 、數據庫索引優化、TCP 如何實現可靠性、隊列,樹,棧的應用場景和區別、TCP 在 linux 中一些參數的含義、一些十進制轉換二進制、十六進制、如何定位死鎖,鏈表簡單題

16-20K 上海

戰爭迷霧怎麼實現、共識算法、Channel、Make和New的區別、GMP、數組類型算法、UDP實現可靠協議、分佈式模型、Panic沒被Recover怎麼處理、切片擴容、Docker CNI 的實現、數據落盤怎麼做的、Lua

總結

看到這裏大家心裏應該有個數了,可以看看自己的期望薪資,再看看目前市場上考察的這些知識點,查漏補缺。

也歡迎大傢俬信我,或者關注我的公眾號 程序員升職加薪之旅,後面會持續更新面試題、面試覆盤相關的文章,希望對大家有幫助,更歡迎大家的投稿分享。

需要做簡歷指導的也可以關注公眾號,加我微信。

大廠面經

受高啟強的影響,我也在讀《孫子兵法》,分享這段話給大家:求其上,得其中;求其中,得其下,求其下,必敗。

映射一下目前互聯網的就業市場,道理簡單明瞭:如果你想進中廠,就要做進大廠的準備。如果你想找到月薪1W+的工作,就需要做月薪1W5+的準備。如果你的目標就是找到工作,起碼要做沖洗中小廠的準備。如果你的目標就是找個小公司混日子,大概率找不到工作。

為了更好的幫助到大家,我還整理了網絡上很有價值的大廠面經:字節、騰訊、滴滴、騰訊雲、小米、小米遊戲。

希望對大家有幫助,建議收藏,並且轉發給好朋友。

下面先分享一下我 學習小圈子 裏字節嘉賓關於求職面試的答疑,大廠更看重的是什麼? 給大家指指方向,少走彎路。

有問必答

提問

大佬好,最近我要去面試試水了,想問一下 有沒有關於java或者go遇到的生產案例分享 最好是關於jdk或者第三方包的bug,容易加分。感謝!

回答

你是面校招還是社招?一般面試官會根據你的簡歷中項目經歷、實現細節來展開逐層遞進,你説的生產案例最好還是自己實戰經歷過的,不然很容易就發現不是你的項目或者會被打上項目參與不深入的標籤。

每一次面試都儘量準備充分,不要抱着水水的心態,大公司面試都會留痕和麪評的,如果你是想豐富下面試經驗,建議你先找一些小公司或者不太想去的公司面一面找找感覺,自己心儀的公司和崗位一定要準備充分再去發起面試流程!

羣友

我是屬於社招,一般面試官會問處理過的最亮的技術點,目前是遊戲平台後端開發 但實話實説 所用技術和閃光點太普通。

不是項目造假的意思,就是準備幾個生產上處理過的幾個難度較高的技術問題

嘉賓

建議你可以仔細盤一盤負責項目的文檔、代碼等資源,即使很多東西不是從0到1自己做的,也可以借鑑和領悟下其中的技術實現細節;平時也可以多寫寫技術文章,輸出些自己工作內容中有技術特色的地方。

羣友

我負責的項目就是我從0到1弄好的,包括文檔和代碼,裏面確實沒有拿高薪的技術亮點。

嘉賓

技術亮點是客觀的項目經歷,除非面試官也做過類似東西,能和你產生互動否則是不太感興趣和深入聊的,技術棧是共同語言也便於考察個人技術能力,面試的時候也要學會主導話題,揚長避短多聊自己的優勢點。説到“拿高薪”,這裏説一句大白話:有多大本事拿多少錢。能力和薪資是正相關匹配的,一家公司招聘人才的能力模型會參考專業知識、工作閲歷、個人性格等多方面,而面試的招聘過程雙向是有信息差的,最終影響你薪酬水平的是面試結果(帶有信息差的能力評價)+ 你當前的薪資水平、職級(自身當前的社會客觀能力反饋)+ HR可操作的漲幅空間。

羣友

理解,謝謝大佬的誠懇的解答,我還是從技術棧下功夫,這樣和麪試官的共鳴會高一些,也不再執迷於某個技術亮點。

嘉賓

不客氣,加油!技術棧紮實絕對沒問題💪

重點乾貨已經加粗標記了,上面這個問答建議再看一遍,很經典的問題。

以下面經來自網絡,感謝大佬們的分享,非本人,我只是做了面經的搬運工,希望對大家有幫助。

字節面經

一面

自我介紹+算法題: 1. https://leetcode-cn.com/problems/find-peak-element/ 2. https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/ 3. https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/

問答 1. 索引,倒排索引,切詞,如何根據 doc id 有沒有出現某個 token 2. 服務高可用是怎麼做的 3. MySQL 可重複讀、讀提交區別、原理 4. 爬蟲 URL 去重,設計存儲結構(FST,前綴樹+後綴樹) MySQL (a,b,c) 索引,幾條 SQL 走索引的情況 5. 思考題:概率 p 生成 0,1-p 生成 1,如何 1/2 概率生成 1

二面

算法題: 1. https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/ 2. https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii 4. https://leetcode-cn.com/problems/coin-change-2/

技術問題 1. 講一下 es 索引的過程 1. 切詞怎麼切,切詞算法,降噪 1. 讓你帶應屆生,怎麼帶, 1. 有什麼工程經驗可以分享 1. Redis 緩存淘汰有哪些

三面

自我介紹

算法題: 1. https://leetcode-cn.com/problems/first-missing-positive/

技術面 1. 文章下面的評論,按點贊數排序,SQL 怎麼寫 2. 把所有評論放到內存裏,怎麼設計數據結構,存儲並排序 3. select * 會有什麼問題 4. 緩存熱 key 怎麼解決 5. 職業發展 6. 領導如何評價你 7. 項目難點,亮點

滴滴面經

一面

  1. 介紹項目
  2. 問我為什麼選擇GO,看我有Java從業經歷。
  3. 介紹一下java 和 go 區別,我猜是讓我説一些他們的不同點,go 比java 哪裏好。我説了一些 特性 3.1 問我協程比進程好在哪裏? 我自己順便説了進程線程 協程三者關係 4. 問我想從事什麼
  4. 項目中有bloom介紹了一下怎麼使用的,精度,損失
  5. GPM模型
  6. redis使用模式 主從 哨兵 巴拉巴拉
  7. 接着聊項目,然後問了算法
  8. 漸進式的聊面試,很輕鬆
  9. 問我能不能接受看php? 反問時候,聊了一下GORM,應用情況。他們的go-spring,還有他們的夜鶯系統。因為看過一點點所以想問問。有培養體系,教我如何寫GO(這個我很欣慰),説有大佬內部課程。

二面

  1. 自我介紹(面試官也不看我,一臉嚴肅我特害怕。然後自我介紹磕磕絆絆的)
  2. 問我看源碼嗎?
  3. 問了問GC 發展史,都怎麼玩的 每次優化了啥
  4. 問了問我go 內存 優化了那些東⻄(這題我忘了咋問的了)
  5. 問了一下我項目裏nodejs 升級為 java 為啥會快了那麼多。 6.問了紅黑樹特性,哪個數據結構用到了。我介紹了一下 紅黑樹 一些特性 比如 平均查找時間 低 插入刪除需要 左旋右旋調平衡。 我想到 java裏 hashmap 用到了這個結構 7.問了一下map的底層結構 順便介紹了一下 sync map
  6. 找出兩個大文件交集
  7. 算法 leetcode 兩棵樹 b 是 a子集那道題思路 怎麼做 dfs 然後比較 值和 指針
  8. 聊了一下 我的項目 召回相關的 和 nodejs java 遷移 效率提升問題
  9. 聊了一下 go-spring 夜鶯 還有 didi 有個 寫sql的github 項目 想問一下應用情況。問我能不能 接受 看看php 之類的
  10. 問了問我為啥離職

騰訊面經

一面

  • 算法題二選一
    • https://leetcode-cn.com/problems/permutations/
    • https://leetcode-cn.com/problems/sorted-merge-lcci/
  • MySQL 隔離級別
  • MySQL 鎖
  • MySQL 存儲結構(b+樹)
  • 索引 回表 是什麼
  • 消息隊列,rabbitmq
  • rabbitmq 如何保證可靠性(生產者可靠性、消費者可靠性、存儲可靠性) - rabbitmq 幾種模式
  • es 索引的過程
  • 線上是如何分表分庫的,用什麼做分表分庫的策略,跨表查詢
  • MySQL 如何同步到 es
  • 線上 Redis 用的是什麼模式
  • 緩存熱 key 怎麼辦

二面

  • 介紹項目
  • defer 、go 繼承,手寫快排
  • 登錄流程,JWT、session、cookie

三面

  • 緩存一致性
  • Redis key 統計
  • Redis 單線程,io 多路複用
  • 算法題 https://www.nowcoder.com/practice/35119064d0224c35ab1ab612bffee8df
  • Redis slowlog 原理

四面(面委)

  • 項目為主
  • tcp quick_ack 、 nodelay ,socket 編程
  • 職業規劃
  • 為什麼換工作

五面(GM)

  • 項目
  • go 協程機制

騰訊雲

這個面經來源於網絡,這位朋友主要技術方向是k8s、容器、雲計算。

有服務上雲的實踐經歷,瞭解cicd基本流程,求知意向是容 器研發、基礎架構研發、運維研發之類的(主要還是研發方向)。

項目方向:

項目的話我不多説什麼,就是自己的項目細節自己肯定清楚,如果項目中不是自己做的 部分,建議不要在簡歷上寫太多,寫清楚自己做了什麼,容易被摳細節問,項目一般都會摳細節,特別細的那種!!!

語言棧:

因為主要語言棧是go,所以一般都比較少問python。

golang

1、gin框架路由怎麼實現的,具體正則怎麼匹配?限流中間件怎麼實現? 2、go的slice 與數組的區別,slice的實現原理,源碼? 3、golang的協程調度,gpm模型。協程調度 過程中的鎖。 4、golang的channel實現,channel有緩存和無緩存,一般會直接擼碼 (三個goroutine順序打印)。 5、golang的關鍵字defer、recover、pannic之類的實現 原理。 6、sync包裏面的鎖、原子操作、waitgroup之類的。 7、make和new的區別, 引用類型和非引用類型,值傳遞之類的。

python

1、python多線程、多進程。 2、python的裝飾器怎麼實現的?

操作系統

1、進程、線程、協程間的區別以及他們間的切換之類的,有時候會問到語言級別的協 程。 2、io複用、用户態/內核態轉換 3、awk命令 4、linux查看端口占用 5、top命 令,free命令中的各個參數表示什麼,buff/cache都表示什麼?

k8s & 容器:

1、簡單聊一下什麼是雲原生、什麼是k8s、容器,容器與虛機相比優勢。 2、k8s組 件,pod創建的過程,operator是什麼? 3、docker是怎麼實現的,底層基石 namespace和cgroup。 4、k8s的workload類型,使用場景,statefulset你們是怎麼用 的? 5、limit和request,探針,一般怎麼排查pod問題,查看上次失敗的pod日誌。 6、sidecar是什麼,怎麼實現的? 7、pv,pvc,動態pv怎麼實現 8、k8s的聲明式api 怎麼實現的,informar源碼。 9、cicd,發佈模式。 10、svc的負載均衡、服務發現, ipvs與iptables。 以上基本是會被問的點(雖然有一些問題我也不是很熟),另外很多 會被問k8s的網絡之類的,因為我比較菜,這塊被問的比較少。

計算機網絡:

1、tcp三次握手四次揮手,為什麼不能是兩次握手,三次揮手?握手和揮手過程中的狀 態。 2、time_wait作用,為什麼是2msl,close_wait作用,time_wait過多怎麼辦? 3、http請求的過程,瀏覽器輸入網址請求過程?dns解析的詳細過程? 4、https與http 的區別,https第一次服務端回傳是否加密? 5、tcp與udp區別,tcp怎麼保證可靠性。 6、http請求頭、分隔符、⻓連接怎麼實現

數據庫:

1、mysql的事務,事務使用場景。 2、mysql的索引,什麼情況下索引失效,聚簇索引 與非聚簇索引,索引的存儲b+樹與b-樹區別。 3、join的內外連接,最左匹配原則。 4、redis的數據結構,hmap怎麼實現的,持久化怎麼做,go操作redis的方式。 數據庫 方向有被問到,我基本沒答上來(一般都告訴他只會基礎,開發直接使用gorm)。

數據結構與算法:

1、倒排索引和B+樹 2、判斷鏈表是否有環,時間複雜度要求0(1) 3、LeetCode上合併 區間的題 4、leetcode的股票買賣的題 5、二叉樹的最近公共祖先 6、有序數組合並 7、什麼是平衡二叉樹、最小堆 8、大文件的top10問題 9、golang實現棧、隊列

其他:

1、git 的相關操作,合併commit,合併之類的。 2、場景設計(比較多)

小米麪經

一面

  1. innodb MVCC實現
  2. b+樹是怎麼組織數據的,數據的順序一定是從左到右遞增的麼
  3. ⻚分裂偽代碼,b+樹的倒數底層層可以⻚分裂麼
  4. 合併k個有序鏈表
  5. redis的hashtable是怎麼擴容的
  6. select poll epoll,epoll具體是怎麼實現的
  7. GMP是怎麼調度,channel是怎麼收發消息的,channel的recq和g是怎麼建立關係 的
  8. innodb二次寫是什麼
  9. undo裏面具體存的是什麼
  10. b+樹節點具體存的是什麼
  11. mysql一⻚最大能存多少數據
  12. myisam和innodb索引上的區別
  13. innodb commit之前,redo 的prepare然後binlog commit,然後redo再commit有 什麼缺點?5.6之後是怎麼優化的? 14. redo和binlog的區別
  14. 讀鎖和寫鎖區別

二面

  1. 蛇形打印二叉樹
  2. myisam為什麼不支持事務,如果要支持事務要怎麼做
  3. 函數只能返回1-7的隨機數,請用這個函數返回1-5,要求平均 4. 聊項目

三面

  1. go的協程調度和os的線程調度有什麼區別
  2. 只有寫鎖實現讀寫鎖
  3. go的調度是怎麼實現的
  4. go的網絡IO為什麼快?還有優化空間麼
  5. epoll為什麼這麼快,還有優化空間麼?如果要你實現一個網絡IO應該怎麼實現
  6. 設計一個每秒80萬qps的過濾器
  7. 過濾器用redis實現,宕機期間數據怎麼恢復
  8. 設計一個下單 扣減庫存的分佈式應用,請求超時了怎麼辦,一直重試超時了怎麼辦
  9. 數組A1 2和數組B2 3是一個關係圈,A能通過2找到3,數組A1 2和數組B2 3和數組 C 3 5也是一個關係圈,給一個二維數組求關係數

小米遊戲面經

一、 介紹連接池項目

  1. 介紹連接池常用的參數,最大連接數,最小存活數這些意義,為什麼要有這些
  2. 當鏈接超過最大連接數怎麼處理,等待有空閒連接還是創建一個繼續給出,比較兩 者的優劣
  3. 連接池清理鏈接的邏輯,如何優化的
  4. 當連接池中有一些鏈接不可用了怎麼辦,如何保證這些連接的可用
  5. 當出現下游某個實例掛掉了,連接池應該怎麼處理
  6. 對比 mysql redis http 連接池的實現

二、 介紹負載均衡算法

  1. 介紹平滑負載均衡算法,實現
  2. 當出現下游出現不可用,負載均衡算法怎麼處理

三、 介紹聊天室項目

  1. 介紹實現原理的,互相通信的邏輯
  2. 聊天室服務端如何把消息下發給用户
  3. 介紹websocket包的字段
  4. 當有用户掉線怎麼處理

四、 redis相關

  1. redis的數據結構
  2. 各個數據結構的操作
  3. 各個數據結構的使用場景
  4. 如何保證 Redis 的高可用
  5. 當有一個key讀取的頻率非常高怎麼辦

五、 算法相關

  1. 介紹快速排序 優先隊列的實現

總結+雞湯

就業環境再好,也有人找不到工作。

就業環境再差,也有人能找到工作。

要麼學歷🐂🍺,要麼技術🐂🍺,要麼都🐂🍺。

如果學歷無法改變,請讓技術🐂🍺,其他的都是扯淡~

一起學習

歡迎和我一起討論交流:可以在掘金私信我

我的文章首發在我的公眾號: 程序員升職加薪之旅,第一時間閲讀我的文章。

也歡迎大家關注我的掘金,點贊、留言、轉發。你的支持,是我更文的最大動力!