廣州網(wǎng)站建設(shè)360元陜西seo優(yōu)化
除了最新的面經(jīng)分享,還有字節(jié)大佬的求職面試答疑,告訴你關(guān)鍵問題是什么?少走彎路。**另外本文也匯總了6份大廠面試題:字節(jié)、騰訊、小米、騰訊云、滴滴、小米游戲。**希望對大家有幫助。
前言
昨天我的交流群里,有位寶藏群友分享了自己的面試經(jīng)歷:一天約了4個線上面試,收獲滿滿。
為大家分享了面試題和每個公司給出的薪酬范圍。
簡單說下這位群友的情況:3年開發(fā)經(jīng)驗,最近2年做Go語言開發(fā),還有1年Java/PHP工作經(jīng)驗。手撕CSAPP選手,每天打卡分享手寫的學(xué)習筆記。
注意:是每天手寫筆記學(xué)習!每天+手寫!
也有群友反饋,有人海投200多份簡歷沒人回復(fù),boss直聘上都是已讀不回。對比寶藏群友一天約4個面試可以說是云泥之別。
很重要的一個原因,就是簡歷不行。或者你海投的公司都不靠譜,如果你海投200家都是已讀不回,大概率不是這200家公司的問題…
群友面經(jīng)分享
再次感謝寶藏群友的分享,給了大家刷題的方向、市場的薪酬行情、更重要的是給了大家信心。
在求職市場哀鴻遍野的情況下,還能做到一天能約到4個面試,不說別人,起碼給了我很大的信心,對市場還是看好的。(如果這篇文章能給10個人帶來信心,我就心滿意足了)
(相同的事情,不同的人看會有不同的反饋:比如對于這件事情我是看到了市場的信心,還是有不少公司在招聘的,并且待遇不差,要求確實不低,沒有像網(wǎng)傳中說只讀不會連面試機會都沒有那么悲觀;有的群友看到面試題的反饋是太卷,會的不多;有的群友看到的反饋是找開發(fā)崗位,Docker CNI 的實現(xiàn)都要考嗎…)
20K-30K 深圳
Docker 底層、多階段構(gòu)建、原子指令你怎么理解、CSP和Actor分布式模型的區(qū)別、內(nèi)存對齊、Channel 和select的基本用法、賦值你認為有多少條匯編指令、比較出名的開源項目pr、Redis持久化、GMP模型、一致性算法
13-20K * 13 深圳
3個算法題,暴力1道,2道有思路,一個貪心、一個動態(tài)規(guī)劃、一個冒泡。聊異步、業(yè)務(wù)、持久化
13-20K * 13 廈門
TCP 粘包怎么解決、同步控制 waitgroup 、數(shù)據(jù)庫索引優(yōu)化、TCP 如何實現(xiàn)可靠性、隊列,樹,棧的應(yīng)用場景和區(qū)別、TCP 在 linux 中一些參數(shù)的含義、一些十進制轉(zhuǎn)換二進制、十六進制、如何定位死鎖,鏈表簡單題
16-20K 上海
戰(zhàn)爭迷霧怎么實現(xiàn)、共識算法、Channel、Make和New的區(qū)別、GMP、數(shù)組類型算法、UDP實現(xiàn)可靠協(xié)議、分布式模型、Panic沒被Recover怎么處理、切片擴容、Docker CNI 的實現(xiàn)、數(shù)據(jù)落盤怎么做的、Lua
總結(jié)
看到這里大家心里應(yīng)該有個數(shù)了,可以看看自己的期望薪資,再看看目前市場上考察的這些知識點,查漏補缺。
也歡迎大家在CSDN私信我,或者關(guān)注我的公眾號 程序員升職加薪之旅,后面會持續(xù)更新面試題、面試復(fù)盤相關(guān)的文章,希望對大家有幫助,更歡迎大家的投稿分享。
需要做簡歷指導(dǎo)的也可以關(guān)注公眾號,加我微信。
大廠面經(jīng)
受高啟強的影響,我也在讀《孫子兵法》,分享這段話給大家:求其上,得其中;求其中,得其下,求其下,必敗。
映射一下目前互聯(lián)網(wǎng)的就業(yè)市場,道理簡單明了:如果你想進中廠,就要做進大廠的準備。如果你想找到月薪1W+的工作,就需要做月薪1W5+的準備。如果你的目標就是找到工作,起碼要做沖洗中小廠的準備。如果你的目標就是找個小公司混日子,大概率找不到工作。
為了更好的幫助到大家,我還整理了網(wǎng)絡(luò)上很有價值的大廠面經(jīng):字節(jié)、騰訊、滴滴、騰訊云、小米、小米游戲。
希望對大家有幫助,建議收藏,并且轉(zhuǎn)發(fā)給好朋友。
下面先分享一下我 學(xué)習小圈子 里字節(jié)嘉賓關(guān)于求職面試的答疑,大廠更看重的是什么? 給大家指指方向,少走彎路。
有問必答
提問
大佬好,最近我要去面試試水了,想問一下 有沒有關(guān)于java或者go遇到的生產(chǎn)案例分享 最好是關(guān)于jdk或者第三方包的bug,容易加分。感謝!
回答
你是面校招還是社招?一般面試官會根據(jù)你的簡歷中項目經(jīng)歷、實現(xiàn)細節(jié)來展開逐層遞進,你說的生產(chǎn)案例最好還是自己實戰(zhàn)經(jīng)歷過的,不然很容易就發(fā)現(xiàn)不是你的項目或者會被打上項目參與不深入的標簽。
每一次面試都盡量準備充分,不要抱著水水的心態(tài),大公司面試都會留痕和面評的,如果你是想豐富下面試經(jīng)驗,建議你先找一些小公司或者不太想去的公司面一面找找感覺,自己心儀的公司和崗位一定要準備充分再去發(fā)起面試流程!
星友
我是屬于社招,一般面試官會問處理過的最亮的技術(shù)點,目前是游戲平臺后端開發(fā) 但實話實說 所用技術(shù)和閃光點太普通。
不是項目造假的意思,就是準備幾個生產(chǎn)上處理過的幾個難度較高的技術(shù)問題
嘉賓
建議你可以仔細盤一盤負責項目的文檔、代碼等資源,即使很多東西不是從0到1自己做的,也可以借鑒和領(lǐng)悟下其中的技術(shù)實現(xiàn)細節(jié);平時也可以多寫寫技術(shù)文章,輸出些自己工作內(nèi)容中有技術(shù)特色的地方。
星友
我負責的項目就是我從0到1弄好的,包括文檔和代碼,里面確實沒有拿高薪的技術(shù)亮點。
嘉賓
技術(shù)亮點是客觀的項目經(jīng)歷,除非面試官也做過類似東西,能和你產(chǎn)生互動否則是不太感興趣和深入聊的,技術(shù)棧是共同語言也便于考察個人技術(shù)能力,面試的時候也要學(xué)會主導(dǎo)話題,揚長避短多聊自己的優(yōu)勢點。說到“拿高薪”,這里說一句大白話:有多大本事拿多少錢。能力和薪資是正相關(guān)匹配的,一家公司招聘人才的能力模型會參考專業(yè)知識、工作閱歷、個人性格等多方面,而面試的招聘過程雙向是有信息差的,最終影響你薪酬水平的是面試結(jié)果(帶有信息差的能力評價)+ 你當前的薪資水平、職級(自身當前的社會客觀能力反饋)+ HR可操作的漲幅空間。
星友
理解,謝謝大佬的誠懇的解答,我還是從技術(shù)棧下功夫,這樣和面試官的共鳴會高一些,也不再執(zhí)迷于某個技術(shù)亮點。
嘉賓
不客氣,加油!技術(shù)棧扎實絕對沒問題💪
重點干貨已經(jīng)加粗標記了,上面這個問答建議再看一遍,很經(jīng)典的問題。
以下面經(jīng)來自網(wǎng)絡(luò),感謝大佬們的分享,非本人,我只是做了面經(jīng)的搬運工,希望對大家有幫助。
字節(jié)面經(jīng)
一面
自我介紹+算法題:
- https://leetcode-cn.com/problems/find-peak-element/
- 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/
問答
- 索引,倒排索引,切詞,如何根據(jù) doc id 有沒有出現(xiàn)某個 token
- 服務(wù)高可用是怎么做的
- MySQL 可重復(fù)讀、讀提交區(qū)別、原理
- 爬蟲 URL 去重,設(shè)計存儲結(jié)構(gòu)(FST,前綴樹+后綴樹) MySQL (a,b,c) 索引,幾條 SQL 走索引的情況
- 思考題:概率 p 生成 0,1-p 生成 1,如何 1/2 概率生成 1
二面
算法題:
- https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/
- https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/
- https://leetcode-cn.com/problems/coin-change-2/
技術(shù)問題
- 講一下 es 索引的過程
- 切詞怎么切,切詞算法,降噪
- 讓你帶應(yīng)屆生,怎么帶,
- 有什么工程經(jīng)驗可以分享
- Redis 緩存淘汰有哪些
三面
自我介紹
算法題:
- https://leetcode-cn.com/problems/first-missing-positive/
技術(shù)面
- 文章下面的評論,按點贊數(shù)排序,SQL 怎么寫
- 把所有評論放到內(nèi)存里,怎么設(shè)計數(shù)據(jù)結(jié)構(gòu),存儲并排序
- select * 會有什么問題
- 緩存熱 key 怎么解決
- 職業(yè)發(fā)展
- 領(lǐng)導(dǎo)如何評價你
- 項目難點,亮點
滴滴面經(jīng)
一面
- 介紹項目
- 問我為什么選擇GO,看我有Java從業(yè)經(jīng)歷。
- 介紹一下java 和 go 區(qū)別,我猜是讓我說一些他們的不同點,go 比java 哪里好。我說了一些 特性
3.1 問我協(xié)程比進程好在哪里? 我自己順便說了進程線程 協(xié)程三者關(guān)系 4. 問我想從事什么 - 項目中有bloom介紹了一下怎么使用的,精度,損失
- GPM模型
- redis使用模式 主從 哨兵 巴拉巴拉
- 接著聊項目,然后問了算法
- 漸進式的聊面試,很輕松
- 問我能不能接受看php? 反問時候,聊了一下GORM,應(yīng)用情況。他們的go-spring,還有他們的夜鶯系統(tǒng)。因為看過一點點所以想問問。有培養(yǎng)體系,教我如何寫GO(這個我很欣慰),說有大佬內(nèi)部課程。
二面
- 自我介紹(面試官也不看我,一臉嚴肅我特害怕。然后自我介紹磕磕絆絆的)
- 問我看源碼嗎?
- 問了問GC 發(fā)展史,都怎么玩的 每次優(yōu)化了啥
- 問了問我go 內(nèi)存 優(yōu)化了那些東?(這題我忘了咋問的了)
- 問了一下我項目里nodejs 升級為 java 為啥會快了那么多。 6.問了紅黑樹特性,哪個數(shù)據(jù)結(jié)構(gòu)用到了。我介紹了一下 紅黑樹 一些特性 比如 平均查找時間 低 插入刪除需要 左旋右旋調(diào)平衡。 我想到 java里 hashmap 用到了這個結(jié)構(gòu) 7.問了一下map的底層結(jié)構(gòu) 順便介紹了一下 sync map
- 找出兩個大文件交集
- 算法 leetcode 兩棵樹 b 是 a子集那道題思路 怎么做 dfs 然后比較 值和 指針
- 聊了一下 我的項目 召回相關(guān)的 和 nodejs java 遷移 效率提升問題
- 聊了一下 go-spring 夜鶯 還有 didi 有個 寫sql的github 項目 想問一下應(yīng)用情況。問我能不能 接受 看看php 之類的
- 問了問我為啥離職
騰訊面經(jīng)
一面
- 算法題二選一
- https://leetcode-cn.com/problems/permutations/
- https://leetcode-cn.com/problems/sorted-merge-lcci/
- MySQL 隔離級別
- MySQL 鎖
- MySQL 存儲結(jié)構(gòu)(b+樹)
- 索引 回表 是什么
- 消息隊列,rabbitmq
- rabbitmq 如何保證可靠性(生產(chǎn)者可靠性、消費者可靠性、存儲可靠性) - rabbitmq 幾種模式
- es 索引的過程
- 線上是如何分表分庫的,用什么做分表分庫的策略,跨表查詢
- MySQL 如何同步到 es
- 線上 Redis 用的是什么模式
- 緩存熱 key 怎么辦
二面
- 介紹項目
- defer 、go 繼承,手寫快排
- 登錄流程,JWT、session、cookie
三面
- 緩存一致性
- Redis key 統(tǒng)計
- Redis 單線程,io 多路復(fù)用
- 算法題 https://www.nowcoder.com/practice/35119064d0224c35ab1ab612bffee8df
- Redis slowlog 原理
四面(面委)
- 項目為主
- tcp quick_ack 、 nodelay ,socket 編程
- 職業(yè)規(guī)劃
- 為什么換工作
五面(GM)
- 項目
- go 協(xié)程機制
騰訊云
這個面經(jīng)來源于網(wǎng)絡(luò),這位朋友主要技術(shù)方向是k8s、容器、云計算。
有服務(wù)上云的實踐經(jīng)歷,了解cicd基本流程,求知意向是容 器研發(fā)、基礎(chǔ)架構(gòu)研發(fā)、運維研發(fā)之類的(主要還是研發(fā)方向)。
項目方向:
項目的話我不多說什么,就是自己的項目細節(jié)自己肯定清楚,如果項目中不是自己做的
部分,建議不要在簡歷上寫太多,寫清楚自己做了什么,容易被摳細節(jié)問,項目一般都會摳細節(jié),特別細的那種!!!
語言棧:
因為主要語言棧是go,所以一般都比較少問python。
golang
1、gin框架路由怎么實現(xiàn)的,具體正則怎么匹配?限流中間件怎么實現(xiàn)? 2、go的slice 與數(shù)組的區(qū)別,slice的實現(xiàn)原理,源碼? 3、golang的協(xié)程調(diào)度,gpm模型。協(xié)程調(diào)度 過程中的鎖。 4、golang的channel實現(xiàn),channel有緩存和無緩存,一般會直接擼碼 (三個goroutine順序打印)。 5、golang的關(guān)鍵字defer、recover、pannic之類的實現(xiàn) 原理。 6、sync包里面的鎖、原子操作、waitgroup之類的。 7、make和new的區(qū)別, 引用類型和非引用類型,值傳遞之類的。
python
1、python多線程、多進程。 2、python的裝飾器怎么實現(xiàn)的?
操作系統(tǒng)
1、進程、線程、協(xié)程間的區(qū)別以及他們間的切換之類的,有時候會問到語言級別的協(xié) 程。 2、io復(fù)用、用戶態(tài)/內(nèi)核態(tài)轉(zhuǎn)換 3、awk命令 4、linux查看端口占用 5、top命 令,free命令中的各個參數(shù)表示什么,buff/cache都表示什么?
k8s & 容器:
1、簡單聊一下什么是云原生、什么是k8s、容器,容器與虛機相比優(yōu)勢。 2、k8s組 件,pod創(chuàng)建的過程,operator是什么? 3、docker是怎么實現(xiàn)的,底層基石 namespace和cgroup。 4、k8s的workload類型,使用場景,statefulset你們是怎么用 的? 5、limit和request,探針,一般怎么排查pod問題,查看上次失敗的pod日志。 6、sidecar是什么,怎么實現(xiàn)的? 7、pv,pvc,動態(tài)pv怎么實現(xiàn) 8、k8s的聲明式api 怎么實現(xiàn)的,informar源碼。 9、cicd,發(fā)布模式。 10、svc的負載均衡、服務(wù)發(fā)現(xiàn), ipvs與iptables。 以上基本是會被問的點(雖然有一些問題我也不是很熟),另外很多 會被問k8s的網(wǎng)絡(luò)之類的,因為我比較菜,這塊被問的比較少。
計算機網(wǎng)絡(luò):
1、tcp三次握手四次揮手,為什么不能是兩次握手,三次揮手?握手和揮手過程中的狀 態(tài)。 2、time_wait作用,為什么是2msl,close_wait作用,time_wait過多怎么辦? 3、http請求的過程,瀏覽器輸入網(wǎng)址請求過程?dns解析的詳細過程? 4、https與http 的區(qū)別,https第一次服務(wù)端回傳是否加密? 5、tcp與udp區(qū)別,tcp怎么保證可靠性。 6、http請求頭、分隔符、?連接怎么實現(xiàn)
數(shù)據(jù)庫:
1、mysql的事務(wù),事務(wù)使用場景。 2、mysql的索引,什么情況下索引失效,聚簇索引 與非聚簇索引,索引的存儲b+樹與b-樹區(qū)別。 3、join的內(nèi)外連接,最左匹配原則。 4、redis的數(shù)據(jù)結(jié)構(gòu),hmap怎么實現(xiàn)的,持久化怎么做,go操作redis的方式。 數(shù)據(jù)庫 方向有被問到,我基本沒答上來(一般都告訴他只會基礎(chǔ),開發(fā)直接使用gorm)。
數(shù)據(jù)結(jié)構(gòu)與算法:
1、倒排索引和B+樹 2、判斷鏈表是否有環(huán),時間復(fù)雜度要求0(1) 3、LeetCode上合并 區(qū)間的題 4、leetcode的股票買賣的題 5、二叉樹的最近公共祖先 6、有序數(shù)組合并 7、什么是平衡二叉樹、最小堆 8、大文件的top10問題 9、golang實現(xiàn)棧、隊列
其他:
1、git 的相關(guān)操作,合并commit,合并之類的。 2、場景設(shè)計(比較多)
小米面經(jīng)
一面
- innodb MVCC實現(xiàn)
- b+樹是怎么組織數(shù)據(jù)的,數(shù)據(jù)的順序一定是從左到右遞增的么
- ?分裂偽代碼,b+樹的倒數(shù)底層層可以?分裂么
- 合并k個有序鏈表
- redis的hashtable是怎么擴容的
- select poll epoll,epoll具體是怎么實現(xiàn)的
- GMP是怎么調(diào)度,channel是怎么收發(fā)消息的,channel的recq和g是怎么建立關(guān)系
的 - innodb二次寫是什么
- undo里面具體存的是什么
- b+樹節(jié)點具體存的是什么
- mysql一?最大能存多少數(shù)據(jù)
- myisam和innodb索引上的區(qū)別
- innodb commit之前,redo 的prepare然后binlog commit,然后redo再commit有
什么缺點?5.6之后是怎么優(yōu)化的? 14. redo和binlog的區(qū)別 - 讀鎖和寫鎖區(qū)別
二面
- 蛇形打印二叉樹
- myisam為什么不支持事務(wù),如果要支持事務(wù)要怎么做
- 函數(shù)只能返回1-7的隨機數(shù),請用這個函數(shù)返回1-5,要求平均 4. 聊項目
三面
- go的協(xié)程調(diào)度和os的線程調(diào)度有什么區(qū)別
- 只有寫鎖實現(xiàn)讀寫鎖
- go的調(diào)度是怎么實現(xiàn)的
- go的網(wǎng)絡(luò)IO為什么快?還有優(yōu)化空間么
- epoll為什么這么快,還有優(yōu)化空間么?如果要你實現(xiàn)一個網(wǎng)絡(luò)IO應(yīng)該怎么實現(xiàn)
- 設(shè)計一個每秒80萬qps的過濾器
- 過濾器用redis實現(xiàn),宕機期間數(shù)據(jù)怎么恢復(fù)
- 設(shè)計一個下單 扣減庫存的分布式應(yīng)用,請求超時了怎么辦,一直重試超時了怎么辦
- 數(shù)組A1 2和數(shù)組B2 3是一個關(guān)系圈,A能通過2找到3,數(shù)組A1 2和數(shù)組B2 3和數(shù)組
C 3 5也是一個關(guān)系圈,給一個二維數(shù)組求關(guān)系數(shù)
小米游戲面經(jīng)
一、 介紹連接池項目
- 介紹連接池常用的參數(shù),最大連接數(shù),最小存活數(shù)這些意義,為什么要有這些
- 當鏈接超過最大連接數(shù)怎么處理,等待有空閑連接還是創(chuàng)建一個繼續(xù)給出,比較兩
者的優(yōu)劣 - 連接池清理鏈接的邏輯,如何優(yōu)化的
- 當連接池中有一些鏈接不可用了怎么辦,如何保證這些連接的可用
- 當出現(xiàn)下游某個實例掛掉了,連接池應(yīng)該怎么處理
- 對比 mysql redis http 連接池的實現(xiàn)
二、 介紹負載均衡算法
- 介紹平滑負載均衡算法,實現(xiàn)
- 當出現(xiàn)下游出現(xiàn)不可用,負載均衡算法怎么處理
三、 介紹聊天室項目
- 介紹實現(xiàn)原理的,互相通信的邏輯
- 聊天室服務(wù)端如何把消息下發(fā)給用戶
- 介紹websocket包的字段
- 當有用戶掉線怎么處理
四、 redis相關(guān)
- redis的數(shù)據(jù)結(jié)構(gòu)
- 各個數(shù)據(jù)結(jié)構(gòu)的操作
- 各個數(shù)據(jù)結(jié)構(gòu)的使用場景
- 如何保證 Redis 的高可用
- 當有一個key讀取的頻率非常高怎么辦
五、 算法相關(guān)
- 介紹快速排序 優(yōu)先隊列的實現(xiàn)
總結(jié)+雞湯
就業(yè)環(huán)境再好,也有人找不到工作。
就業(yè)環(huán)境再差,也有人能找到工作。
要么學(xué)歷🐂🍺,要么技術(shù)🐂🍺,要么都🐂🍺。
如果學(xué)歷無法改變,請讓技術(shù)🐂🍺,其他的都是扯淡~
文章首發(fā)
我的文章會首發(fā)在我的公眾號:程序員升職加薪之旅,歡迎大家關(guān)注,第一時間收到最新內(nèi)容。
一起學(xué)習
我的所有文章都會首發(fā)在我的 學(xué)習小圈子 ,歡迎加入我們,一起學(xué)習進步,一起升職加薪。