字節(jié)-高級(jí)前端三輪面經(jīng)
共 4556字,需瀏覽 10分鐘
·
2024-06-24 23:19
字節(jié)的面試難度,一直是大廠中的 Top 級(jí)別,即使是前端崗位,也特別看重算法能力。今天就給大家分享一篇字節(jié)的社招面經(jīng),原作者是《低代碼平臺(tái)開發(fā)實(shí)踐:基于react》這本書的作者,在低代碼平臺(tái)這塊有較深的研究,讓我們一塊來學(xué)習(xí)下他的面經(jīng)吧。
以下是正文。
我面試的職級(jí)是 2-2,一共經(jīng)歷了 3 輪技術(shù)面,每一面都要手寫算法。
2023 年 7 月下旬,我經(jīng)歷了一次裁員,一直到了 2024 年 1 月才開始找工作。在今年的 2 月初,我參加了字節(jié)跳動(dòng)的面試,雖然沒能通過第 3 輪面試,我記錄了當(dāng)時(shí)的一些面試問題,希望能幫助大家了解字節(jié)的面試流程和問題。
第一輪面試
首先是自我介紹,主要介紹在任職的公司落地了低代碼平臺(tái)和用戶操作記錄回溯,還向開源項(xiàng)目 rrweb 提交了兩個(gè)PR,最后是公司的插件化架構(gòu)。
PS:大家在自我介紹中,可以突出自己有亮點(diǎn)的內(nèi)容,可以引導(dǎo)后續(xù)面試官的提問
自我介紹完畢,面試官的第一個(gè)問題是:為什么離職?
我因?yàn)楸徊枚x職,也如實(shí)做了回答,后面的面試官也都問了為什么被裁。
PS:如果在某個(gè)公司的工作經(jīng)歷不滿兩年,很容易被問到為什么離職,回答時(shí)需要注意,盡量不要吐槽前公司
由于我從離職到面試字節(jié)中間隔了7個(gè)月左右,面試官還重點(diǎn)關(guān)注了離職之后在做什么。
離職之后,我首先回家休息了近 1 個(gè)月,旅游了近 2 個(gè)月,然后寫書花了 1 個(gè)多月,到 1 月底開始找工作,這沒什么好隱瞞的,如實(shí)告知了面試官。
PS:這位大佬還是挺實(shí)誠的,有過寫書的經(jīng)歷,在能力和項(xiàng)目經(jīng)歷上,絕對(duì)很有競爭力的
第一輪主要面試 JS 和 React基礎(chǔ)知識(shí),問題如下:
-
浮點(diǎn)數(shù)運(yùn)算的精度問題,比如 0.1 + 0.2 不等于 0.3 這是什么原因,要怎么解決? -
對(duì) webpack 有了解嗎 -
webpack中 loader 與 plugin 有什么區(qū)別 -
有沒有寫過 plugin -
我們寫代碼的時(shí)候是 es6,瀏覽器運(yùn)行的時(shí)候是 es5,在做代碼轉(zhuǎn)化的時(shí)候,webpack 做了哪些工作? -
在 React 類組件中,為什么修改狀態(tài)要使用 setState 而不是用 this.state.xxx = xxx -
setState 函數(shù)做了哪些事情 -
React 生命周期 componentWillUnMount() 對(duì)應(yīng)的 hooks 要怎么寫 -
useState 的原理是什么,背后怎么執(zhí)行的,它怎么保證一個(gè)組件中寫多個(gè) useState 不會(huì)串 -
函數(shù)組件重新渲染的時(shí)候怎么拿到useState之前的狀態(tài),而不是得到初始化的狀態(tài) -
React為什么要自定義合成事件 -
你的簡歷里寫了關(guān)注資產(chǎn)損失,這是做什么事情。 -
你在地代碼開發(fā)與實(shí)踐上也做了一些事情,當(dāng)時(shí)是做什么呢? -
表單的聯(lián)動(dòng)是怎么處理的 -
當(dāng)時(shí)做這個(gè)表單驅(qū)動(dòng)的時(shí)候,為什么沒有用 Formily 現(xiàn)成的方案呢 -
被裁的原因是什么呢 -
從離職到現(xiàn)在一直沒有找工作嗎? -
從11月底到現(xiàn)在兩個(gè)月了有哪些 offer 了嗎
算法題
-
實(shí)現(xiàn) loadsh.get 方法 -
計(jì)算二叉樹的最大深度 -
島嶼的最大面積
最后是反問環(huán)節(jié)。面試時(shí)長 1 小時(shí) 40 多分鐘。
一面的時(shí)間很長,可能是面試官對(duì)這位同學(xué)的項(xiàng)目經(jīng)歷很挺感興趣,也能是因?yàn)樽髡咴谒惴}這塊花的時(shí)間有點(diǎn)多
第二輪面試
由于簡歷重點(diǎn)介紹了低代碼,并且在自我介紹的時(shí)候,提到了我在 gap 期間寫的書,二面面試官的大部分問題都與低代碼相關(guān)。
問題如下:
-
為什么寫書 -
能把你的掘金上發(fā)的低代碼文章發(fā)給我嗎? -
低代碼針對(duì)的中后臺(tái)是什么樣的 -
table 中的字段也是可以配置的嗎?Table 頭和每一項(xiàng)下面展示的內(nèi)容怎么配置 -
為什么要做低代碼 -
做低代碼系統(tǒng)的時(shí)候你有考慮研發(fā)量嗎 -
整個(gè)低代碼都是你一個(gè)人做嗎? -
當(dāng)屬性面板上有修改之后,畫布刷新的機(jī)制是怎么樣的 -
繼續(xù)討論研發(fā)量,開發(fā)規(guī)劃的問題 -
沒有考慮使用已有的低代碼項(xiàng)目做二次改造嗎 -
做低代碼的時(shí)候有沒有遇到比較難的問題,怎么解決的 -
被裁的原因
PS:作者在面試時(shí)重點(diǎn)介紹了自己開發(fā)的低代碼平臺(tái),其實(shí)最近在篩簡歷時(shí),發(fā)現(xiàn)很多人都寫了低代碼平臺(tái)。但大家得提前想好,這樣的平臺(tái)是否真的能給團(tuán)隊(duì)帶來很高的價(jià)值。稍微大點(diǎn)的公司都會(huì)有這個(gè)系統(tǒng),除了老板喜歡提升效率的平臺(tái),大家做匯報(bào)也好看。但實(shí)際上,現(xiàn)在的低代碼平臺(tái)還是有很多局限性,大家要想好平臺(tái)的能力邊界在哪兒。
算法題
-
最大子數(shù)組和 -
最長回文子串
最后是反問環(huán)節(jié)。面試時(shí)長 1 個(gè)小時(shí)左右。
第三輪面試
這一輪的面試官?zèng)]讓做自我介紹,一開始就是寫算法題
算法題
-
K 個(gè)一組翻轉(zhuǎn)鏈表
下面是詢問的問題
-
為什么寫書 -
在市面上類似的書有一些,你的書有什么不同 -
什么場景適合做低代碼,給什么用戶使用 -
低代碼最適合的場景是不是no-code? -
怎么界定低代碼和無代碼的邊界 -
你做的低代碼平臺(tái)能實(shí)現(xiàn)的最復(fù)雜的一個(gè)場景是什么樣的 -
為什么json要轉(zhuǎn)化為手寫代碼 -
轉(zhuǎn)化成手寫代碼是什么樣的 -
源碼解析器是什么 -
開發(fā)低代碼的背景 -
整個(gè)項(xiàng)目的周期有多長 -
從酷家樂離職之后主要在寫書嗎? -
用戶操作記錄回溯工具是為了解決什么問題 -
用戶記錄回溯工具有達(dá)到目的嗎 -
主管有沒有說被裁的原因
最后是反問環(huán)節(jié)。面試時(shí)長 1 個(gè)小時(shí)左右。
總結(jié)
面試被問到的重點(diǎn)問題如下:
-
為什么被裁 -
被裁之后在干什么 -
低代碼項(xiàng)目的迭代安排和人員安排 -
市面上的已有低代碼方案
需要改進(jìn)的點(diǎn):
-
為了迫使自己在對(duì)方問問題之后思考問題,重復(fù)一下問題里的關(guān)鍵字。比如,當(dāng)對(duì)方問為什么 React使用 setState() 修改狀態(tài),而不是直接給 this.state 賦值去修改?重復(fù)一遍面試官的話,如果面試官說的話很長,那就提煉出關(guān)鍵字后重復(fù)一遍。 -
當(dāng)某個(gè)方案有多個(gè)原因時(shí),先回答1,2,3,再逐條分析。比如為什么 React 要封裝合成事件?為什么要將低代碼 json 轉(zhuǎn)成手寫代碼?為了讓自己回答問題更專注,使用手指頭記錄自己說到了第幾點(diǎn)。(結(jié)構(gòu)化)
面試官點(diǎn)評(píng)
三面的算法題是一道 hard 難度的題目,大家通常會(huì)認(rèn)為,問 hard 難度其實(shí)是因?yàn)闆] hc。
但講道理,k長度一組反轉(zhuǎn)鏈路,其實(shí)是一個(gè)實(shí)際難度在簡單到中等之間的題目,標(biāo)了個(gè) hard 可能是因?yàn)樗?leetcode 屬于比較早期的題目,并不是真的難寫。
對(duì)于數(shù)據(jù)結(jié)構(gòu)扎實(shí)的同學(xué)來說,leetcode 的鏈表題可能是最簡單的一塊了。
事實(shí)上,2-1/2-2 的職級(jí),對(duì)于基礎(chǔ)要求其實(shí)在各類面試中區(qū)分得并不明顯。字節(jié)的前端崗位面試,對(duì)于硬核內(nèi)容的考察通常并不會(huì)很深,很多時(shí)候是看你的實(shí)際項(xiàng)目解決了啥問題,看你在這個(gè)項(xiàng)目領(lǐng)域里的深度,甚至有沒有帶人的經(jīng)驗(yàn),然后再定你是2-1還是2-2,面2-2給2-1也并不少,但帶人的崗位經(jīng)常會(huì)要求 3-1 了。
大家也不要太把字節(jié)的面試當(dāng)模板,有些共性的背題該背就背,算法該刷還是得刷,除此之外還是要堅(jiān)持一些自己的技術(shù)追求,感興趣的問題多深入一些,比如你最近解決/解決中的問題,在 github 上有多少解決方案,哪些方案比較好,你做得哪些是更好的,以后想解決啥問題。
作者:何遇er
原文:https://juejin.cn/post/7345821800880324671
