一天約了4個面試,覆盤一下面試題和薪資福利
highlight: a11y-dark theme: Chinese-red
前言
昨天我的交流群裡,有位寶藏群友分享了自己的面試經歷:一天約了4個線上面試,收穫滿滿。
為大家分享了面試題和每個公司給出的薪酬範圍。
簡單說下這位群友的情況:3年開發經驗,最近2年做Go語言開發,還有1年Java/PHP工作經驗。手撕CSAPP選手,每天打卡分享手寫的學習筆記。
注意:是每天手寫筆記學習!每天+手寫!
也有群友反饋,有人海投200多份簡歷沒人回覆,boss直聘上都是已讀不回。對比寶藏群友一天約4個面試可以說是雲泥之別。
很重要的一個原因,就是簡歷不行。或者你海投的公司都不靠譜,如果你海投200家都是已讀不回,大概率不是這200家公司的問題......
我的經驗分享
這是我之前找工作和簡歷優化的經驗總結,希望對大家有幫助:
也歡迎大家關注我在掘金的 # 簡歷優化專欄
群友面經分享
再次感謝寶藏群友的分享,給了大家刷題的方向、市場的薪酬行情、更重要的是給了大家信心。
在求職市場哀鴻遍野的情況下,還能做到一天能約到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. http://leetcode-cn.com/problems/find-peak-element/ 2. http://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/ 3. http://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. http://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/ 2. http://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii 4. http://leetcode-cn.com/problems/coin-change-2/
技術問題 1. 講一下 es 索引的過程 1. 切詞怎麼切,切詞演算法,降噪 1. 讓你帶應屆生,怎麼帶, 1. 有什麼工程經驗可以分享 1. Redis 快取淘汰有哪些
三面
自我介紹
演算法題: 1. http://leetcode-cn.com/problems/first-missing-positive/
技術面 1. 文章下面的評論,按點贊數排序,SQL 怎麼寫 2. 把所有評論放到記憶體裡,怎麼設計資料結構,儲存並排序 3. select * 會有什麼問題 4. 快取熱 key 怎麼解決 5. 職業發展 6. 領導如何評價你 7. 專案難點,亮點
滴滴面經
一面
- 介紹專案
- 問我為什麼選擇GO,看我有Java從業經歷。
- 介紹一下java 和 go 區別,我猜是讓我說一些他們的不同點,go 比java 哪裡好。我說了一些 特性 3.1 問我協程比程序好在哪裡? 我自己順便說了程序執行緒 協程三者關係 4. 問我想從事什麼
- 專案中有bloom介紹了一下怎麼使用的,精度,損失
- GPM模型
- redis使用模式 主從 哨兵 巴拉巴拉
- 接著聊專案,然後問了演算法
- 漸進式的聊面試,很輕鬆
- 問我能不能接受看php? 反問時候,聊了一下GORM,應用情況。他們的go-spring,還有他們的夜鶯系統。因為看過一點點所以想問問。有培養體系,教我如何寫GO(這個我很欣慰),說有大佬內部課程。
二面
- 自我介紹(面試官也不看我,一臉嚴肅我特害怕。然後自我介紹磕磕絆絆的)
- 問我看原始碼嗎?
- 問了問GC 發展史,都怎麼玩的 每次優化了啥
- 問了問我go 記憶體 優化了那些東⻄(這題我忘了咋問的了)
- 問了一下我專案裡nodejs 升級為 java 為啥會快了那麼多。 6.問了紅黑樹特性,哪個資料結構用到了。我介紹了一下 紅黑樹 一些特性 比如 平均查詢時間 低 插入刪除需要 左旋右旋調平衡。 我想到 java裡 hashmap 用到了這個結構 7.問了一下map的底層結構 順便介紹了一下 sync map
- 找出兩個大檔案交集
- 演算法 leetcode 兩棵樹 b 是 a子集那道題思路 怎麼做 dfs 然後比較 值和 指標
- 聊了一下 我的專案 召回相關的 和 nodejs java 遷移 效率提升問題
- 聊了一下 go-spring 夜鶯 還有 didi 有個 寫sql的github 專案 想問一下應用情況。問我能不能 接受 看看php 之類的
- 問了問我為啥離職
騰訊面經
一面
- 演算法題二選一
- http://leetcode-cn.com/problems/permutations/
- http://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 多路複用
- 演算法題 http://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、場景設計(比較多)
小米麵經
一面
- innodb MVCC實現
- b+樹是怎麼組織資料的,資料的順序一定是從左到右遞增的麼
- ⻚分裂虛擬碼,b+樹的倒數底層層可以⻚分裂麼
- 合併k個有序連結串列
- redis的hashtable是怎麼擴容的
- select poll epoll,epoll具體是怎麼實現的
- GMP是怎麼排程,channel是怎麼收發訊息的,channel的recq和g是怎麼建立關係 的
- innodb二次寫是什麼
- undo裡面具體存的是什麼
- b+樹節點具體存的是什麼
- mysql一⻚最大能存多少資料
- myisam和innodb索引上的區別
- innodb commit之前,redo 的prepare然後binlog commit,然後redo再commit有 什麼缺點?5.6之後是怎麼優化的? 14. redo和binlog的區別
- 讀鎖和寫鎖區別
二面
- 蛇形列印二叉樹
- myisam為什麼不支援事務,如果要支援事務要怎麼做
- 函式只能返回1-7的隨機數,請用這個函式返回1-5,要求平均 4. 聊專案
三面
- go的協程排程和os的執行緒排程有什麼區別
- 只有寫鎖實現讀寫鎖
- go的排程是怎麼實現的
- go的網路IO為什麼快?還有優化空間麼
- epoll為什麼這麼快,還有優化空間麼?如果要你實現一個網路IO應該怎麼實現
- 設計一個每秒80萬qps的過濾器
- 過濾器用redis實現,宕機期間資料怎麼恢復
- 設計一個下單 扣減庫存的分散式應用,請求超時了怎麼辦,一直重試超時了怎麼辦
- 陣列A1 2和陣列B2 3是一個關係圈,A能通過2找到3,陣列A1 2和陣列B2 3和陣列 C 3 5也是一個關係圈,給一個二維陣列求關係數
小米遊戲面經
一、 介紹連線池專案
- 介紹連線池常用的引數,最大連線數,最小存活數這些意義,為什麼要有這些
- 當連結超過最大連線數怎麼處理,等待有空閒連線還是建立一個繼續給出,比較兩 者的優劣
- 連線池清理連結的邏輯,如何優化的
- 當連線池中有一些連結不可用了怎麼辦,如何保證這些連線的可用
- 當出現下游某個例項掛掉了,連線池應該怎麼處理
- 對比 mysql redis http 連線池的實現
二、 介紹負載均衡演算法
- 介紹平滑負載均衡演算法,實現
- 當出現下游出現不可用,負載均衡演算法怎麼處理
三、 介紹聊天室專案
- 介紹實現原理的,互相通訊的邏輯
- 聊天室服務端如何把訊息下發給使用者
- 介紹websocket包的欄位
- 當有使用者掉線怎麼處理
四、 redis相關
- redis的資料結構
- 各個資料結構的操作
- 各個資料結構的使用場景
- 如何保證 Redis 的高可用
- 當有一個key讀取的頻率非常高怎麼辦
五、 演算法相關
- 介紹快速排序 優先佇列的實現
總結+雞湯
就業環境再好,也有人找不到工作。
就業環境再差,也有人能找到工作。
要麼學歷🐂🍺,要麼技術🐂🍺,要麼都🐂🍺。
如果學歷無法改變,請讓技術🐂🍺,其他的都是扯淡~
一起學習
歡迎和我一起討論交流:可以在掘金私信我
我的文章首發在我的公眾號: 程式設計師升職加薪之旅,第一時間閱讀我的文章。
也歡迎大家關注我的掘金,點贊、留言、轉發。你的支援,是我更文的最大動力!
- Go非同步任務處理解決方案:Asynq
- 一天約了4個面試,覆盤一下面試題和薪資福利
- 世界上最健康的程式設計師作息表!「值得一看」
- 8千字詳解Go1.20穩定版
- 不愧是微軟出品的工具,逆天!
- 【視訊 原始碼】登入鑑權的三種方式:token、jwt、session實戰分享
- 程式設計師副業接單做私活避坑指南
- Git操作不規範,戰友提刀來相見!
- 【簡歷優化】如何寫好專案的亮點難點?專案經歷怎麼寫最好?
- 技術男的春天:小姐姐求助&暖男分析
- 【簡歷優化】如何在簡歷中最大化體現出自己的學習能力?
- 如何快速學一門新語言?關鍵問題是什麼?
- Go WEB進階實戰:GoFrame結合電商專案深入理解Go知識點
- Go容易搞錯的知識點彙總
- 開發gRPC總共分三步
- 【答讀者問】把Go基礎學完後,是學web方向還是區塊鏈方向?
- Go WEB進階實戰:基於GoFrame搭建的電商前後臺API系統
- 給想轉Go或者Go進階同學的一些建議
- 聽了大佬們的直播,我決定卷掘金小冊了。| Flag永不倒
- 爆肝兩千字整理《Go學習路線圖》| 文末投稿送投影