【面经】记一次字节跳动前端面试经历
文章來自公號粉絲,本文轉(zhuǎn)載自他的博客。
博主找我修改簡歷,給他提了一些建議,不久他就收到了字節(jié)跳動面試。(不知道是不是提的建議有效果~~)
PS:文中加了一些我的注釋。
正文如下:
太長不看版
-
對于實習(xí)招聘(甚至校招)來說,項目經(jīng)歷可能是獲得面試的敲門磚,但是基礎(chǔ)絕對是贏得面試的通天索。
(互聯(lián)網(wǎng)偵察注:校招就是考基礎(chǔ)和潛力,基礎(chǔ)扎實潛力不錯的一般都會收)
-
即使是實習(xí)招聘,白板寫代碼也很可能逐漸成為主流面試的標(biāo)配,平時要有意識地鍛煉這方面能力,要不然面試時沒有IDE真的是做不下去。
(互聯(lián)網(wǎng)偵察注:阿里校招面試必須白板寫代碼,并且要錄入系統(tǒng),多位面試官review)
-
對自己的真實實力一定要有正確的評估。一個簡單的評估方式是,你的真實能力水平大約只有你所認(rèn)為的50%甚至更低。
-
面試是一件很累的事情,要找準(zhǔn)自己的位置,避免海投。
完整面試回顧
面試流程記錄
需要提前說明的是,該流程記錄皆出自本人本次面試的經(jīng)歷,和其他人的可能有所出入。
面試之前,一般會有郵件通知,郵件上會有一些重要信息,需要認(rèn)真查看。本人此次是視頻面試,就提前找了個安靜的地方,并且確認(rèn)面試設(shè)備沒有問題。個人認(rèn)為,面試前提前半小時“到場”是一種尊重。
開始面試后,首先是自我介紹。面試官不一定提前看過簡歷,或者只是一覽而過,所以面試前有必要準(zhǔn)備一段3-5分鐘的自我介紹。這里面試官讓我重點講下在項目中曾經(jīng)遇到過的問題(拋除業(yè)務(wù)邏輯),又是如何解決的。從“拋除業(yè)務(wù)邏輯”這個要求可以看出,其實面試者所做項目本身并不重要,重要的是你如何從項目,哪怕是玩具demo中發(fā)掘亮點,體現(xiàn)你個人解決問題的能力。
(互聯(lián)網(wǎng)偵察注:這里必須注一下,寫簡歷也是一樣,一定要突出技術(shù)在業(yè)務(wù)中的作用,很多人寫了半天業(yè)務(wù),但是里面沒有看到技術(shù))
自我介紹之后,就過渡到面試題環(huán)節(jié)。面試題環(huán)節(jié)有兩類,一類是挑一段代碼讓你回答,這類考的是基礎(chǔ)知識中的重難點;另一類是之前提到過的白板寫代碼,網(wǎng)上戲稱手撕代碼,題目不會很難,但是很考驗基本功,重度IDEer可能會舉手無措(比如本人qwq)。在面試題環(huán)節(jié)中,即使遇到不會的問題,也可以說說自己能掌握的信息,面試官會適時給出一定的提示。
面試之后,我抓住機(jī)會,問了面試官一個憋在心里很久的問題,是什么就不說了。
面試考察點歸納
這里只是簡要記錄個人在前端面試遇到的考察點:
position和display、事件機(jī)制、dom、捕獲冒泡、this及作用域、原型鏈、es6(了解)、vue的雙向綁定原理(最好有用過,一定程度上考察了源代碼理解)、基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)……等。
其中,dom的考察了一道,this及作用域考察了兩道,數(shù)據(jù)結(jié)構(gòu)考察了一道,其它的都以概念提問的方式進(jìn)行考察。
可以總結(jié)出以下教訓(xùn):
-
js基礎(chǔ)是重中之重,而前端對算法的要求基本上不是特別高,基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)牢固掌握了就沒問題。另外前端的話,刷算法題最好用js。
-
對于你沒怎么接觸過的領(lǐng)域,面試官并不會去深究;但是,對于網(wǎng)上瘋傳的Vue等框架,最好有個了解和體驗,甚至是深入源碼。
-
一個很明顯的現(xiàn)象是,一個概念你知道了,但不一定能說得清楚;一個概念你看似仔細(xì)了解過,但真正面臨考察時不一定能說出個所以然。解決這個問題的最好辦法是——寫博客。
-
并沒有考察到websocket、nodejs等知識,這個階段的面試要求并沒有網(wǎng)傳得那么高。
反思與計劃
對于本次面試出現(xiàn)的種種問題,本人有如下反思:
明確自己的技術(shù)方向,然后深入研究。原以為在技術(shù)領(lǐng)域多處開花是一件很酷很厲害的事,現(xiàn)在發(fā)現(xiàn)這很容易導(dǎo)致我成為一名api使用者。一定要熟記基礎(chǔ),深入原理,了解源碼。
一定要有技術(shù)博客,本次面試過程中能答上的知識點全是平時博客有記錄的知識。
接上一點,技術(shù)博客不應(yīng)該是簡單的知識點堆疊,要盡可能地由點及面。秉持這種心態(tài)——我其實是在寫新手教程,然后你就會自覺地把博客寫得盡量詳細(xì)及全面。
針對自己做過的項目,要有意識地進(jìn)行分析總結(jié),面試過程中就可以把總結(jié)的這些問題拋出來,總有一兩個會被面試官作為考核點。
計劃如下:
摒棄朝三暮四的心態(tài),當(dāng)前階段應(yīng)當(dāng)以前端開發(fā)為自身的主要技術(shù)棧和深入方向。
就前端而言,沒有什么比做一個自己的平臺更能鍛煉技術(shù)的了。計劃于參與的項目完成之后,大概是今年暑假,從零開始做一個自己的博客。
比起新項目計劃,技術(shù)博客顯得更加急切。從現(xiàn)在開始,每周都要強制性做一次技術(shù)總結(jié);或者堅持閱讀技術(shù)書籍,做讀書筆記。
附記
在面試過程中,面試官給了我很多建議,讓我通過經(jīng)典書籍深入基礎(chǔ),結(jié)合其他前輩給我的意見,羅列以下三本書:
-
JavaScript 高級程序設(shè)計(全面而寬泛,適合反復(fù)回顧)
-
JavaScript DOM 編程藝術(shù) (了解DOM必備)
-
你不知道的 JavaScript (聚焦JS的重難點,包括原型鏈、閉包等)
總結(jié)
以上是生活随笔為你收集整理的【面经】记一次字节跳动前端面试经历的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Web 应用的最大败笔
- 下一篇: 前端开发这么多年,你真的了解浏览器页面渲