我的web前端面試心法(已拿字節(jié)offer)

前言

我的秋招經(jīng)歷

基本情況:
南方普通985普通學(xué)生,接觸前端十個(gè)月左右,今年 8 月后開(kāi)始正式準(zhǔn)備秋招。

說(shuō)起我的秋招,一個(gè)詞,就是“逆襲”。一開(kāi)始,華為筆試沒(méi)過(guò),三七互娛筆試沒(méi)過(guò)被撈起來(lái)后一面又掛,信心受挫。中間沒(méi)有再繼續(xù)投遞,而是沉下心準(zhǔn)備,身邊同學(xué)陸續(xù)拿到offer,也挺糾結(jié)。在十月底,趕在秋招的尾巴,投了四五家網(wǎng)申還沒(méi)截止的公司,沒(méi)想到,面試一路過(guò),最后成功上岸字節(jié),結(jié)束秋招。

準(zhǔn)備面試和參加面試的過(guò)程中,總結(jié)了一些個(gè)人經(jīng)驗(yàn),梳理一下,希望對(duì)準(zhǔn)備面試的人有些幫助,尤其是沒(méi)有面試經(jīng)歷的學(xué)生。這里不談及具體的面試題目,而是一些通用的方法論。

此文純個(gè)人想法,希望讀者保持自己的判斷。

1、拋開(kāi)面試,系統(tǒng)學(xué)習(xí)

在一切之前,應(yīng)該系統(tǒng)地去學(xué)習(xí)前端的基礎(chǔ)知識(shí)。 對(duì)前端而言,這些基礎(chǔ)包括 HTML,CSS,JavaScript,瀏覽器原理,網(wǎng)絡(luò)協(xié)議,MVVM 框架和一些必要的計(jì)算機(jī)基礎(chǔ)等。應(yīng)該先拋開(kāi)面試的目的去學(xué)習(xí)這些知識(shí),建立自己的知識(shí)體系,然后再結(jié)合面試題,運(yùn)用掌握的知識(shí)去理解并解決面試題。

然而,很多人為了應(yīng)付面試,基礎(chǔ)技能掌握不扎實(shí),就盲目地從網(wǎng)上查找各種面經(jīng),記憶甚至背誦各種面試題,本末倒置。

這里,推薦一些系統(tǒng)學(xué)習(xí)的途徑和方法。


路線圖

MDN文檔:

每個(gè)Web開(kāi)發(fā)人員必備,很權(quán)威很齊全的Web開(kāi)發(fā)文檔。作為學(xué)習(xí)辭典使用,可以查詢到每個(gè)概念、方法、屬性的詳細(xì)解釋,注意使用英文關(guān)鍵字搜索。里面的一些 HTML,CSS,HTTP 技術(shù)教程也相當(dāng)不錯(cuò)。

HTML 和 CSS:

html5知識(shí)
css基礎(chǔ)知識(shí)

推薦結(jié)合 MDN文檔 和 W3school 兩個(gè)線上教程,體會(huì)把玩上面的示例。這部分沒(méi)有什么難度,主要在于記憶和編碼實(shí)踐,加深印象。

JavaScript

前端的重頭戲,值得花大部分時(shí)間學(xué)習(xí)。

JavaScript知識(shí)

推薦通過(guò)書(shū)籍學(xué)習(xí),《 JavaScript 高級(jí)程序設(shè)計(jì)(第 4 版)》你值得擁有。整本書(shū)內(nèi)容質(zhì)量都很高,尤其是前十章語(yǔ)言基礎(chǔ)部分,建議多讀幾遍。

前端電子書(shū)

另外,大推一個(gè)網(wǎng)上教程 現(xiàn)代 JavaScript 教程 ,文章深入淺出,很容易理解,上面的內(nèi)容幾乎都是重點(diǎn),而且充分發(fā)揮了網(wǎng)上教程的時(shí)效性和資料鏈接。

學(xué)習(xí)資料在精不在多,二者結(jié)合,定能構(gòu)建你的 JavaScript 知識(shí)體系。

官方文檔

一些框架和工具的學(xué)習(xí),一定要充分利用官方文檔,一般都會(huì)有快速上手的教程。因?yàn)檫@些版本更新很快,有些書(shū)籍跟文章的部分內(nèi)容已經(jīng)不適用了。建議從官方文檔入手,不懂的地方 Google 一下。

博客文章

把博客放在最后,是因?yàn)樗贿m合系統(tǒng)學(xué)習(xí),更適合單點(diǎn)強(qiáng)化,此時(shí)你應(yīng)該擁有自己知識(shí)框架后,并且清楚文章內(nèi)容的知識(shí)點(diǎn)。

2、注重基礎(chǔ),不要盲目學(xué)習(xí)框架

我在準(zhǔn)備面試的時(shí)候,在 JavaScript 上花費(fèi)了大量的時(shí)間。在學(xué)習(xí) Vue 的時(shí)候,覺(jué)得很輕松,文檔上很多東西都能理解。

不要急于學(xué)習(xí)框架和工具,把基本的 HTML,CSS,JavaScript 寫(xiě)熟練了。 運(yùn)用原生技術(shù),寫(xiě)一些基礎(chǔ)的頁(yè)面或組件,框架和工具最終也是通過(guò)這三大基礎(chǔ)技術(shù)實(shí)現(xiàn)。

框架也是建立在原生技術(shù)之上的,扎實(shí)的基礎(chǔ)能讓你在學(xué)習(xí)框架時(shí)暢通無(wú)阻。比如,Vue 指令本質(zhì)上是 HTML 元素特性;Vue 2.x 響應(yīng)式原理是 JavaScript 的訪問(wèn)器屬性的應(yīng)用,Vue 3.0 采用了 ES6 新增語(yǔ)法 Proxy。如果你熟悉 JavaScript ,自然能明白 Vue 2.x 在對(duì)象與數(shù)組上的響應(yīng)缺陷和 Vue 3.0 的改進(jìn)意義。


vue

盲目學(xué)習(xí)框架,容易陷入為了框架而框架的誤區(qū)。只有經(jīng)歷繁瑣的原生 DOM 操作,你才能明白為什么提出 write less, do more 的 jQuery 曾風(fēng)靡一時(shí)。只有經(jīng)歷一手操作數(shù)據(jù)一手操作視圖的工作流,你才能體會(huì) MVVM 數(shù)據(jù)驅(qū)動(dòng)開(kāi)發(fā)的強(qiáng)大之處。理解框架和工具的意義,而不是因?yàn)閯e人用了這個(gè)技術(shù),所以你也要用,最后給項(xiàng)目添加不必要的復(fù)雜度。

從面試官的角度看,一個(gè)框架不熟悉的人,可能是開(kāi)發(fā)經(jīng)驗(yàn)稍欠,而一個(gè)基礎(chǔ)不扎實(shí)的人,很大程度學(xué)習(xí)能力不強(qiáng)。這種看法,在校招,尤其是大廠的校招,尤為突出,因?yàn)楣靖⒅氐氖菍W(xué)生的可培養(yǎng)性。

3、精準(zhǔn)出擊,逐個(gè)擊破面試題考點(diǎn)

面試本質(zhì)也是考試,面試題就起到很好的考綱作用。想要取得優(yōu)秀的面試成績(jī),刷面試題是必須的,除非你樣樣精通。

這是288頁(yè)的前端面試題

288頁(yè)面試題

當(dāng)然我也刷了字節(jié)題,由于篇幅的原因就不貼圖了,想要的可以可以繼續(xù)看下去~
在看面試題的時(shí)候,應(yīng)該從面試題發(fā)現(xiàn)考點(diǎn),然后深入學(xué)習(xí)考點(diǎn)相關(guān)的知識(shí),千萬(wàn)不要陷入背題的誤區(qū)。畢竟題目是多變的,但考點(diǎn)相對(duì)固定。

兼聽(tīng)則明,偏聽(tīng)則暗。 對(duì)于網(wǎng)上看到的各種面試題答案,應(yīng)該思考是否正確可行,是否還有改進(jìn)的地方。大部分博客對(duì)知識(shí)點(diǎn)的總結(jié)無(wú)法做到完全全面。所以,我對(duì)很多考點(diǎn),我都會(huì) Google 一下,結(jié)合多篇文章,然后總結(jié)出自己的答案。

4、面試是一種輸出

很多人刷了很多面試題,看了很多面經(jīng),知識(shí)儲(chǔ)備充分,但面試的時(shí)候,即使是自己熟悉的考點(diǎn),也很難令面試官滿意。其關(guān)鍵原因在于,學(xué)習(xí)是一種輸入,但面試是一種輸出。

面試需要的不是你懂,而是要讓面試官知道你懂,你必須有能力將考點(diǎn)中的要點(diǎn)聯(lián)系起來(lái),連貫的說(shuō)出來(lái),這并不是看過(guò)一次就能達(dá)到的。但不少人以為看過(guò)這類文章,知道這個(gè)點(diǎn),就可以了。事實(shí)上,只是“知道”遠(yuǎn)遠(yuǎn)不夠。

這種問(wèn)題,根本上,是對(duì)技術(shù)點(diǎn)的不夠深入,不夠熟悉,沒(méi)有形成自己的理解。我也經(jīng)歷過(guò)這一過(guò)程,你知道這些概念,自己也能分清,但難以向別人講明白。簡(jiǎn)單測(cè)試一個(gè)CSS問(wèn)題:什么是BFC? 你肯定知道叫塊級(jí)格式化上下文,問(wèn)題是,怎么向面試官解釋這個(gè)東西?

為了解決這個(gè)問(wèn)題,首先,學(xué)習(xí)過(guò)程注重理解而不是記憶。

第二,一個(gè)知識(shí)點(diǎn),需要通過(guò)多篇文章學(xué)習(xí),重復(fù)學(xué)習(xí),加深理解,總結(jié)出自己的答案和看法。

第三,刻意練習(xí)。如果你有伙伴,可以相互提問(wèn)。如果沒(méi)有,也可以自問(wèn)自答。

5、注重表達(dá)邏輯

如果上一點(diǎn)是說(shuō)能正確回答問(wèn)題,這點(diǎn)則是能更好的回答問(wèn)題。一個(gè)邏輯清晰的回答,能讓面試官感受到,面前的小伙子不僅熟悉這個(gè)問(wèn)題,還有比較優(yōu)秀的語(yǔ)言能力和邏輯能力。

比如,常見(jiàn)問(wèn)題:說(shuō)說(shuō) var, let/const 的區(qū)別。大部分人都能羅列出它們的區(qū)別和注意點(diǎn),但這很難給面試官留下什么印象。但是,如果你添加幾句聯(lián)系性的語(yǔ)句,效果就不一樣了:

var是 ES5 之前的變量聲明方式,存在很多容易產(chǎn)生誤解的缺陷,具體體現(xiàn)在:……(羅列 var 的一些不足), 針對(duì)這些問(wèn)題,ES6 提出了 let/const 的變量聲明方式,它們具有一些新的特性:……(羅列 let/const 特性)。

這幾句簡(jiǎn)單的連接,讓整個(gè)回答從一個(gè)簡(jiǎn)單的要點(diǎn)堆砌變成關(guān)系密切的表達(dá)。

然而,這并非易事。前提是必須要有較好的邏輯思維,既然選擇這行,相信各位這點(diǎn)沒(méi)有問(wèn)題。

在學(xué)習(xí)每一個(gè)技術(shù)點(diǎn)的時(shí)候,都要注意一些問(wèn)題:是什么?為了解決什么問(wèn)題?如何實(shí)現(xiàn)的,有沒(méi)有更深的原理?如何使用?使用的時(shí)候需要注意什么?有哪些應(yīng)用的場(chǎng)景?有什么不足?這些不足能否避免? 這些問(wèn)題能讓你更加全面地體會(huì)各個(gè)問(wèn)題的聯(lián)系。

需要指出一點(diǎn),寫(xiě)博客對(duì)這方面有很大的幫助。

即使你沒(méi)有寫(xiě)過(guò)博客,建議在備考的時(shí)候,使用思維導(dǎo)圖等工具,并且經(jīng)常整理已學(xué)知識(shí)的聯(lián)系。

可能有人跟我一樣面試會(huì)緊張,一緊張就容易腦子空白。我的方法是,把面試官假想成是來(lái)請(qǐng)教我問(wèn)題的同學(xué),不得不說(shuō)這種效果真的很好。(面試官表示老子懂的比你多了去了hh)

6、揚(yáng)長(zhǎng)避短,但盡量爭(zhēng)取

對(duì)于那些每個(gè)應(yīng)聘者必備的技能,必須要熟悉再熟悉,不要讓基礎(chǔ)成為自己的短板,切合上一條注重基礎(chǔ)。而對(duì)于其它技能,深入學(xué)習(xí)其中的幾個(gè),然后想辦法引導(dǎo)面試官提問(wèn)這些方面的問(wèn)題。

最有效最常見(jiàn)的引導(dǎo)方式是簡(jiǎn)歷。簡(jiǎn)歷信息往往是面試官出題的依據(jù),所以簡(jiǎn)歷一定不要寫(xiě)自己沒(méi)接觸過(guò)的技術(shù),即使招聘信息有這項(xiàng)要求,如果面試官提問(wèn)簡(jiǎn)歷上的內(nèi)容,發(fā)現(xiàn)你根本不會(huì),那么,你簡(jiǎn)歷上的所有技能點(diǎn),面試官都會(huì)打個(gè)問(wèn)號(hào)。對(duì)于你有深入學(xué)習(xí)的方面,可以單點(diǎn)列出,比如,熟悉 JavaScript,能熟練操作 DOM,盡管 JavaScript 包含了 DOM,但你依然可以強(qiáng)調(diào)一下。

面試官往往會(huì)根據(jù)應(yīng)聘者的回答來(lái)決定下一個(gè)問(wèn)題,我們也可以利用這點(diǎn),在面試回答中引導(dǎo)。在回答開(kāi)放性問(wèn)題時(shí),這種方法十分有效,但切記點(diǎn)到為止,不要過(guò)分深入導(dǎo)致偏題。比如,面試官提問(wèn):對(duì)一個(gè)已有的網(wǎng)站,你哪些的性能優(yōu)化方案? 當(dāng)你闡述性能改進(jìn)提議之后,末了,加一句“除了性能,一個(gè)網(wǎng)站考慮還可以從安全性和 SEO 這些方面進(jìn)行優(yōu)化”。如果面試官 Web 安全和 SEO 感興趣,那他就中套了。

如果面試官拋出了一個(gè)你稍有了解但不熟悉的問(wèn)題。不要慌,先思考片刻。整合自己知道的,做一些合理的推測(cè)。然后在回答的時(shí)候,先表明自己不是很熟悉,但在學(xué)習(xí)其他知識(shí)的時(shí)候有接觸過(guò),簡(jiǎn)單說(shuō)說(shuō)自己的了解和推斷。不少面試官會(huì)故意提出一些稍微超出面試者能力的問(wèn)題,考量面試者的臨場(chǎng)能力和遷移學(xué)習(xí)能力。

萬(wàn)一,明確面試官問(wèn)題后,發(fā)現(xiàn)自己絲毫不會(huì),直接表明,把面試官的注意力轉(zhuǎn)移到下一道題,停留的時(shí)候長(zhǎng)了,可能會(huì)放大這道題的影響。從容應(yīng)對(duì)接下來(lái)的題目,面試官不會(huì)因?yàn)橐粌傻李}淘汰一個(gè)各方面都很優(yōu)秀的面試者。

我目前是在職前端開(kāi)發(fā),如果你現(xiàn)在也想學(xué)習(xí)前端開(kāi)發(fā)技術(shù),在入門(mén)學(xué)習(xí)前端的過(guò)程當(dāng)中有遇見(jiàn)任何關(guān)于學(xué)習(xí)方法,學(xué)習(xí)路線,學(xué)習(xí)效率等方面的問(wèn)題,你都可以申請(qǐng)加入我所在的前端學(xué)習(xí)交流裙:前面:42137 后面:4697。里面聚集了一些正在自學(xué)前端的初學(xué)者,轉(zhuǎn)行者,初階者,文章內(nèi)包含的內(nèi)容,余下的字節(jié)題,感興趣的可以點(diǎn)此獲取~

7、后話

對(duì)于面試,說(shuō)幾句個(gè)人觀點(diǎn)。

面試,說(shuō)到底是一種考試。正如我們一直批判應(yīng)試教育脫離教育的本質(zhì),為了面試學(xué)習(xí)技術(shù)也脫離了技術(shù)的初心。但考試對(duì)于人才選拔的有效性是毋庸置疑的,幾千年來(lái)一直如此。除非你有實(shí)力向公司證明你足夠優(yōu)秀,否則,還是得乖乖準(zhǔn)備面試。這也并不妨礙你在通過(guò)面試之后按自己的方式學(xué)習(xí)。

其實(shí)在面試準(zhǔn)備階段,個(gè)人的收獲是很大的,我也認(rèn)為這是一種不錯(cuò)的學(xué)習(xí)方式。首先,面試問(wèn)題大部分基礎(chǔ)而且深入,這些是平時(shí)工作的基礎(chǔ)。就好像我們之前一直不明白學(xué)習(xí)語(yǔ)文的意義,但它的意義就在每天的談話間。

所謂面試造火箭,工作擰螺絲。面試往往有更高的要求,也迫使我們更專心更深入地去學(xué)習(xí)一些知識(shí),也何嘗不是一種好事。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容