雙非二本,畢業(yè)半年沖進(jìn)字節(jié)抖音架構(gòu)組,他經(jīng)歷了什么?
自我介紹
雙非二本,軟件工程,自學(xué)前端,今年畢業(yè)。
喜歡編程,古風(fēng),日語和英語。
常以冷月心之名混跡前端江湖,也曾在混跡網(wǎng)文圈時用冷月心做筆名簽約掌閱,作品《清起風(fēng)云》,百度可查。
求職期間寫了一個小博客,感興趣的可以看看 https://lengyuexin.github.io/gatsby
為什么離職
這個問題,幾乎我參加的每一場面試都會問到。我是2020.7.1畢業(yè),最后離職日期是2020.12.18。這段工作經(jīng)歷很短,被問到也很正常。最主要原因還是追求更大的發(fā)展空間和技術(shù)突破。
在我導(dǎo)師跳槽去美團(tuán)后,團(tuán)隊內(nèi)就出現(xiàn)了明顯的技術(shù)斷層。我遇到的某些問題,能夠與之商量的同事也越來越少。至于源碼,數(shù)據(jù)結(jié)構(gòu)和算法層面的交流就更少了。
而這些深層次的東西,才是真正意義上的技術(shù)棧,是真真正正能提高個人技術(shù)能力和核心競爭力的東西。
跳槽前該考慮的事
在我看來,決定是否跳槽成功的核心因素有兩個:個人技術(shù)能力和當(dāng)前招聘市場的大環(huán)境。建議先將自身技術(shù)能力和招聘要求做一個比對,如果覺得可以勝任,再去投遞也不遲。至于市場環(huán)境,大概是金三銀四,金九銀十和年末擴(kuò)招三大階段吧。
如果技術(shù)已經(jīng)準(zhǔn)備ok,簡歷也完善過,那就可以開始投遞了。內(nèi)推也好,其他招聘軟件也好,自行選擇即可。
最最最重要的一件事,不建議裸辭。如果裸辭,做好心理準(zhǔn)備。大多數(shù)情況下,換一份滿意的工作,整個面試流程加offer審核到offer call再到最終郵件offer,耗時一個月是很正常的。在職面試都會有焦慮感,更何況是裸辭。
如果工作年限很短,又是裸辭,那我只能說在簡歷篩選上會很吃虧。比如我,投字節(jié)15個崗位,都被干掉,到第16個才約上面試。投快手4次內(nèi)推,被干掉4次,最快的一次一小時左右就把我干掉了。不得不說,快手效率還是到位的。不死心的我又投了第五次,成功約上了面試。至于后來為什么能再約上猿輔導(dǎo),百度,58同城,去哪兒網(wǎng),美團(tuán)的面試,我猜應(yīng)該都是因為運氣...又或者,實在很缺人?
技術(shù)方面該如何準(zhǔn)備
結(jié)合我20多次的面試經(jīng)驗,總結(jié)出一個核心:基礎(chǔ)。即便是大廠,也不會忽略問基礎(chǔ),反而更重視這個。基礎(chǔ)不穩(wěn),地動山搖。基礎(chǔ)穩(wěn)如狗,大廠隨便走。以下我提到的資料都會在文末給出鏈接,大家可自行查看。
js方向
對于js而言,我覺得基礎(chǔ)應(yīng)該是基本語法,數(shù)據(jù)類型,異步,各種常用api,this,es6+,原型和原型鏈,繼承,作用域和作用域鏈,閉包...等等。建議閱讀紅寶書第四版并結(jié)合神三元的js靈魂之問系列按需完善。
css方向
對于css而言,我覺得基礎(chǔ)應(yīng)該是常用選擇器,權(quán)重,垂直居中方案,rem和em,flex,動畫...等等。對于這方面的準(zhǔn)備,網(wǎng)上很多博客就能解決。如果想系統(tǒng)了解一下,推薦張鑫旭的《css世界》。flex的話,推薦小青蛙網(wǎng)站和阮一峰的博客。
源碼方向
react技術(shù)棧,推薦閱讀的源碼是react,react-router,redux,react-redux,axios。
vue的話,推薦閱讀的源碼是vue,vue-router,axios,vuex。
如果涉及nodejs,那koa2,koa-router,express,也都可以安排下。
至于源碼方向的推薦有三個:
卡頌的react技術(shù)揭秘 若川的源碼系列(很多,文末直接貼作者主頁了) 難涼熱血的vue源碼分析
數(shù)據(jù)結(jié)構(gòu)和算法方向
面試過程中問到算法很正常,這個時候就要注重平時的積累了。
算法方向推薦的有四個:
極客時間王爭的數(shù)據(jù)結(jié)構(gòu)與算法之美 政采云團(tuán)隊的博客--算法篇 天天的前端算法總結(jié) ssh的前端算法進(jìn)階指南 修言算法小冊
計算機(jī)網(wǎng)絡(luò)方向
無論是前端還是后端,通信都是極為重要的概念,最起碼應(yīng)用層http和https要有一定的了解。
如果想全面了解一下,推薦謝希仁那本特別厚的《計算機(jī)網(wǎng)絡(luò)》,看前六章就可以了。
如果覺得特別多,可以看一下神三元的http靈魂之問。
瀏覽器方向
這部分只推薦一個,極客時間李兵老師的瀏覽器專欄
其他方向
我這邊因為項目中會兼顧一些運維的工作,所以對nginx常用配置和linux常用命令有一定的了解, 這部分可參考我之前寫的筆記。當(dāng)然這個不算必須項,大概可以算個加分項吧。
面經(jīng)
接下來我會分享我面試的七家公司的面經(jīng),可作為面試參考。
58同城一面
自我介紹 諸多業(yè)務(wù)問題 項目中主要負(fù)責(zé)什么 原生js怎么實現(xiàn)拖放 react-dnd拖放的核心API react diff 算法復(fù)雜度是多少 diff造成的非預(yù)期更新如何解決 如何實現(xiàn)路由監(jiān)聽 頁面適配方案:百分比,flex,vh,vw 平時對js和css基礎(chǔ)有過了解嗎 從地址欄輸入地址到頁面回顯,都發(fā)生了什么 解釋下重繪和回流 說一下js中的類和java中的類的區(qū)別 說一下js中如何實現(xiàn)函數(shù)重載 webpack動態(tài)加載
面試感受:
58同城是我面的最早的一家,一面是電話面,大概聊了有一個小時。整個面試過程很nice,最后讓面試官給我一個評價。講真,面試官很真誠,說我的表現(xiàn)是超預(yù)期,但是在年限和經(jīng)驗上有所欠缺,hr那邊可能會影響定級。我表示理解,畢竟確實年限短。
58同城二面
自我介紹 為什么剛工作不久離職了 業(yè)務(wù)中負(fù)責(zé)什么 node偏運維方向的有沒有了解過(docker k8s) 業(yè)務(wù)中主要用node干了什么 react生命周期有了解嗎 說下react-router源碼你看完后印象深刻的部分 數(shù)組去重怎么實現(xiàn),不用set怎么實現(xiàn) 實現(xiàn)一下es6的extends 有沒有接觸過移動端,小程序,h5等方向
面試感受:
二面是視頻面,面試官和我聊了一下接下來的發(fā)展方向,描繪了一張美好的藍(lán)圖。聽起來還不錯,雖然沒聽懂。某些不可說的原因,58同城結(jié)束在二面,后續(xù)沒有再進(jìn)行。
百度一面
自我介紹 js數(shù)據(jù)類型和存儲方式,如何判斷 typeof [] 返回什么 new操作符 做了什么 數(shù)組中一萬個數(shù)據(jù),訪問第一個和最后一個效率會有什么差異,為什么 forEach for in for of 的差異 如何改變this指向 js中函數(shù)是如何調(diào)用的 說下原型和繼承 瀏覽器緩存 說下瀏覽器事件循環(huán) js是單線程還是多線程,為什么這么設(shè)計 css弧形永動動畫實現(xiàn) css 1px像素適配 css設(shè)置div寬高比3:4 padding-bottom:75% 說下transform 和transition 類數(shù)組怎么轉(zhuǎn)換成數(shù)組 new Array()接收的參數(shù)是什么 get和post的區(qū)別 http狀態(tài)碼 react生命周期 setState更新是同步還是異步 axios源碼整體架構(gòu) 手寫Promise.all Promise中用了什么設(shè)計模式 Promise都有哪些狀態(tài) 算法12345678.01 =>123,456,78.01 算法12345678.01=>12,345,678.01 從地址欄輸入地址到頁面回顯,都發(fā)生了什么
面試感受:
女面試官,題是有點多,但感覺還好,都是偏基礎(chǔ)。印象最深的是算法部分,面試官出了題,我直接說了思路,好像還巴拉巴拉說了一下其他的。面試官說:哎呀,我只是想讓你做個題...(撒嬌語氣??) 好的,做題。
百度二面
自我介紹 業(yè)務(wù)中你用node都做了什么 你對node還有什么想分享的嗎,覺得用起來爽的部分(gzip pipe) 業(yè)務(wù)中數(shù)據(jù)是怎么存儲的,node為什么沒有接入數(shù)據(jù)庫 node單線程容易崩潰,怎么維護(hù)服務(wù)的 pm2內(nèi)部機(jī)制了解嗎 cluster了解多少 業(yè)務(wù)線如何用端口號區(qū)分(nginx http-proxy) 業(yè)務(wù)上有什么坑嘛 (環(huán)境多) webpack常用配置 webpack插件寫過嗎 webpack常用插件 關(guān)于webpack你還有什么想分享的嗎 (同步加載異步加載的實現(xiàn)) 瀏覽器地址欄輸入請求地址到頁面回顯發(fā)生了什么 重繪和重排了解嗎 重繪和重排如何做取舍 如何將css內(nèi)容插入到頁面上(style-loader) 如果讓你實現(xiàn)style-loader,你打算怎么做 算法題-手寫快排 算法題-查找一個字符串中出現(xiàn)次數(shù)最多的字符 算法復(fù)雜度層面比較一下快排和其他排序 項目是內(nèi)部使用嗎 (是,未開源) 有沒有考慮過高并發(fā)場景,如何解決(緩存,壓縮,負(fù)載均衡,集群) 現(xiàn)在是在職狀態(tài)嗎 最后離職日期是多少 手上有沒有其他offer 如果今晚三面是否有時間(說有上線,推遲了) 反問一:百度App部門有沒有使用node的場景 反問二:App部門是不是只有移動端場景,有沒有其他的,比如pc 反問三:百度怎么做容災(zāi)的 反問四:百度App是分工明確還是也會出現(xiàn)身兼多職的情況 反問五:給我一個今后學(xué)習(xí)發(fā)展的建議和這次面試的簡單評價
面試感受:
不得不說,和二面面試官聊的很是帶勁,給我很多鼓勵,完事大概是晚上十點多了,意猶未盡。當(dāng)場要整三面,當(dāng)時也恰好11點要上線,就改時間了,三面約到了一周后。
百度三面
三面面試官是手機(jī)百度部門的leader,電話面的,主要是問了我一下期望薪資和來百度的意愿。然后又是一波鼓勵,還教我怎么談薪資,感動到爆炸。說實話當(dāng)時我已經(jīng)決定同等薪資必去百度,奈何后續(xù)流程太長了,我已經(jīng)接到抖音正式offer郵件那邊還沒反饋。
抖音一面
自我介紹 說一下業(yè)務(wù)中你負(fù)責(zé)的部分 業(yè)務(wù)中數(shù)據(jù)是怎么存儲的 業(yè)務(wù)中拖拽如何控制位置的,適配怎么處理,全屏怎么控制 你用nodejs和java分別做了哪些業(yè)務(wù) 業(yè)務(wù)中的縮略圖是什么,實現(xiàn)方案 說下jwt 說下js中數(shù)據(jù)存儲方式 知道內(nèi)存碎片怎么產(chǎn)生的嗎 v8 post請求有幾種方式觸發(fā) post的ContentType類型有哪些(application/x-www-form-urlencoded/multipart/form-data/text/plain) 知道jwt有哪些缺點嗎 說一下http和https的區(qū)別 https的tls了解嗎 說一下鎖(懵逼),舉例是讀鎖和寫鎖 為什么要去看axios的源碼,大體實現(xiàn) 業(yè)務(wù)中權(quán)限是怎么接入的,數(shù)據(jù)表怎么劃分的 能說一下css盒模型嗎 說下box-sizing中border-box 和content-box的區(qū)別 this指向
var fullname = '1';
var obj = {
fullname: '2',
prop: {
fullname: '3',
//如果改成普通函數(shù)呢?
getFullname:()=> {
return this.fullname;
}
}
};
console.log(obj.prop.getFullname());
var test = obj.prop.getFullname;
console.log(test());
算法題1:節(jié)點渲染
const el = require('./element.js');
const ul = el('ul', {id: 'list'}, [
el('li', {class: 'item'}, ['Item 1']),
el('li', {class: 'item'}, ['Item 2']),
el('li', {class: 'item'}, ['Item 3'])
])
const ulRoot = ul.render();
document.body.appendChild(ulRoot);
<ul id='list'>
<li class='item'>Item 1</li>
<li class='item'>Item 2</li>
<li class='item'>Item 3</li>
</ul>
算法題2:屬性獲取
{
a:{
b:{
c:{f:"aa"}
},
d:{
e:{g:"bb"},
h:{i:"cc"}
},
j:{
k:"dd"
}
}
}
// [f,g,i,c,e,h,k,b,d,j,a]
面試感受:
面了百度和58同城,有點膨脹,字節(jié)讓我清醒。算法被吊打,只寫了個大概和思路。感覺要涼了,最后反問環(huán)節(jié)我已經(jīng)沒什么想問的了。如果說有,我想問一下我還有機(jī)會嗎?最后說了一下我的遺憾,表示我擅長的沒有完全體現(xiàn)出來,命中的很多盲區(qū)。好家伙,峰回路轉(zhuǎn),面試官說我還是有其他亮點的,再給我一次機(jī)會,就到了二面,感動到冒泡泡...
抖音二面
看你簡歷有提到nginx配置,主要配置了什么 說下上線部署流程中常用的linux命令 node的進(jìn)程守護(hù)怎么做的,發(fā)現(xiàn)非預(yù)期故障怎么排查 項目中為什么選擇用nodejs 業(yè)務(wù)中負(fù)責(zé)哪些部分 手寫一個koa2的compose 手寫一個Scheduler類,實現(xiàn)并發(fā)控制
//JS實現(xiàn)一個帶并發(fā)限制的異步調(diào)度器Scheduler,
//保證同時運行的任務(wù)最多有兩個。
//完善代碼中Scheduler類,使得以下程序能正確輸出:
//Scheduler內(nèi)部可以寫其他的方法
class Scheduler {
add(promiseCreator) { ... }
// ...
}
const timeout = (time) => new Promise(resolve => {
setTimeout(resolve, time)
})
const scheduler = new Scheduler()
const addTask = (time, order) => {
scheduler.add(() => timeout(time))
.then(() => console.log(order))
}
addTask(1000, '1')
addTask(500, '2')
addTask(300, '3')
addTask(400, '4')
// output: 2 3 1 4
// 一開始,1、2兩個任務(wù)進(jìn)入隊列
// 500ms時,2完成,輸出2,任務(wù)3進(jìn)隊
// 800ms時,3完成,輸出3,任務(wù)4進(jìn)隊
// 1000ms時,1完成,輸出1
// 1200ms時,4完成,輸出4
面試感受:
二面問的不多,主要是寫代碼吧。Scheduler沒有完整寫出來,koa2的compose寫出來了,其他的回答還行,完事約了三面。抖音二面時快手hr打電話告訴我二面過了,當(dāng)場愣住,我不是正在二面嗎?怎么就過了?
抖音三面
為什么工作不久離職 你覺得你擅長哪些技術(shù)(react+node+計算機(jī)網(wǎng)絡(luò)) 說一下進(jìn)程線程,如何通信? 兩個線程可以直接通信嗎 你覺得node的適用場景是什么 相比其他后臺語言,為什么你更傾向node? 在業(yè)務(wù)開發(fā)上,你覺得node和java的區(qū)別是什么? node服務(wù)的性能監(jiān)測有沒有了解過? http中間人劫持了解嗎?如何解決呢?(說了https) 為什么https可以做到避免中間人劫持?(說了加密層tls) 展開說一下tls握手(對稱,非對稱,對稱+非對稱的組合) 加密套件指的是?(舉例了AES) 業(yè)務(wù)中的安全問題有沒有遇到過?怎么解決的?(說了base64,cors,xss,csrf,cookie的httponly和samesite屬性) 你傾向的技術(shù)領(lǐng)域和業(yè)務(wù)場景是怎樣的? 算法1:二叉樹層序遍歷和s形的層序遍歷 算法2:如何在從左到右升序,從上到下升序,每一行第一個元素大于上一行最后一個元素的二維數(shù)組中查找某個數(shù)字的索引?如果是一維數(shù)組呢? 算法3:二分法的實現(xiàn) 算法4:單鏈表反轉(zhuǎn) 反問:抖音安全部門主要的業(yè)務(wù)范圍是什么?
面試感受:
三面問的更全一點,理論和代碼層面的都有,算法2沒寫出來,其他的應(yīng)該都抗住了。后續(xù)流程很順利,已拿offer。
猿輔導(dǎo)一面
猿輔導(dǎo)那天是招聘專場,一面到底,直通hr面。因為某些非預(yù)期情況,不再考慮這邊,選了抖音。
自我介紹 業(yè)務(wù)中負(fù)責(zé)的部分 業(yè)務(wù)中數(shù)據(jù)怎么存儲的 為什么堅持用node 算法1:promise并發(fā)控制 算法2:前k個元素 js中遍歷數(shù)組的方式 react中遇到的坑,怎么解決的 說一下類組件和函數(shù)組件 選擇hooks的優(yōu)點 什么時候用類組件 說下http緩存,如何實現(xiàn) 反問一:這邊有沒有使用node的場景 反問二 :業(yè)務(wù)線中使用的技術(shù)棧是什么 反問三:有沒有jq那種老項目 反問四:面試評價和今后發(fā)展的建議
面試感受:
和面試官聊的很開心,從技術(shù)到業(yè)務(wù)到技術(shù)選型,巴拉巴拉聊了很多。那邊是用的angular11,還有vue2.x,后續(xù)打算遷移到react技術(shù)棧上。
猿輔導(dǎo)二面
自我介紹 諸多業(yè)務(wù)問題 react diff算法如何實現(xiàn)的,比對復(fù)雜度是多少 如何使用react-dnd完成拖放的,說下主要API 大數(shù)據(jù)量場景前端怎么處理,讓頁面展示盡可能流暢 業(yè)務(wù)中看你有涉及到node的文件讀寫操作,有沒有想過如果某個文件被鎖怎么處理? 前端縮略圖(截圖)方案是什么 業(yè)務(wù)中的實時保存會有性能開銷,又沒有做什么優(yōu)化? node轉(zhuǎn)buffer輸出字符串會比直接string輸出快,你的依據(jù)是什么? 算法一:給定一串?dāng)?shù)字,求它全排列結(jié)果 算法二:實現(xiàn)類似百度那種聯(lián)想搜索(模糊匹配) 收尾閑聊:你覺得一面難還是二面難?我說二面吧,數(shù)學(xué)不太好,全排列沒屢清楚。
面試感受:
和面試官聊的依舊很開心,二面聊了很多業(yè)務(wù)。好家伙,我和面試官開始在白板上畫圖交流了。咱數(shù)學(xué)確實菜,全排列也沒整清楚,和邏輯混一起更想不明白。面試官表示理解,然后約了三面,部門大leader。
猿輔導(dǎo)三面
根據(jù)簡歷確認(rèn)了一下基本信息 為什么剛工作幾個月就離職 看你大學(xué)學(xué)的挺多的,高中是不是沒好好學(xué)習(xí)呀(笑,解釋說高中是為了高考被動式學(xué)習(xí),大學(xué)是為了工作主動學(xué)習(xí)) 日語N2是指?(解釋了下等級,日企門檻) 看你對前端熱情挺高的,為什么選擇了前端呢? 然后面試官直接給我安排了研發(fā)方向,前期ng,后期react,說是在組建一個復(fù)雜架構(gòu)小組,目前兩人,預(yù)計4-6人。(說實話,有點慌) 做個題吧,給定學(xué)生id和分?jǐn)?shù)組成的列表,寫一個函數(shù),通過id獲取排名,注意分?jǐn)?shù)相同并列名次的處理(寫了七七八八,后邊面試官說思路可以,就這樣吧) 然后讓我等下hr,面試官去下一場面試了(面試專場,一下午來了大概20+,每個面試官都很忙,后續(xù)基本沒有反問時間)
面試感受:
親切,看面試官第一眼就覺得很親切。整體聊的也很順利,過往經(jīng)歷和一道算法題,完事??吹某鰜?是想要我的。之后hr面結(jié)束,打道回府。
猿輔導(dǎo)hr面
之前有了解過猿輔導(dǎo)嗎 確認(rèn)了一下簡歷基本信息 還有其他公司在面試嗎,進(jìn)展如何? 說了下福利,餐補(bǔ)800,六險一金,不限量零食下午茶,健身房,晚下班打車企業(yè)報銷,巴拉巴拉……說了好多福利 聊了下薪資,之前的,預(yù)期的。 hr表示不會因為工作經(jīng)驗而刻意壓薪資,扁平化管理,會根據(jù)每一輪面試官評價來定(給我的預(yù)期是校招生水平,實際是超預(yù)期) 你是97年的嘛?(驚訝) 感覺你表現(xiàn)上更成熟一些(我說和個人經(jīng)歷和讀的書有關(guān)吧) 個人經(jīng)歷,比如呢?(笑,愛情算嗎?) 然后和hr聊起了愛情觀 所以你現(xiàn)在狀態(tài)是?(單身) 大學(xué)讀了哪些類型的書? 我問了下工作時間,早10晚7,雙休不打卡 hr表示offer流程會根據(jù)我這邊其他公司面試進(jìn)展隨時同步,很熱情的送我到電梯門口
面試感受:
面試體驗確實不錯,后期就有點遺憾了。也難怪,我的年限和期望偏差確實有點大,這邊流程上多加考慮也可以理解。
快手一面
自我介紹 項目應(yīng)用場景和優(yōu)勢 寫個繼承案例 Object.create實現(xiàn) Object.create傳null和{} 有啥區(qū)別嗎 手寫promise(寫完then后面試官說可以了) 實現(xiàn)一個數(shù)組扁平化方法flat js為什么設(shè)計成單線程 事件循環(huán)說一下 Promise里都是微任務(wù)嗎 平時怎么學(xué)習(xí)的 koa2中間件和redux中間件比較,原理 koa2的洋蔥模型和redux中間件的洋蔥模型一樣嗎 兩個compose的大概實現(xiàn),reduce的妙用 對比一下express,koa2(我連同比較了egg) 為什么不要在循環(huán)、條件語句或者嵌套方法中調(diào)用Hooks new Promise返回的實例和實例then方法執(zhí)行后返回的promise是一個嗎 平時有瀏覽過哪些國外的網(wǎng)站嗎
面試感受:
女面試官,聊了很多,感覺想早點下班。hh,我要寫代碼,剛寫了大概,面試官說可以了,可以了,之后約了二面。
快手二面
說一下為什么要用hooks,解決了什么問題 react函數(shù)組件和類組件觸發(fā)更新的方式有哪些 react的強(qiáng)制更新有了解嗎 react在一秒內(nèi)點擊按鈕多次(+1),如何獲取最后一次的新狀態(tài) react-router權(quán)限路由寫一下 實現(xiàn)一個帶緩存的求階乘函數(shù) 說說你對koa2中間件的理解 某些接口允許跨域,某些不允許,如何實現(xiàn)?能不能使用koa2中間件的方式實現(xiàn)一下? koa2中ctx.set的等價寫法 用node如何實現(xiàn)一個帶壓縮和緩存的http-server?
面試感受:
面試官給我一種道法自然,萬法皆通的感覺,某些想法秀到我了,很強(qiáng)。問的基本都答上了,很快約了三面。
快手三面
自我介紹(側(cè)重說下個人優(yōu)勢和項目亮點) 為什么剛工作不久離職 如果有成熟穩(wěn)定的A團(tuán)隊和從0到1的B團(tuán)隊,你傾向哪種 如果B團(tuán)隊做不好有可能會因為業(yè)績不達(dá)標(biāo)被砍掉,做的好會有高收益,A團(tuán)隊一直是穩(wěn)定的,你傾向哪種 A團(tuán)隊業(yè)務(wù)線偏向底層功能開發(fā),為B團(tuán)隊服務(wù)。B團(tuán)隊在A團(tuán)隊產(chǎn)出基礎(chǔ)上,會面對更多復(fù)雜業(yè)務(wù),你傾向哪種 反問1:剛才提到的AB部門的業(yè)務(wù)覆蓋場景是只有pc端嗎?還是也有其他端? 反問2:工作模式是否為導(dǎo)師制?
面試感受:
無關(guān)技術(shù),只談選擇。我選了BBB。之后約了hr面,然后又加面,其實也沒問太多技術(shù)問題。流程和字節(jié)基本同步,薪資待遇持平,只是多了一個背調(diào)。我比較想早點入職,選了更快的抖音。說實話,有點舍不得負(fù)責(zé)招聘的hr小姐姐,hh,給了我很多祝福。
美團(tuán)一面(部門A)
我懷疑美團(tuán)有毒,二面必掛。第一次面到2面,題基本都答上了,莫名掛掉。然后又被打撈,依舊面的很順利,二面掛掉... 好家伙,分手都沒個預(yù)兆。遺憾是有,但也無能為力。美團(tuán)到店,我可能到不了店了。
自我介紹 為什么剛工作不久就離職了 項目中常用的linux命令 業(yè)務(wù)中打包怎么做的 如何查詢某個進(jìn)程占用的端口號(linux中) netstat -tunlp|grep 80 lsof -i:80 實現(xiàn)一個new操作符 git reset 和git rebase了解嗎 實現(xiàn)Object.create 實現(xiàn)數(shù)組扁平化函數(shù)flat webpack有哪些優(yōu)化方案 loader和plugin有寫過嗎 react合成事件了解嗎? 這些事件處理函數(shù)最終掛載到了哪? react中如何阻止冒泡 react中setState同步還是異步 react15和react16更新機(jī)制的差異 為什么react16架構(gòu)升級后就能中斷更新,根據(jù)什么決定是否中斷 react源碼看過哪些? react中調(diào)和的部分是在哪個包?有看過實現(xiàn)嗎 hooks為什么不能在條件或循環(huán)中使用,原理清楚嗎? react為什么要引入hooks,解決了哪些問題 類組件如何實現(xiàn)邏輯復(fù)用? 打印題
const o1 = {
text: 'o1',
fn: function() {
return this.text
}
}
const o2 = {
text: 'o2',
fn: function() {
return o1.fn()
}
}
const o3 = {
text: 'o3',
fn: function() {
var fn = o1.fn
return fn()
}
}
console.log(o1.fn())
console.log(o2.fn())
console.log(o3.fn())
面試感受:
美團(tuán)的面試還是有點東西的,問的很全。linux那個和git rebase不太清楚,其他的基本都o(jì)k,然后約了二面。
美團(tuán)二面(部門A)
自我介紹 諸多業(yè)務(wù)問題 你期望的業(yè)務(wù)場景或者工作環(huán)境 js為什么會有回調(diào)地獄呢 為什么java沒有回調(diào)地獄 promise.all返回的是什么 promise和async你覺得差異點是什么 算法1:rgb轉(zhuǎn)16進(jìn)制函數(shù) 算法2:
//實現(xiàn)一個retry函數(shù)
//如果fn返回成功,則打印一下,最終結(jié)果成功
//如果fn返回失敗,則打印times下,最終結(jié)果失敗
retry(fn,times)
retry(() => {
console.log('doing')
return Promise.reject(Error('done'))
}, 3)
retry(() => {
console.log('doing')
return Promise.resolve('done')
}, 3)
打印題
var a = 20;
var test = {
a: 40,
init: () => {
console.log(this.a);
function go() {
console.log(this.a);
}
go.prototype.a = 50;
return go;
}
};
var p = test.init();
p();
new p()
面試感受:
題基本都答上來了,莫名掛。被打撈的時候問了一下一面面試官,他表示也很迷,說確實有二面面試記錄,但是沒評價??
美團(tuán)一面(部門B)
自我介紹 koa-compose實現(xiàn) react權(quán)限路由實現(xiàn) 前端路由實現(xiàn)原理(對比react,vue) 單頁面應(yīng)用和傳統(tǒng)服務(wù)端渲染的差異比較 前端頁面性能優(yōu)化 nginx 負(fù)載均衡配置 node端處理大文件上傳 react hooks用過哪些 react使用心得 redux模板語法的改良(使用裝飾器) 聊一下代碼檢查(eslint,ts) 防抖節(jié)流區(qū)分,手寫 實現(xiàn)map,reduce 統(tǒng)計字符串中次數(shù)最多字母
面試感受:
和面試官聊的很帶勁,好家伙,相見恨晚。面試結(jié)束不到一小時hr打電話約二面,并告知一面給了滿分。
美團(tuán)二面(部門B)
如何區(qū)分函數(shù)是new調(diào)用還是直接調(diào)用 解釋下下面兩段代碼執(zhí)行結(jié)果的差異
function foo() {
foo();
}
function foo() {
setTimeout(() => {
foo();
}, 0)
}
requestAnimationFrame 和 requestIdleCallback了解嗎 說下react的key node中加載相同模塊,會重復(fù)打印嗎
//a.js
function foo() {
console.log('foo'); //
}
foo();
//b.js
require('./a.js');
require('./a.js');
//node b.js
如何設(shè)計這套緩存 http模塊起一個服務(wù),如果想修改請求體并轉(zhuǎn)發(fā)給另一個服務(wù),怎么實現(xiàn) 說下react-redux干了什么事 mapStateToProps的第二個參數(shù)作用 實現(xiàn)一個Map 說下react常用的性能優(yōu)化手段 linux中exec ls 和ls 差異 linux 中的source了解嗎
面試感受:
我和面試官都提前到了視頻會議室,然后我提議可以提前開始。面試官說ok,大概是45分鐘。好家伙再問一個,再問一個,再問一個...差不多一個半小時,刺激。最后莫名掛掉,原因未知...
去哪兒網(wǎng)一面
自我介紹 說一下項目中遇到的挑戰(zhàn)和你認(rèn)為的亮點 能說一下你用mvc模式重構(gòu)node業(yè)務(wù)代碼的大概方向和效果嗎 說下跨域 這個項目里前后端聯(lián)調(diào)的話,有問題一般怎么排查(表示基本都是自己寫) 追問:為什么是都要自己寫呢?(相對偏向全棧,人少) 感覺你個人比較喜歡node,是想往這個方向發(fā)展嗎 對技術(shù)?;蛐录夹g(shù)上是怎樣的一個態(tài)度 項目中寫的css多嗎,主要是哪些?(說了less,css,styled-components) 有沒有接觸過移動端,小程序,App這些場景 有在面其他公司嗎?進(jìn)展? 為什么剛工作不久離職了 你說離職是追求技術(shù)的突破,能解釋下你想要的是怎樣的嗎 對于公司和業(yè)務(wù)部門,你更傾向哪一邊的考慮(類比了選學(xué)校和選專業(yè)) 事件循環(huán)的打印題(比較基礎(chǔ))
setTimeout(() => {
console.log(1)
}, 0)
new Promise((resolve) => {
console.log(2)
for (let i = 0; i < 10000; i++) {
if (i === 9999) { resolve() }
}
console.log(3)
}).then(() => {
console.log(4)
})
console.log(5)
面試感受:
女面試官,聊的也還行,比較滿意我的表現(xiàn)吧,很快約了二面,現(xiàn)場。
去哪兒網(wǎng)二面
自我介紹 為什么剛工作不久就離職 諸多業(yè)務(wù)問題 說下你擅長的 解釋下重繪和回流 說一下你知道的瀏覽器渲染相關(guān)的點 你覺得有哪些優(yōu)勢 平時怎么學(xué)習(xí)的 說下tls握手 還有在面其他公司嗎? 前端如何做性能優(yōu)化 算法1:數(shù)組中出現(xiàn)最多的數(shù)字 算法2:斐波那契數(shù)列 閑聊:你覺得你的缺點是什么
面試感受:
感覺面試官有些漫不經(jīng)心,簡單聊了聊,然后我說了期望薪資,好家伙,估計又說多了...沒后續(xù)。
致謝
在我看來,面試并不是一個人的戰(zhàn)斗。站在巨人的肩膀上,可以加快你前進(jìn)的速度。感謝這一路上,直接或間接給我?guī)椭拇罄袀?排名不分先后。
磐沖, 曾多次參加磐沖大佬組織的直播面試,表示受益良多。 張仁陽, 珠峰架構(gòu)公開課諸多知識點面試命中 若川, 源碼系列收獲頗豐 ssh, react性能優(yōu)化方案,多次面試命中 神三元,靈魂之問系列查漏補(bǔ)缺 卡頌,react源碼系列,多次面試命中 阿紫, 鼓勵君+祝福小天使 大月, 經(jīng)歷很相似的戰(zhàn)友,抱團(tuán)取暖
相關(guān)鏈接
紅寶書第四版:https://www.ituring.com.cn/book/2472 js靈魂之問(上):https://juejin.cn/post/6844903974378668039 js靈魂之問(中):https://juejin.cn/post/6844903986479251464 js靈魂之問(下):https://juejin.cn/post/6844904004007247880 css世界:https://www.cssworld.cn/ flex小青蛙:http://flexboxfroggy.com/ flex阮一峰博客:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html 卡頌的react技術(shù)揭秘:https://react.iamkasong.com/ 若川的源碼系列:https://juejin.cn/user/1415826704971918/posts 難涼熱血的vue源碼分析:https://nlrx-wjc.github.io/Learn-Vue-Source-Code/ 數(shù)據(jù)結(jié)構(gòu)與算法之美:https://time.geekbang.org/column/intro/100017301 政采云團(tuán)隊的博客--算法篇:https://101.zoo.team/ 天天的前端算法總結(jié):https://juejin.cn/post/6900698814093459463 ssh的前端算法進(jìn)階指南:https://juejin.cn/post/6847009772500156429 修言算法小冊:https://juejin.cn/book/6844733800300150797 謝希仁的計算機(jī)網(wǎng)絡(luò):https://item.jd.com/12219883.html 神三元的http靈魂之問:https://juejin.cn/post/6844904100035821575 瀏覽器專欄:https://time.geekbang.org/column/intro/100033601 nginx筆記:https://blog.csdn.net/qq_42813491/article/details/103117799?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522160938095216780302981460%252522%25252C%252522scm%252522%25253A%25252220140713.130102334.pc%25255Fblog.%252522%25257D&request_id=160938095216780302981460&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29-1-103117799.pc_v2_rank_blog_default&utm_term=nginx linux筆記:https://blog.csdn.net/qq_42813491/article/details/88379799
社群
字節(jié)跳動 IES 團(tuán)隊預(yù)備招聘社群,加我好友即可加入社群。
加入社群后你能收獲什么:
我和我的同事們會在群里和大家一起聊聊字節(jié)跳動對前端工程師的要求。 收集一些大家的疑問,整理成 QA 文檔發(fā)布,解答一些常見疑惑。 這是一個氛圍輕松的群,大家可以聊技術(shù),也可以聊生活中的趣事。 這個群會長期發(fā)展下去。 如需內(nèi)推,可以私聊我,一對一指導(dǎo)簡歷。
加好友記得備注 "IES" 才可通過

點個在看你最好看
