在字節(jié)跳動(dòng)的實(shí)習(xí)經(jīng)歷分享 | 萬(wàn)字求職指南
我的超完整字節(jié)跳動(dòng)實(shí)習(xí)經(jīng)驗(yàn)分享!
大家好,我是魚(yú)皮。
前段時(shí)間,我收到了這樣一條短信:

原來(lái)是字節(jié)跳動(dòng)公司發(fā)來(lái)的周年慶祝福,看到這個(gè)短信,我真是太激動(dòng)了!瞬間回想起了當(dāng)年在字節(jié)跳動(dòng)實(shí)習(xí)的往事,眼淚止不住地往下流啊,好想大喊一句,爺?shù)那啻夯貋?lái)啦!

在上篇文章中,我分享了自己人生中 第一次實(shí)習(xí) 的經(jīng)歷,是我人生中的重要轉(zhuǎn)折點(diǎn),讓我確定了自己的重點(diǎn)編程學(xué)習(xí)方向 —— Java 后端開(kāi)發(fā)。然而,第二次在字節(jié)跳動(dòng)的實(shí)習(xí),差點(diǎn)讓我再次陷入迷茫,把我?guī)侠锶ァ?/p>
為啥這么說(shuō)呢?
因?yàn)樵谧止?jié)跳動(dòng),我的工作和 Java 半毛錢關(guān)系都沒(méi)有,寫(xiě)的是 PHP 語(yǔ)言和 Golang!但還好都是后端開(kāi)發(fā),大方向沒(méi)偏。

這段實(shí)習(xí)經(jīng)歷,讓我學(xué)到了太多牛逼的東西,也真正帶我走向了社會(huì),提前體驗(yàn)了一把未來(lái)工作后的生活。
下面就分享一下我的第二次實(shí)習(xí),依然是我從有實(shí)習(xí)想法,到投遞簡(jiǎn)歷、參與面試,再到通過(guò)面試、正式工作,再到最后離職的完整經(jīng)歷和心路歷程,可以當(dāng)個(gè)故事看看,希望對(duì)朋友們有幫助。
魚(yú)皮比較長(zhǎng),先提供個(gè)大綱吧,方便大家挑選自己感興趣的部分閱讀。
大綱
為什么要找實(shí)習(xí)
我當(dāng)時(shí)的背景和技術(shù)
去哪兒找實(shí)習(xí)
我的實(shí)習(xí)面試經(jīng)歷
實(shí)習(xí)工作內(nèi)容
收獲和感悟
為什么找實(shí)習(xí)?
我是在大三上學(xué)期開(kāi)始找的實(shí)習(xí),時(shí)間大概是 11 月份吧,這次找的是日常實(shí)習(xí)。
為啥在這個(gè)不寒不暑的時(shí)間找實(shí)習(xí),而不是待在學(xué)校好好上課呢?
原因有以下幾點(diǎn):
當(dāng)時(shí)剛剛經(jīng)歷了大二暑假的暑期實(shí)習(xí),返回學(xué)校休養(yǎng)生息,平時(shí)課程比較少,就是在實(shí)驗(yàn)室跟著老師做項(xiàng)目,或者自己泡圖書(shū)館學(xué)學(xué)技術(shù)啥的,空閑的時(shí)間還比較多。
經(jīng)歷了大二暑假的實(shí)習(xí),我感覺(jué)企業(yè)的環(huán)境比較適合我,相對(duì)于學(xué)校,在公司有更多的實(shí)踐機(jī)會(huì),接觸到更多的技術(shù),學(xué)到更多的知識(shí)。
在找上一段實(shí)習(xí)時(shí),我被面試官血虐了,讓我意識(shí)到自己在面試方面的不足。男兒雪恥,十年不晚??! 又努力學(xué)習(xí)了一段時(shí)間,我不得再出去闖一闖,看看能不能和面試官多來(lái)個(gè)幾回合?
通過(guò)和前輩們的交流,我意識(shí)到實(shí)習(xí)經(jīng)歷和項(xiàng)目經(jīng)驗(yàn)對(duì)應(yīng)屆程序員找工作來(lái)說(shuō)非常重要,大廠的要求很高,我自己也確實(shí)沒(méi)底。既然不能一日同風(fēng)起,扶搖直上 BAT。那我就一步步來(lái),把每段實(shí)習(xí)經(jīng)歷當(dāng)做樓梯,穩(wěn)扎穩(wěn)打地爬樓梯進(jìn)大廠!
我是一個(gè) 脫離了高級(jí)趣味 的人,我想要錢,尤其是想用技術(shù)賺錢。

和大二找暑期實(shí)習(xí)時(shí)的迷茫且懵逼相比,這次我的目標(biāo)明確且堅(jiān)定、且有野心,劍頭直指國(guó)內(nèi)知名互聯(lián)網(wǎng)公司 —— 字節(jié)跳動(dòng)!

有小伙伴好奇了啊,在 18 年底那會(huì)兒字節(jié)跳動(dòng)好像也不是頂級(jí)巨頭啊,你咋不往阿里、騰訊啥的沖一沖呢?
主要是我慫。
其實(shí)這東西也比較隨緣吧,在這之前,我完全沒(méi)關(guān)注過(guò)字節(jié)跳動(dòng)這家公司,畢竟頭條咱不看、抖音美女咱不愛(ài),其他的產(chǎn)品更沒(méi)接觸過(guò)。但一個(gè)人處在不同的環(huán)境、遇到不同的人、接觸不同的事物,可能都會(huì)或多或少地影響他的決定。對(duì)我而言,選擇字節(jié)跳動(dòng)很大一部分原因是受到了環(huán)境的影響,大概有以下幾點(diǎn):
當(dāng)時(shí)身邊有個(gè)帥學(xué)長(zhǎng),大一給我講過(guò) web 開(kāi)發(fā)課。后來(lái)他去字節(jié)跳動(dòng)了,我沒(méi)事就圍觀他的朋友圈,發(fā)現(xiàn)他經(jīng)常放一些公司的照片,好幾臺(tái)電腦,文字中透露著驕傲和自信。于是我就去百度了下,臥槽,字節(jié)跳動(dòng)好像挺牛逼?那我不得跟緊大佬的步伐,也混進(jìn)去看看?(圍觀朋友圈還是挺有用的,也歡迎大家加我微信好友 liyupi66 哈哈)
讀過(guò)我上一篇文章的朋友應(yīng)該還記得,我在暑期實(shí)習(xí)時(shí),遇到一個(gè)姐姐,她說(shuō)自己一直想去字節(jié)跳動(dòng),因?yàn)榻憬銓?duì)我不錯(cuò),我心里就想:行,我?guī)湍銏A夢(mèng)。男人,說(shuō)話必須得算數(shù)吧!
我是一個(gè)脫離了高級(jí)趣味的人,字節(jié)跳動(dòng)當(dāng)時(shí)的實(shí)習(xí)工資是一天 400,在國(guó)內(nèi)絕對(duì)是實(shí)習(xí)薪資天花板了!看到這個(gè)數(shù)字,我把握不住啊,啥都別說(shuō)了,就這家公司了!我要去我要去。

明確了目標(biāo)之后,我就準(zhǔn)備開(kāi)始找實(shí)習(xí)了,找實(shí)習(xí)的第一步當(dāng)然是準(zhǔn)備簡(jiǎn)歷,大二暑假前的那個(gè)肯定不能再接著用了。正好,梳理下自己當(dāng)時(shí)的情況吧。
個(gè)人情況
大二找暑期實(shí)習(xí)時(shí),我給自己配了一張圖:

在那時(shí),我參加了幾次面試,但結(jié)果都不太理想。我永遠(yuǎn)無(wú)法忘記,在當(dāng)時(shí),一些面試官對(duì)我投來(lái)的鄙夷目光,以及一些員工看著我的憐憫眼神,好像在看一條流浪狗啊!
哈哈開(kāi)個(gè)玩笑,突出一下自己當(dāng)時(shí)內(nèi)心的難過(guò)。
沒(méi)事,知恥而后勇!于是,我發(fā)奮努力,發(fā)如雨下,甚至還 戴上了帽子 來(lái)掩蓋自己努力的痕跡。

終于,在這次找實(shí)習(xí)的時(shí)候,我可以驕傲地給自己換一張配圖了!

雖然我還是廢物,但起碼站起來(lái)了啊!
首先,這一次,我的簡(jiǎn)歷不再空空如也了:
在大二這一年,我洗心革面,好好學(xué)習(xí),拿到了國(guó)家獎(jiǎng)學(xué)金,寫(xiě)上去!
大二結(jié)束前參加藍(lán)橋杯拿了個(gè)獎(jiǎng),寫(xiě)上去!
大二暑假的實(shí)習(xí)經(jīng)歷也讓我多了項(xiàng)目經(jīng)驗(yàn),寫(xiě)上去!
在實(shí)驗(yàn)室跟著老師做區(qū)塊鏈項(xiàng)目,寫(xiě)上去!
自己新開(kāi)發(fā)了個(gè)系統(tǒng),寫(xiě)上去!
新學(xué)了微服務(wù)之類的技術(shù)棧,寫(xiě)上去!
再次強(qiáng)調(diào),簡(jiǎn)歷真的是太重要了,建議多花點(diǎn)時(shí)間去優(yōu)化簡(jiǎn)歷。 畢竟在面試官看到你之前,只能通過(guò)這么一張紙來(lái)了解你,所以自己的榮譽(yù)獎(jiǎng)項(xiàng)、技術(shù)、項(xiàng)目等一定要 毫無(wú)保留 地寫(xiě)在簡(jiǎn)歷上,并且按照優(yōu)先級(jí)進(jìn)行排序,取精去糙。沒(méi)有的話,就要自己抓緊想辦法爭(zhēng)取,機(jī)會(huì)不可能自己送上門來(lái)。
關(guān)于寫(xiě)簡(jiǎn)歷的技巧和模板,在我的公眾號(hào)【程序員魚(yú)皮】回復(fù) “簡(jiǎn)歷” 即可領(lǐng)取。
此外,在大概 3 個(gè)月的時(shí)間內(nèi),我學(xué)了 Java 后端的 SpringCloud 微服務(wù)全家桶,以及像 Zookeeper 分布式協(xié)調(diào)工具、RabbitMQ 消息隊(duì)列、Elasticsearch 搜索引擎等后端常用的技術(shù);并且通過(guò)每日?qǐng)?jiān)持訓(xùn)練 3 道題,已經(jīng)在 LeetCode 上刷了至少 200 道算法題目;還看了幾十份面經(jīng),像前輩們請(qǐng)教了求職經(jīng)驗(yàn)。
總之,這一次,我李某是有備而來(lái)。

這里可能會(huì)有朋友問(wèn)了,怎么你這幾個(gè)月的時(shí)間學(xué)了這么多東西,開(kāi)掛了么?
我李魚(yú)皮沒(méi)有開(kāi)掛!
其實(shí),我最開(kāi)始學(xué)編程的時(shí)候,可能書(shū)都看不懂,一頁(yè)看好久、看好幾遍,所以只能看些簡(jiǎn)單的視頻教程學(xué)習(xí)。但隨著學(xué)編程的時(shí)間越來(lái)越長(zhǎng),看了更多,并且積累了更多知識(shí)和經(jīng)驗(yàn)后,我發(fā)現(xiàn),在不知不覺(jué)中,原來(lái)自己已經(jīng)能看懂書(shū)本、看懂官方文檔、甚至能看懂源碼了!再學(xué)習(xí)新技術(shù)時(shí),很容易 聯(lián)想、類比和對(duì)比 自己以前學(xué)過(guò)的知識(shí),就相對(duì)容易了很多,也是越學(xué)越快,越學(xué)越起勁。
舉個(gè)例子,前端學(xué)完了 Vue 之后,再學(xué) React 就輕松很多,因?yàn)榍岸斯こ袒膽?yīng)用都是一致的;后端學(xué)完一個(gè)消息隊(duì)列,了解了常用模型和概念后,再去學(xué)其他的,也能更快上手。
便于大家學(xué)習(xí),我給大家整理了各種視頻教程 + 習(xí)題 + 答案 + 源碼、編程導(dǎo)航站點(diǎn)、上千本編程書(shū)籍、幾百份大廠面經(jīng)、實(shí)戰(zhàn)項(xiàng)目等,高達(dá) 6 T!
指路:https://t.1yb.co/qOJG

去哪兒找實(shí)習(xí)?
上次找暑期實(shí)習(xí)時(shí),由于我沒(méi)什么目標(biāo),就把各種找實(shí)習(xí)的方法和平臺(tái)都試了一遍。比如實(shí)習(xí)僧投簡(jiǎn)歷、??途W(wǎng)找內(nèi)推、咨詢學(xué)長(zhǎng)和老師等。
但這次我的目標(biāo)明確,所以就沒(méi)打算在找實(shí)習(xí)上花太多時(shí)間,直接登錄字節(jié)跳動(dòng)校園招聘官網(wǎng),找到自己的意向職位,填寫(xiě)簡(jiǎn)歷投遞就行了。不得不感嘆,現(xiàn)在字節(jié)跳動(dòng)招人是真的多,實(shí)習(xí)崗位也非常全面。

上次找實(shí)習(xí)時(shí),簡(jiǎn)歷上沒(méi)東西可以寫(xiě),還好我當(dāng)時(shí)掏出小本本記下了,并且告誡自己 “今后一定要去參加比賽,得到一些榮譽(yù),還要多做項(xiàng)目,給自己挽回面子”。這次,我卷土重來(lái),終于可以在簡(jiǎn)歷上寫(xiě)點(diǎn)兒東西了!
好吧,網(wǎng)上看了其他大佬的簡(jiǎn)歷后,我發(fā)現(xiàn)跟其他大佬比起來(lái),我的簡(jiǎn)歷雖然能寫(xiě)一張紙了,但上面的榮譽(yù)和項(xiàng)目介紹都沒(méi)什么亮點(diǎn)。于是我趕緊再掏出小本本記下來(lái),決定之后再去參加大點(diǎn)的比賽,做個(gè)有新意的項(xiàng)目。

當(dāng)然,我也沒(méi)有自信一定能面試過(guò)字節(jié)跳動(dòng),所以還投遞了一些其他公司。不過(guò)大公司的日常實(shí)習(xí)的機(jī)會(huì)不是很多,崗位比較流動(dòng),放到官網(wǎng)上的更是少之又少??磥?lái)大部分還都是以暑期實(shí)習(xí)為主,所以大家還是要盡量抓住暑期實(shí)習(xí)的機(jī)會(huì)。
值得一提的是,其實(shí)這次找實(shí)習(xí)時(shí),我也投遞了騰訊,而正是這次投遞,竟然直接幫我拿到了暑期實(shí)習(xí)的 offer!在當(dāng)時(shí)是打死我都想不到的。當(dāng)然,這是后話了。
面試經(jīng)歷
在字節(jié)官網(wǎng)投遞簡(jiǎn)歷后,沒(méi)過(guò)幾天,我就收到了面試通知,讓我這幾天就來(lái)面試。當(dāng)時(shí)的我又驚又喜,喜的是沒(méi)想到這么快就順利過(guò)了簡(jiǎn)歷這關(guān);驚的是太特么快了,我還沒(méi)做好準(zhǔn)備。
不過(guò)來(lái)都來(lái)了,沙雕程序員申請(qǐng)出戰(zhàn)!

備戰(zhàn)
在面試前的這幾天,我每天都會(huì)狂背知識(shí)點(diǎn)、狂看字節(jié)跳動(dòng)相關(guān)的面經(jīng),并且把自己做過(guò)的算法題又完整看了一遍,盡量保證每道題都能清晰地講出思路。
給大家分享一些學(xué)算法的優(yōu)質(zhì)資源:https://www.code-nav.cn/resources/algorithm
為了面試的時(shí)候表現(xiàn)流暢,不出現(xiàn)阿巴阿巴的情況,我還特地練習(xí)了自我介紹,并且掏出了自己以前做過(guò)的項(xiàng)目,把面前的電腦想象成面試官,嘗試著向他復(fù)述出項(xiàng)目的設(shè)計(jì)思路、實(shí)現(xiàn)原理和優(yōu)勢(shì)等。
強(qiáng)烈建議大家也試試這個(gè)方法,可以把曾經(jīng)最讓你感到緊張的老師照片貼到電腦上,對(duì)著他講知識(shí)點(diǎn)。此外,網(wǎng)上也有一些 AI 模擬面試的平臺(tái),比如 ???/strong> 。通過(guò)用這個(gè)方法一遍遍訓(xùn)練,不僅讓我從最初的不知所云、說(shuō)話老是阿巴阿巴,變成了最后的行云流水;還幫我消除了緊張情緒,習(xí)慣了面試。

除了硬知識(shí)的儲(chǔ)備和軟實(shí)力的鍛煉,我還選擇相信玄學(xué)。當(dāng)時(shí)擔(dān)心自己頭發(fā)太長(zhǎng),會(huì)被面試官覺(jué)得技術(shù)不佳,特地去理發(fā)店削了一大層,頭皮差點(diǎn)沒(méi)給我削掉。

面試那天,我又換上一身帥氣西裝,戴上我的小手表兒,坐了兩個(gè)小時(shí)的地鐵來(lái)到字節(jié)跳動(dòng)公司樓下,準(zhǔn)備開(kāi)戰(zhàn)!
一面,有驚無(wú)險(xiǎn)
一面的面試官大孫(我未來(lái)的同事)是個(gè)男的,看著還挺年輕,頭發(fā)尚可。大孫走路帶風(fēng),很有氣勢(shì),快走到我身邊的時(shí)候,我甚至感受到了一股凜冽。
還沒(méi)等他坐到我對(duì)面,我就先站了起來(lái),說(shuō)了句 “您好請(qǐng)坐”,然后我們就都坐下,面試開(kāi)始。
首先當(dāng)然是自我介紹,一通阿巴阿巴之后,大孫問(wèn)了我一個(gè)問(wèn)題,差點(diǎn)讓我兩股戰(zhàn)戰(zhàn)幾欲先走。
他問(wèn):“我剛剛聽(tīng)你介紹自己主要是學(xué)習(xí) Java 方向的,可我們這需要寫(xiě) PHP 和 Go 哎?!?/p>
我愣住了:“???”

不過(guò)我很快反應(yīng)過(guò)來(lái),自己當(dāng)時(shí)投遞的崗位是 后臺(tái)開(kāi)發(fā)工程師 ,PHP 和 Go 語(yǔ)言都經(jīng)常用于后臺(tái)開(kāi)發(fā),面試官這么說(shuō),倒也挺合理。反而我在質(zhì)問(wèn)自己為什么這幾天還看了那么多 Java 知識(shí)?!
雖然自己之前寫(xiě)過(guò) PHP 和 Go 語(yǔ)言,但都比較基礎(chǔ),我自知面試大廠完全不夠格。但總不能扭頭就走吧,于是我停頓思考了一下,一臉天真的說(shuō)出了那句死亡發(fā)言:“沒(méi)事的,Java 和它們都差不多,我也寫(xiě)過(guò)一點(diǎn) Go 和 PHP ,雖然不多,但我可以學(xué)?!?/p>
剛說(shuō)完這句話,我就意識(shí)到不對(duì),這幾個(gè)編程語(yǔ)言哪里差不多了???!哪家公司愿意一天花 400 給我培訓(xùn)?。?!

然后我靈機(jī)一動(dòng),把話題帶到了后臺(tái)開(kāi)發(fā)方向,向面試官表達(dá)了:雖然語(yǔ)言不對(duì)口,但是后臺(tái)開(kāi)發(fā)的模式、思想、常用中間件、業(yè)務(wù)設(shè)計(jì)方法都是一致的,比如設(shè)計(jì)模式、數(shù)據(jù)庫(kù)操作、緩存、消息隊(duì)列、微服務(wù)等。我還通過(guò)列舉項(xiàng)目來(lái)表明自己擁有一定的后臺(tái)開(kāi)發(fā)經(jīng)驗(yàn),也有能力勝任這份工作。
此外,還有非常重要的一點(diǎn)。還好我在面試開(kāi)始的自我介紹中較詳細(xì)地列舉了自己的學(xué)習(xí)路線,表示自己現(xiàn)在學(xué)習(xí)新技術(shù)的速度在不斷進(jìn)步、能力也還不錯(cuò)。于是,我在這時(shí)給了大孫一個(gè)承諾:這場(chǎng)面試結(jié)束后,我會(huì)立刻開(kāi)始 PHP 和 Go 語(yǔ)言的學(xué)習(xí),如果有機(jī)會(huì)入職,會(huì)保證以最快的速度上手工作。
也許是我的 強(qiáng)烈的求生欲 自主性打動(dòng)了大孫吧,面試得以繼續(xù)。

大孫面試官非常理性,接下來(lái)再也沒(méi)有問(wèn)我編程語(yǔ)言層面的問(wèn)題了,而是聊了一些后臺(tái)技術(shù),像數(shù)據(jù)庫(kù)、框架之類的,基本都在我準(zhǔn)備的知識(shí)范圍內(nèi),具體的問(wèn)題由于時(shí)間太久記不清了。當(dāng)時(shí)雖然有把問(wèn)題記錄到了個(gè)人博客上,但博客早都掛了,有點(diǎn)可惜。
技術(shù)聊完后,接下來(lái)果然要考察算法。注意,一般大廠的面試是少不了算法題的,考察算法有幾種常見(jiàn)的方式:
遠(yuǎn)程面試,不要求寫(xiě),只讓你講述思路
給你紙筆,讓你手寫(xiě),不要求可運(yùn)行
給你電腦,讓你手敲,有時(shí)要求可運(yùn)行并輸出正確結(jié)果
遠(yuǎn)程面試,讓你手敲,且系統(tǒng)自動(dòng)判題
這幾種方式對(duì)算法精準(zhǔn)度的要求依次增高,難度也依次增大。這次面試中,大孫把自己的電腦交給我,讓我完成一道 “找出指定范圍內(nèi)所有的素?cái)?shù)”,用什么編程語(yǔ)言都可以。我接過(guò)電腦一看,屏幕上正是我常用的 Sublime Text 編輯器,于是游刃有余地切換語(yǔ)言為自己熟悉的 Java 語(yǔ)言,開(kāi)始敲代碼。

題目本身難度不大,找素?cái)?shù)本身很簡(jiǎn)單,有好幾種方法,是一道 ACM 初級(jí)題。但是面試官對(duì)題目的描述并不清楚,連數(shù)的范圍是多少都沒(méi)有說(shuō),也沒(méi)說(shuō)對(duì)時(shí)空間的要求,這些 對(duì)我選擇算法很重要 ,于是我再次向大孫確認(rèn)這些。得到的信息是,數(shù)的范圍不超過(guò)百萬(wàn),算法越快越好。
因此,我決定用埃氏篩法線性實(shí)現(xiàn)來(lái)做,這是一種范圍取素?cái)?shù)的好方法,具體的思路大家可以自行上網(wǎng)查閱。做完之后,我不僅給面試官講解了這種解法,還結(jié)合題目限制條件,從時(shí)空間占用、實(shí)現(xiàn)難度等角度解釋了自己選擇這個(gè)算法而不用其他算法的原因。此外,我還乘勝追擊,簡(jiǎn)單描述了其他條件下應(yīng)該選擇哪種算法,以及如何實(shí)現(xiàn)。
所以,我們?cè)趯W(xué)算法時(shí),不僅要理解和講述算法的思想,做到 多題一解 和 一題多解 ,還要 熟練使用開(kāi)發(fā)工具 ,多敲代碼多練習(xí),最好保證能寫(xiě)出可運(yùn)行的代碼。
關(guān)于我學(xué)算法的方法,可以閱讀這篇文章:刷了 1000 多道算法題,一點(diǎn)心得
接下來(lái),大孫還問(wèn)了一些業(yè)務(wù)場(chǎng)景設(shè)計(jì)題,比如怎么設(shè)計(jì)一個(gè)用戶權(quán)限管理系統(tǒng)等,我就結(jié)合自己以前做過(guò)的系統(tǒng)簡(jiǎn)單說(shuō)了下,現(xiàn)在想想,感覺(jué)當(dāng)時(shí)經(jīng)驗(yàn)還是不足,答的一般。
最后,就是經(jīng)典的 “你有什么問(wèn)題要問(wèn)我么” 環(huán)節(jié)。這個(gè)環(huán)節(jié)我一向是比較隨意的,沒(méi)精心準(zhǔn)備,也不必那么拘束和官方,就當(dāng)成是朋友交流,問(wèn)些滿足自己好奇心的問(wèn)題就行。而且我非常不客氣,畢竟接觸面試官的機(jī)會(huì)不多,來(lái)都來(lái)了,能交流多一點(diǎn)是一點(diǎn)。
像我當(dāng)時(shí)問(wèn)了公司的工作環(huán)境、研發(fā)流程、業(yè)務(wù)側(cè)重的技術(shù)等,還問(wèn)了剛剛面試的問(wèn)題有沒(méi)有更好的解決方案,從而試探出面試官對(duì)你剛剛表現(xiàn)的評(píng)價(jià)。問(wèn)完這些之后,不要忘記再用一句話表達(dá)自己對(duì)公司的向往和對(duì)個(gè)人成長(zhǎng)的期待。
就這樣,本輪面試結(jié)束,大孫攻略成功!幾分鐘后,新的 BOSS 出現(xiàn)了。
二面,如沐春風(fēng)
二面的面試官大趙(我未來(lái)的組長(zhǎng))也是個(gè)男的,看上去非常沉穩(wěn),儒雅隨和,說(shuō)話的方式也很平和,讓我一下子就感到放松了。
剛開(kāi)始依然是自我介紹,介紹完后,面試官表示對(duì)我做過(guò)的一個(gè)項(xiàng)目很感興趣,于是開(kāi)始問(wèn)我這個(gè)項(xiàng)目中用到的技術(shù)相關(guān)的問(wèn)題,比如 MySQL、Redis、消息隊(duì)列等。
正中下懷!
其實(shí),我故意在自我介紹的最后提到了:我做過(guò)很多項(xiàng)目,但認(rèn)為其中 最優(yōu)秀 的項(xiàng)目是 xxx,在這個(gè)項(xiàng)目中,我用 MySQL 實(shí)現(xiàn)了 xxx,用 Redis 實(shí)現(xiàn)了 xxx,用消息隊(duì)列實(shí)現(xiàn)了 xxx 等。
這是一個(gè)很實(shí)用的技巧,我說(shuō)這些,就是為了 引導(dǎo)面試官 接下來(lái)問(wèn)我這些問(wèn)題,果不其然,全中!
之后的面試就很舒服了,大部分的題目都是我這幾天背的八股文原題,我甚至變被動(dòng)為主動(dòng),持續(xù)給面試官 “下套”,故意引導(dǎo)他來(lái)問(wèn)我會(huì)的問(wèn)題。
舉個(gè)例子,他問(wèn)我:MySQL 有哪些性能優(yōu)化的措施?
我就從多個(gè)角度、結(jié)合八股文和自己的實(shí)踐經(jīng)歷進(jìn)行了回答,比如硬件層面、網(wǎng)絡(luò)層面、配置層面、軟件層面、語(yǔ)句分析和調(diào)優(yōu)等。我 故意 將 MySQL 常見(jiàn)的索引優(yōu)化手段放到最后說(shuō),還提了一下索引最左匹配原則。
果然,接下來(lái)面試官就問(wèn)我最左原則了!穩(wěn)不穩(wěn)?
總共問(wèn)了有十幾道技術(shù)題吧,除了上面說(shuō)的之外,只記得其中幾道了:
Redis 為什么是單線程的,有什么好處?
講解 NIO 和多路復(fù)用機(jī)制
消息隊(duì)列有幾種常用的模型,分別有什么特點(diǎn)?
然后就是兩道算法題,都是 LeetCode 上初級(jí)難度的原題,一道是動(dòng)態(tài)規(guī)劃入門題 —— 爬樓梯 ,另一道好像是二叉樹(shù)相關(guān)的,記不太清了,反正都很簡(jiǎn)單就對(duì)了。
這里提醒大家,即使遇到原題,也不要欣喜若狂,反而更應(yīng)該冷靜和自然一些,仔細(xì)確認(rèn)題目是否有更改或者挖坑。既然是原題,就更應(yīng)該謹(jǐn)慎思考,力求正確又流暢的完美發(fā)言。此外,如果有自信,你甚至還可以演一波兒,撐死膽大的 。
比如我有一次就裝作自己從來(lái)沒(méi)有見(jiàn)過(guò)原題一樣,假裝是在面試官的指點(diǎn)下才恍然大悟,從而給面試官帶來(lái)成就感:孺子可教??!
最后面試官還問(wèn)了我一些場(chǎng)景設(shè)計(jì)題,讓我印象深刻的一道題是:如何設(shè)計(jì)一個(gè)實(shí)時(shí)彈幕系統(tǒng)?
一般這種題目都是開(kāi)放的,未必有最佳實(shí)踐,但是要結(jié)合你學(xué)過(guò)的技術(shù)和實(shí)踐經(jīng)驗(yàn),盡量給出一個(gè)完整可行的設(shè)計(jì)方案,比如用什么技術(shù)實(shí)現(xiàn)什么功能,為什么要用這個(gè)技術(shù)等。光能設(shè)計(jì)出基本的系統(tǒng)功能還不夠,還要再 全一點(diǎn)、深一點(diǎn) ,盡量在設(shè)計(jì)過(guò)程中挖掘新的問(wèn)題,比如同一時(shí)刻彈幕數(shù)太多怎么處理?有用戶刷垃圾彈幕怎么處理?等等等等。然后再試著去解決這個(gè)問(wèn)題。
當(dāng)然,最好能提出多種方案,然后對(duì)比分析多個(gè)方案的優(yōu)劣,從中選擇一個(gè)相對(duì)最合理的。畢竟系統(tǒng)設(shè)計(jì)是程序員工作中的重要一環(huán),面試官希望能看到你自主分析和解決問(wèn)題的過(guò)程,從而判斷你是否具備該崗位要求的工作能力。
直到現(xiàn)在,我都覺(jué)得這是我經(jīng)歷過(guò)最舒服的一場(chǎng)面試了,面試題目的難度恰到好處,和面試官的交流也非常輕松愉快。
幾分鐘后,就迎來(lái)了三面。
三面
實(shí)習(xí)面試難度會(huì)比正式校招難度小一些,我的這次技術(shù)面只有兩輪,第三面就是 HR 面了。
HR 一般都是小姐姐,這輪面試基本就是問(wèn)一些你的個(gè)人情況、求職動(dòng)機(jī)等,以加深對(duì)你的了解。
我印象里比較常見(jiàn)的問(wèn)題有:
為什么想找實(shí)習(xí)?
為什么選擇我們公司?
有沒(méi)有面試其他公司?
大概什么時(shí)候來(lái)實(shí)習(xí)?
對(duì)我們公司,還有什么想了解的?
這些問(wèn)題都比較輕松,我一般實(shí)事求是地回答。比如當(dāng)問(wèn)到我 “大概什么時(shí)候來(lái)實(shí)習(xí)” 時(shí),我內(nèi)心雖然比較慌,擔(dān)心因?yàn)闀r(shí)間原因不被錄取,但還是如實(shí)地說(shuō)自己還要準(zhǔn)備考試和課程設(shè)計(jì),可能要等寒假。
我注意到 HR 姐姐聽(tīng)到這里時(shí)臉色變了變,于是我補(bǔ)充到:考試的知識(shí)我會(huì)前提復(fù)習(xí),也會(huì)盡力和老師協(xié)調(diào),看看能否提前完成課設(shè),爭(zhēng)取盡早入職。而且我可以提前學(xué)習(xí)技術(shù),盡快上手工作,并且寒假可以全勤。
即使這么說(shuō)了,我內(nèi)心還是忐忑不安的,但沒(méi)想到過(guò)了兩三天,就給我發(fā) offer 了!字節(jié)的效率真是高啊。
工作內(nèi)容
因?yàn)?HR 表示部門缺人,希望我越早入職越好,所以如面試時(shí)承諾的那樣,我期末考試還沒(méi)完全結(jié)束,大概還剩 2 門的時(shí)候,我就匆匆入職了。
我們部門規(guī)定的工作時(shí)間是早 10 晚 7,大小周(單周上 6 天,雙周上 5 天)。正如前面所說(shuō),因?yàn)槲覀儗W(xué)校在 “鄉(xiāng)下”,所以每天要坐單程兩小時(shí)的地鐵到公司,路上依然保持背背單詞、看看文章的習(xí)慣。
哦對(duì)了,肯定有同學(xué)想問(wèn),我學(xué)校沒(méi)有課程了么?怎么能兼顧學(xué)校課程和公司實(shí)習(xí)呢?
其實(shí)是這樣,我早在大二的時(shí)候,就計(jì)劃自己要在大三時(shí)出去實(shí)習(xí)或者搞競(jìng)賽,于是在之前就提前選了些大三的課程,所以整個(gè)大三期間,我基本沒(méi)有幾門課,跟領(lǐng)導(dǎo)也商量了下,每周抽 3 - 4 天去實(shí)習(xí)是完全沒(méi)問(wèn)題的,而且寒假可以全勤。
第一天入職,負(fù)責(zé) IT 的同學(xué)給我拿來(lái)了一臺(tái)全新的蘋果電腦,給我講解公司的一些網(wǎng)絡(luò)策略,以及如何連接 VPN、遠(yuǎn)程辦公等。然后導(dǎo)師大趙(組長(zhǎng)、二面面試官)就來(lái)接我了,給我安排了工位,就坐在他旁邊!工位上放了一本字節(jié)跳動(dòng)的小本子,上面寫(xiě)了 “Always Day One” 還有字節(jié)范兒。
然后大趙帶我認(rèn)識(shí)了一圈兒同事,并且讓大孫(一面面試官)給我安排工作、帶我入門。
我記得網(wǎng)上有這么個(gè) “傳統(tǒng)”,入職字節(jié)跳動(dòng)的同學(xué)都要拍一下公司的辦公環(huán)境、零食、下午茶、福利啊等等。但因?yàn)槲疫@次的實(shí)習(xí)部門不在上海字節(jié)跳動(dòng)總部,而是在某辦公大樓內(nèi)承包了幾層工位,工作環(huán)境就是馬蜂窩式的獨(dú)立辦公間;再加上也不是第一次實(shí)習(xí)了,所以并沒(méi)有什么新鮮感,來(lái)到公司就好好干活吧!
工作內(nèi)容是負(fù)責(zé)字節(jié)跳動(dòng)旗下某教育產(chǎn)品的后端研發(fā),使用的語(yǔ)言是 PHP 和 Go。入職第一天大孫讓我先搭建基礎(chǔ)的研發(fā)環(huán)境,包括 PHP Laravel 框架、數(shù)據(jù)庫(kù)、配置密鑰、開(kāi)通一堆權(quán)限等,然后用 Laravel 寫(xiě)一個(gè) todoList,說(shuō)是寫(xiě)完之后再分配工作。我之前自己學(xué)過(guò)一些 PHP,再加上有備而來(lái),輕輕松松寫(xiě)完了。
之后,我成為了大孫的小弟,他帶著我一起參與需求評(píng)審,一起開(kāi)發(fā)需求,和前端、客戶端、測(cè)試同學(xué)配合保障整個(gè)系統(tǒng)的上線。
工作生活雖日復(fù)一日,但也有很多有趣的事。
1. 搶飯
我們那邊當(dāng)時(shí)還沒(méi)有食堂,一日三餐 + 下午茶都是商務(wù)訂餐(盒飯),每個(gè)盒飯里的菜各不相同。所以一到飯點(diǎn)兒,就能聽(tīng)到大地震顫的聲音,轟轟隆隆的一大幫子人就去搶飯了。像我們組一般會(huì)輪流派兩個(gè)人幫大家統(tǒng)一去拿。
有一說(shuō)一,字節(jié)跳動(dòng)的伙食真的是好,六菜一湯、炒飯炒面炒年糕、酸奶水果飲料隨便拿,關(guān)鍵還免費(fèi),你說(shuō)氣人不?
就是我拍的不太好哈哈~
2. 追飯
因?yàn)槊刻煸缟衔叶际菑膶W(xué)校出發(fā),路途遙遠(yuǎn),再加上晚上熬夜,第二天有時(shí)不得不踩點(diǎn)兒到公司,到了公司吃免費(fèi)早餐。
公司的早餐還是很豐富的,中式西式都有,肯德基、麥當(dāng)勞、德克士、手抓餅、早餐粥等等。
但是公司有規(guī)定,早餐只提供到 10 點(diǎn)。結(jié)果有一次,我就在 10 點(diǎn)鐘那一刻來(lái)到了公司,當(dāng)時(shí)領(lǐng)早飯的房間門正要關(guān)上,我就趕緊喊了一句:“等等我,wait me wait me!”
結(jié)果餐飲部的同事還是無(wú)情地把我拒之門外了,規(guī)定就是規(guī)定,一秒鐘也不能多!
我當(dāng)時(shí)雖心有不甘,但還是非常認(rèn)可他們的做法,也暗自感嘆字節(jié)跳動(dòng)的員工真的很棒。
3. 獨(dú)居
在字節(jié)跳動(dòng)的實(shí)習(xí)過(guò)程中,我有一段獨(dú)居生活。
為啥要租房呢?
一方面是考慮到整個(gè)寒假期間我每天都會(huì)到崗,從學(xué)校到公司距離還是有點(diǎn)遠(yuǎn)的,雖然我會(huì)利用好路上的時(shí)間,但心有余而力不足,來(lái)回跑太累了。另一方面是公司有 1000 多塊錢的補(bǔ)貼,不用白不用。
所以干脆自己在公司附近短租了個(gè)十平米小房子,看一看咯~

這么一拍好像不小,實(shí)際上就一個(gè)小走廊和一張床。

是在自如平臺(tái)租的,價(jià)格 2200 / 月,最后不住的話再交給自如平臺(tái)轉(zhuǎn)租就好了,省時(shí)省心~
那會(huì)兒腦袋瓦特了,還買了輛 100 多元的自行車,到最后也沒(méi)組裝上。

4. 教導(dǎo)
在字節(jié)跳動(dòng)對(duì)我影響最大的同事就是大孫了,他為人幽默,很會(huì)教人做事(這里是褒義啦)。
每次我寫(xiě)完代碼,大孫都要仔仔細(xì)細(xì)地過(guò)一遍,然后專門跑到我工位上跟我講哪里可以改進(jìn),比如不要把一些值寫(xiě)的太死、要多用復(fù)制粘貼、減少重復(fù)勞動(dòng)等等。
他還有意鍛煉我的邏輯思維能力,比如把整個(gè)方案交給我來(lái)設(shè)計(jì),并且要求給他完整清晰地講出來(lái),直到他能聽(tīng)懂并且覺(jué)得合理了為止;而不是直接幫我想好做什么,把我變成一個(gè)寫(xiě)代碼的機(jī)器。

此外,他還教會(huì)了很多實(shí)用的工作經(jīng)驗(yàn),比如怎么高效合作、怎么分清工作主次、怎么防止被甩鍋等。像之前有一個(gè)前端的妹子來(lái)找我?guī)兔ε挪閱?wèn)題,我沒(méi)有仔細(xì)思考問(wèn)題到底出在何處,就開(kāi)始排查自己的代碼了。大孫知道后,第一時(shí)間分析這個(gè)問(wèn)題并劃分邊界,然后給出了一個(gè)證明不是我們后端出了問(wèn)題的理由,直接幫我減少了沒(méi)有太大意義的工作量。
當(dāng)然,我的領(lǐng)導(dǎo)大趙也教會(huì)了很多處事方法,有些東西我可能會(huì)想的簡(jiǎn)單了,上手就做。而大趙哥思維縝密、顧全大局,讓我意識(shí)到了冷靜分析的重要性。
5. 活動(dòng)
字節(jié)跳動(dòng)內(nèi)部還有很多活動(dòng),每周三是固定的活動(dòng)日,大家可以參與社團(tuán)、一起運(yùn)動(dòng),也可以提早下班。還有各種福利性質(zhì)的活動(dòng),比如七周年的集卡分百萬(wàn),不過(guò)我點(diǎn)兒背,始終集不齊就對(duì)了。

大概實(shí)習(xí)了四個(gè)多月,我因?yàn)橐恍┰螂x職了,倒不是因?yàn)楣ぷ鲏毫μ螅ó吘挂驗(yàn)閷W(xué)校遠(yuǎn),我每天都是 19 點(diǎn)準(zhǔn)時(shí)下班),而是因?yàn)楦?jìng)賽壓力和升學(xué)壓力等種種原因,最終還是摘下了這個(gè) “價(jià)值百萬(wàn)” 的字節(jié)工牌。
值得一題的是,就在我要離職的幾天前,公司全部搬了新工位,再也不是馬蜂窩辦公室了,而且還有了自己的食堂、超大會(huì)議室等等。真是想吐槽,從小到大,我讀過(guò)的每個(gè)學(xué)校都是等我剛剛畢業(yè)就裝修了,一次都沒(méi)趕上好時(shí)候啊。

收獲和感悟
在字節(jié)跳動(dòng)實(shí)習(xí)的這段時(shí)間,雖然很累,但付出和收獲是成正比的。
如果說(shuō) 第一次實(shí)習(xí) 是幫助我走出校園,積累了一些企業(yè)協(xié)作開(kāi)發(fā)的經(jīng)驗(yàn);那么第二次實(shí)習(xí)則是幫我真正走進(jìn)社會(huì),感受到了一名研發(fā)工程師應(yīng)盡的職責(zé)和義務(wù)。
首先,字節(jié)跳動(dòng)真的非常適合新人成長(zhǎng),這里的員工相對(duì)都比較年輕,團(tuán)隊(duì)敢用新人、重用新人。進(jìn)入公司直接上手項(xiàng)目,全程參與項(xiàng)目的設(shè)計(jì)到研發(fā)過(guò)程,再加上相對(duì)較快的工作節(jié)奏,不斷給你挑戰(zhàn),從而激勵(lì)你快速成長(zhǎng)。大部分其他的公司都是讓你一個(gè)實(shí)習(xí)生打打雜,找找 bug,測(cè)試測(cè)試就完了。
其次,字節(jié)跳動(dòng)的技術(shù)氛圍好,像我們組每周都會(huì)舉辦技術(shù)分享,大家在一起開(kāi)發(fā)個(gè)小項(xiàng)目、或者討論個(gè)技術(shù)知識(shí)啥的。還有就是大廠的技術(shù)沉淀非常多,整個(gè)實(shí)習(xí)期間,我也基本沒(méi)給自己留下遺憾,有空就翻翻公司內(nèi)部的文檔,了解下字節(jié) APP 工廠 的產(chǎn)品矩陣,的確能夠大開(kāi)眼界。
最后還有獨(dú)居帶給我的成長(zhǎng),畢竟這是我人生第一次租房,然后每天從出租屋里頭出門上班,只看到太陽(yáng)升起卻不見(jiàn)日落,日復(fù)一日地自己賺錢養(yǎng)活自己,算是提前感受到了未來(lái)打工人的生活吧。也不禁感嘆生活不易,激勵(lì)自己還是趁著年輕再多努努力。
總而言之,字節(jié)跳動(dòng)真的非常好,我后來(lái)也去面試過(guò)幾次。不過(guò)最終還是沒(méi)選擇這里,原因大家猜得到的話可以評(píng)論出來(lái)。
臥槽突然想起來(lái),字節(jié)跳動(dòng)還欠我份實(shí)習(xí)證明,答應(yīng)給我郵寄的卻鴿了!大家進(jìn)去后麻煩幫我要下謝謝~ *
好了,以上就是我的第二份實(shí)習(xí),還在校園的朋友們,一定要有目標(biāo)、有規(guī)劃,必須心里有數(shù),才能腳下有路。然后就奮力去追吧,不要因?yàn)橥饨缫蛩貞岩勺约?,反正奔跑總比坐以待斃的好?/p>
相信自己有能力,那么你就真的會(huì)有!
不知不覺(jué)又寫(xiě)了一萬(wàn)字,希望朋友們能 點(diǎn)贊 支持下,魚(yú)皮會(huì)持續(xù)分享編程學(xué)習(xí)經(jīng)驗(yàn)和技術(shù)干貨 ??

我是如何通過(guò)自學(xué)編程,拿到騰訊、字節(jié)等大廠 offer 的,可以看這篇文章,不再迷茫!
指路:我學(xué)計(jì)算機(jī)的四年,共勉!https://t.1yb.co/q0mS