面試必看!靠著這份字節(jié)和騰訊的面經(jīng)决侈,我成功拿下了offer螺垢!

準(zhǔn)備

敲定了方向和目標(biāo)后就開始系統(tǒng)準(zhǔn)備,主要分為以下幾個方面來準(zhǔn)備。

算法題

事先已經(jīng)看過別人的社招面經(jīng)知道頭條每輪技術(shù)面都有算法題枉圃,而這一塊平時練習(xí)的比較少功茴,校招時刷的題也忘記了很多。因此系統(tǒng)復(fù)習(xí)的時候算法題還是花了比較多時間的孽亲。先是快速刷完了劍指 offer坎穿,這個校招時已經(jīng)刷過兩邊了,因此現(xiàn)在刷起來會相對快一些返劲。然后就是啃 LeetCode 的題了玲昧,LeetCode 的題比較多,想在短短幾周內(nèi)刷完基本是不可能的篮绿,因此我主要按照類型去刷孵延,每個類型刷幾道就會比較有感覺了。比如鏈表的題優(yōu)先考慮遞歸和雙指針來解決搔耕,棧和隊(duì)列的題優(yōu)先考慮用兩個椣对或隊(duì)列來解決,樹的題基本都是遞歸等弃榨。不過數(shù)組和字符串的題一般比較靈活,這種題只能盡量多刷了梨睁。平時要上班刷題也不方便鲸睛,我采用的方法就是看題,用手機(jī)打開 LeetCode 的網(wǎng)站坡贺,看完題目后直接想解決方案官辈,腦子里大概捋一下代碼怎么寫,能想到的就過遍坟,想不出的就看看別人的解法拳亿,用這個方法刷起來就很快。用這種方法你可能會擔(dān)心面試時題寫不完整愿伴,其實(shí)不用太擔(dān)心肺魁,因?yàn)槊嬖嚨臅r候面試官看你寫的核心思路是正確的,邊界處理是對的基本就過了隔节,面試時間比較有限鹅经。

理論基礎(chǔ)

基礎(chǔ)這一塊主要以快速復(fù)習(xí)為主,主要是語言(我主要用C++怎诫,所以復(fù)習(xí)C++)瘾晃、操作系統(tǒng)和網(wǎng)絡(luò)編程。校招這一塊會問題的比較多幻妓,社招這一塊問的比較少蹦误,但是如果這一塊打不上來就比較尷尬了。語言就不說了,這一塊大家應(yīng)該都知道會考些什么强胰,校招的時候畢竟都瘋狂準(zhǔn)備過舱沧。操作系統(tǒng)就看內(nèi)存管理、進(jìn)程管理和文件系統(tǒng)哪廓,一般虛擬內(nèi)存問的多狗唉。網(wǎng)絡(luò)編程這塊就包括 TCP/IP 協(xié)議,HTTP協(xié)議涡真,網(wǎng)絡(luò)安全三個方面分俯。TCP/IP主要就是三次握手,四次揮手哆料,TIME_WAIT 的作用等這些掣准簦考的題了。HTTP 協(xié)議考察 HTTP 協(xié)議的返回碼东亦、HTTP 的方法等杏节。需要特別指出的是 HTTPS 加密的詳細(xì)過程要非常透徹,不然容易產(chǎn)生一種感覺好像都清楚了典阵,但是一問就有點(diǎn)說不清楚奋渔。最后就是網(wǎng)絡(luò)安全,主要考察也是 WEB 安全壮啊,包括XSS嫉鲸,CSRF,SQL注入等歹啼。

后端技術(shù)

這里的后端技術(shù)主要指工作中要用到的一些基礎(chǔ)組件玄渗,一些常見的后端架構(gòu)設(shè)計(jì)。主要準(zhǔn)備了MySQL狸眼、Redis藤树、消息隊(duì)列、zookeeper拓萌、分布式系統(tǒng)架構(gòu)設(shè)計(jì)和docker岁钓。MySQL 主要看了極客時間的 《MySQL 45講》,關(guān)于事務(wù)司志、索引甜紫、鎖以及 binlog 和 redolog 都講的非常好,也是面試最愛考的骂远,除此之外對數(shù)據(jù)庫的讀寫分離囚霸、分庫分表也要掌握。沒有任何利益相關(guān)激才,決不是打廣告拓型。Redis 主要看了《Redis 的設(shè)計(jì)與實(shí)現(xiàn)》额嘿,然后自己再總結(jié)了一下 Redis 的使用場景,以及 Redis 實(shí)現(xiàn)分布式鎖基本 Redis 就沒有問題了劣挫。消息隊(duì)列的開源軟件比較多册养,我主要選擇 Kafka 來學(xué)習(xí),主要看官網(wǎng)文檔压固,極客時間的《Kafka 核心技術(shù)與實(shí)戰(zhàn)》球拦,和一些技術(shù)文章等。不過極客時間的《Kafka 核心技術(shù)與實(shí)戰(zhàn)》帐我,我覺得講的比較一般坎炼,不是很建議。分布式系統(tǒng)的就準(zhǔn)備CAP理論拦键、BASE理論谣光、限流、熔斷芬为、一致性***算法萄金、主從架構(gòu)、集群架構(gòu)媚朦、異地多活氧敢、負(fù)載均衡、分層架構(gòu)询张、微服務(wù)等福稳。

深挖項(xiàng)目

沒有參與開源項(xiàng)目的經(jīng)驗(yàn),工作中做的項(xiàng)目也很一般瑞侮,項(xiàng)目這塊我實(shí)在沒什么太多拿的出手的,不過還是要挖掘一下鼓拧,畢竟這一塊是逃不掉半火。我說幾個我思考的點(diǎn)吧:

  1. 找項(xiàng)目中相對而言具有亮點(diǎn)的地方。比如我用 redis 實(shí)現(xiàn)了一個延時隊(duì)列季俩,然后對這個延時隊(duì)列我通過分片來解決瓶頸钮糖,通過分發(fā)來加快處理速度。
  2. 找項(xiàng)目中復(fù)雜的地方酌住。如果你做的項(xiàng)目中有復(fù)雜的地方店归,即使不是你做的,也可以拿來說酪我,前提是你要搞得非常清楚來消痛。
  3. 量化指標(biāo)。一個接口原來有性能問題都哭,比如你做了一個小的優(yōu)化秩伞,將其 TP99 的耗時從原來的 500ms 優(yōu)化至多少 200ms逞带。
  4. 賦能整個團(tuán)隊(duì)。在開發(fā)業(yè)務(wù)的過程中肯定會遇到一些重復(fù)的工作纱新,或者可以復(fù)用的服務(wù)展氓。你可以開發(fā)了某個工具或者服務(wù)化了某個功能推廣到了全組使用,給公司創(chuàng)造了價值脸爱。

Shopee

一面

  • mysql 有那些存儲引擎遇汞,有哪些區(qū)別
  • mysql 索引在什么情況下會失效
  • innodb 與myisam 的區(qū)別?
  • mysql 的索引模型
  • mysql 主從同步怎么搞的簿废?分哪幾個過程空入?如果有一臺新機(jī)器要加到從機(jī)里,怎么個過程捏鱼。
  • 樂觀鎖與悲觀鎖的區(qū)別执庐?
  • binlog 日志是 master 推的還是 salve 來拉的?
  • redis 持久化有哪幾種方式导梆,怎么選轨淌?
  • redis 主從同步是怎樣的過程?
  • redis 的 zset 怎么實(shí)現(xiàn)的看尼?
  • redis key 的過期策略
  • hashmap 是怎樣實(shí)現(xiàn)的递鹉?
  • tcp 的握手與揮手
  • select 和 epoll的區(qū)別
  • http與https的區(qū)別,加密怎么加的藏斩?
  • raft算法和zk選主算法
  • Kafka 選主怎么做的躏结?
  • kafka 與 rabbitmq區(qū)別
  • kafka 分區(qū)怎么同步的
  • kafka 怎么保證不丟消息的
  • kafka 為什么可以扛住這么高的qps
  • http各種返回碼,401和406啥區(qū)別狰域?
  • redis 哨兵和集群
  • kafka partition broker consumer consumer group topic 等都是啥關(guān)系媳拴?
  • 兩個單向鏈表,返回求和后的鏈表結(jié)構(gòu)兆览,例如2->3->1->5屈溉,和3->6,結(jié)果返回2->3->5->1

二面

二面沒什么好說的抬探,和面試聊人生去了子巾,我以為是要涼的節(jié)奏,但是卻拿到了offer小压。

三面

HR 面

騰訊

騰訊面試提前1天和提前一個小時都會發(fā)短信提示线梗。去的騰訊濱海大廈面試,大樓的現(xiàn)代化程度很高怠益,不過需要提醒一下的是仪搔,騰訊的濱海大廈分為南塔和北塔。我去的時候就上錯樓了溉痢,需要下到4樓重新?lián)Q成電梯僻造。

一面

筆試

  • 微服務(wù)的特點(diǎn)憋他,如何實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)和負(fù)載均衡
  • c++內(nèi)存管理
  • time_wait在哪一端產(chǎn)生,作用是什么
  • 程序crash如何定位
  • 服務(wù)性能問題如何定位
  • 兩個排序數(shù)組找中位數(shù)
  • 就數(shù)字n的平方根
  • 設(shè)計(jì)一個算法髓削,抽獎次數(shù)越多中獎概率就越高
  • MySQL 如何分析一條語句的執(zhí)行過程竹挡。delete from t1 limit 3和delete from t1的區(qū)別?

面試

  • 問項(xiàng)目
  • 跳臺階
  • 數(shù)組中奇數(shù)個元素
  • 一棟樓有n層立膛,不知道雞蛋從第幾層扔下去會碎揪罕,用最少的次數(shù)找出剛好會碎的樓層
  • 動態(tài)規(guī)劃與貪心有什么區(qū)別
  • redis數(shù)據(jù)結(jié)構(gòu)的底層實(shí)現(xiàn)
  • redis如何實(shí)現(xiàn)高可用
  • 負(fù)載均衡算法有哪些
  • 服務(wù)發(fā)現(xiàn)是怎么實(shí)現(xiàn)的
  • 熔斷是怎么實(shí)現(xiàn)的
  • id生成器怎么實(shí)現(xiàn)的,如何實(shí)現(xiàn)全局遞增
  • 協(xié)程和線程的區(qū)別
  • 進(jìn)程間通訊方法
  • 平時逛哪些論壇宝泵,研究哪些算法
  • paxos算法好啰,這個算法我說不清楚,然后說了raft算法
  • gdb怎么切換線程
  • 如何判斷一個圖是否有環(huán)
  • 介紹一下緩存
  • 查看 CPU 的命令和磁盤 IO 的命令

二面

  • 項(xiàng)目的系統(tǒng)架構(gòu)畫一下
  • 如果用戶量上漲怎么優(yōu)化
  • 負(fù)載均衡的加權(quán)輪詢算法怎么實(shí)現(xiàn)
  • 背包問題
  • 貝葉斯的概率學(xué)原理
  • 分詞算法
  • 連續(xù)整數(shù)求和(leetcode 第 829 題)儿奶,要求時間復(fù)雜度小于O(N)

總結(jié)

騰訊二面面完我就知道涼了框往。動態(tài)規(guī)劃非要寫出遞推公式,因?yàn)槲乙恢倍际怯脛討B(tài)規(guī)劃表的思路來解題闯捎,所以這個地方?jīng)]有答好椰弊。后面又問貝葉斯和分詞算法,一點(diǎn)都不會(我的內(nèi)心:我是來面后臺的瓤鼻,又不是面算法的)秉版。最后一道算法題只能想出 O(N) 復(fù)雜度的,面試官一定要小于 O(N) 的茬祷,答不上來清焕。這道題是 leetcode hard 級別的難度,所以沒有刷祭犯。不過后面去看可能也沒有那么難秸妥,只是這種通過數(shù)學(xué)公式的特點(diǎn)來解題往往容易被忽略了∥执郑總之筛峭,騰訊的一面算是中規(guī)中矩,二面確實(shí)讓我有點(diǎn)手足無措陪每。之前看網(wǎng)上的說法是騰訊算法題考的比較少,可能還是要分部門吧镰吵,我這次面試的是騰訊視頻檩禾,二面基本上全是考算法。還有大部分面經(jīng)都說疤祭,算法題很少考 leetcode hard 級別盼产,這個我也要表示懷疑了,因?yàn)轵v訊和后面的頭條都考了 hard 級別的勺馆。所以刷題時不能完全跳過 hard 級別的題戏售。那有什么題不會考呢侨核?我認(rèn)為是描述起來很復(fù)雜的題面試時不會考,因?yàn)槊嬖嚂r間比較緊灌灾,如果光時把題看懂都要解釋半天的搓译,這種是不太會考的,比如那個 LeetCode 上買股票的題锋喜。

字節(jié)跳動

一面

  • 問項(xiàng)目
  • 任務(wù)系統(tǒng)怎么保證任務(wù)完成后發(fā)獎一定成功
  • zset 延時隊(duì)列怎么實(shí)現(xiàn)的
  • redis 數(shù)據(jù)結(jié)構(gòu)有哪些些己?分別怎么實(shí)現(xiàn)的?
  • redis 的持久化
  • mysql 的索引
  • 一個無序數(shù)組找其子序列構(gòu)成的和最大嘿般,要求子序列中的元素在原數(shù)組中兩兩都不相鄰

二面

  • Redis 的 ZSET 怎么實(shí)現(xiàn)的段标? 盡量介紹的全一點(diǎn),跳躍表加哈希表以及壓縮鏈表
  • Redis 的 ZSET 做排行榜時炉奴,如果要實(shí)現(xiàn)分?jǐn)?shù)相同時按時間順序排序怎么實(shí)現(xiàn)逼庞? 說了一個將 score 拆成高 32 位和低 32 位,高 32 位存分?jǐn)?shù)瞻赶,低 32 位存時間的方法赛糟。問還有沒有其他方法,想不出了
  • MySQL 事務(wù)的四個隔離級別共耍? 先說了四個級別的區(qū)別虑灰,然后說了每個級別可能產(chǎn)生的問題
  • binlog 日志和 redolog 日志清楚嗎? 說了兩個日志的作用以及兩階段提交
  • C++ 的動態(tài)多態(tài)怎么實(shí)現(xiàn)的痹兜?
  • C++ 的構(gòu)造函數(shù)可以是虛函數(shù)嗎穆咐?
  • 缺失的第一個正數(shù)(leetcode第41題)
  • linux 系統(tǒng)里,一個被打開的文件可以被另一個進(jìn)程刪除嗎字旭?
  • 一個 10M 大小的 buffer 里存滿了數(shù)據(jù)对湃,現(xiàn)在要把這個 buffer 里的數(shù)據(jù)盡量發(fā)出去,可以允許部分丟包遗淳,問是用TCP好還是UDP好拍柒?為什么?
  • 一個完整的 HTTP 請求會涉及到哪些協(xié)議屈暗?

三面

  • 問項(xiàng)目
  • redis 的 ZSET 是怎么實(shí)現(xiàn)的拆讯?
  • 讓你設(shè)計(jì)一個限流的系統(tǒng)怎么做? 令牌桶
  • 讓你設(shè)計(jì)一個延時任務(wù)系統(tǒng)怎么做 說了兩個方案养叛,一個是使用 redis 的 ZSET 來實(shí)現(xiàn)种呐,考慮分片來抗高并發(fā),使用 redis 的持久化來實(shí)現(xiàn)落地弃甥,使用 redis 的哨兵實(shí)現(xiàn)故障轉(zhuǎn)移爽室。 一個是使用時間輪的方法。
  • 現(xiàn)有一個隨機(jī)數(shù)生成器可以生成0到4的數(shù)淆攻,現(xiàn)在要讓你用這個隨機(jī)數(shù)生成器生成0到6的隨機(jī)數(shù)阔墩,要保證生成的數(shù)概率均勻嘿架。
  • 有 N 枚棋子,每個人一次可以拿1到 M 個啸箫,誰拿完后棋子的數(shù)量為0誰就獲勝∷时耄現(xiàn)在有1000顆棋子,每次最多拿8個筐高,A 先拿搜囱,那么 A 有必勝的拿法嗎?第一個人拿完后剩余棋子的數(shù)量是8的倍數(shù)就必勝柑土,否則就必輸蜀肘。
  • 給出一棵二叉樹的根節(jié)點(diǎn),現(xiàn)在有這個二叉樹的部分節(jié)點(diǎn)稽屏,要求這些節(jié)點(diǎn)最近的公共祖先扮宠。

四面

HR 面

總結(jié)

頭條4輪面試都是視頻面的,視頻面試體驗(yàn)其實(shí)還是挺好的狐榔,坐在家里面試我會更加放松一些坛增,這樣腦子也靈活一些。人一緊張腦子就轉(zhuǎn)不動了薄腻。頭條的3輪技術(shù)面都問了zset的實(shí)現(xiàn)收捣,ZSET的實(shí)現(xiàn)可以好好看看源碼怎么實(shí)現(xiàn),這樣說的時候有更多東西可以說庵楷,不是說一個跳躍表就完事了罢艾。還有一點(diǎn)就是遇到不會的邏輯題或者算法題不要放棄,問問面試官可不可以提示一下尽纽。如果能在面試官的慢慢提示下能完成這道題咐蚯,也是會被認(rèn)可的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末弄贿,一起剝皮案震驚了整個濱河市春锋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌差凹,老刑警劉巖期奔,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異危尿,居然都是意外死亡能庆,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門脚线,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人弥搞,你說我怎么就攤上這事邮绿∏裕” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵船逮,是天一觀的道長顾腊。 經(jīng)常有香客問我,道長挖胃,這世上最難降的妖魔是什么杂靶? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮酱鸭,結(jié)果婚禮上吗垮,老公的妹妹穿的比我還像新娘。我一直安慰自己凹髓,他們只是感情好烁登,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蔚舀,像睡著了一般饵沧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赌躺,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天狼牺,我揣著相機(jī)與錄音,去河邊找鬼礼患。 笑死是钥,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的讶泰。 我是一名探鬼主播咏瑟,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼痪署!你這毒婦竟也來了码泞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤狼犯,失蹤者是張志新(化名)和其女友劉穎余寥,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體悯森,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宋舷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了瓢姻。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片祝蝠。...
    茶點(diǎn)故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出绎狭,到底是詐尸還是另有隱情细溅,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布儡嘶,位于F島的核電站喇聊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蹦狂。R本人自食惡果不足惜誓篱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望凯楔。 院中可真熱鬧窜骄,春花似錦、人聲如沸啼辣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鸥拧。三九已至党远,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間富弦,已是汗流浹背沟娱。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留腕柜,地道東北人济似。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像盏缤,于是被迫代替她去往敵國和親砰蠢。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評論 2 355