我目前是在職前端開發(fā),如果你現(xiàn)在也想學習前端開發(fā)技術,在入門學習前端的過程當中有遇見任何關于學習方法,學習路線,學習效率等方面的問題,你都可以申請加入我的前端學習交流裙:
前面: ++++++++ 282+++++++++++
中間: ++++++++++549+++++++++
最后: +++++++++++184++++++++
里面聚集了一些正在自學前端的初學者裙文件里面也有我做前端技術這段時間整理的一些前端學習手冊,前端面試題,? 前端開發(fā)工具,PDF文檔書籍教程,需要的話都可以自行來獲取下載。
19年年底的時候從工作了兩年半的公司離職,用了半個月的時看面試題及刷算法,半個月后開始投遞簡歷,分別投了阿里、百度、快手和字節(jié)跳動,除了阿里一面匆匆忙忙電話面試把我咔掉了之外,百度、快手和字節(jié)跳動都是現(xiàn)場面,三家offer全都拿到,最終選擇了字節(jié)跳動。
三家面試,都是三輪技術面加一輪hr面,實際上,無論是哪家的面試,問的東西都是很相似的,都可以在網(wǎng)上搜到答案,都一定存在于某篇面試題匯總文章內,因為技術就是那個技術,就算是問出花來,本質或原理還是一樣的,想看詳細的真實面試題,掘金、??途W(wǎng)、知乎都有很多,隨便找下都看不完。
授人以魚不如授人以漁,這篇文章還有其他我覺得更值得分享的東西,所以為了避免篇幅過長,我就不詳細一一列舉我在這些公司中都碰到過什么題目了,每家各提兩句我印象比較深刻的。
百度
百度是我被阿里咔了之后面試的第一家公司,年前北京還是可以現(xiàn)場面試的,所以我也是去百度現(xiàn)場面。
一面問的基本上都是基本功了,值得一提的是,百度是三家中唯一一個問我 CSS 問題的,大概就是面試官現(xiàn)場從他正在做的業(yè)務中拿了一個布局場景,讓我寫樣式做好布局(不是圣杯布局或者雙飛翼布局之類的),主要考察對 CSS 的靈活運用,需要稍微動點腦筋。
二面也問了一點基礎,主要還是考察了一些場景解決方案或設計方案,算法的話,就問了一個原理是二叉樹后序遍歷的題目,比較簡單,沒費什么事就做出來了
三面應該是經理面,就問了一個場景設計題,然后就開始談人生理想,為什么離職啊,有什么規(guī)劃啊,在之前團隊做過什么有貢獻的事情啊,碰到過什么難題啊最后又是怎么解決的啊,加入百度后你想做什么啊,等等,反正我感覺我回答這些問題比我回答技術題難多了,因為有些問題太抽象了,我都不知道想問什么,但又不好一直追問他到底想問什么,我只能根據(jù)我的理解來回答,一邊回答一邊還要察言觀色,直到面試官感覺差不多了才能停,說得我口干舌燥,我寧愿多問我?guī)讉€技術問題。
總結一下,百度的這場面試,更傾向于考察實際做事能力,問的都是很實際的問題,如果恰好曾經在實際工作中碰到過這些問題,或者看過相關的文章,回答起來基本是問題不大的。
百度的部門是百度APP,算是主航道吧,也挺想去的,但最后因為一些原因還是拒了。
快手
一面同樣還是考察基礎,面試官的工作技術棧是 React,我的是 Vue,面試官也沒有為難我,就從 Vue問起,問了一些面試題常見的什么響應式什么diff算法什么觀察者模式之類的,因為我之前系統(tǒng)性地看過 Vue源碼,所以回答起來也沒什么難度,并且回答完了之后,順便給他額外講了下 Vue的執(zhí)行流程和相關源碼原理之類的,說得比較多,面試官還是挺滿意的。
二面問了原型鏈等比較高級抽象的東西,然后問的其中一個算法是洗牌算法,我感覺問這個題目其實不太好,因為洗牌算法這個算法有點太獨立了,不是什么回溯啊動態(tài)規(guī)劃啊分治啊這些,是無法舉一反三的一個題目,如果你恰好看過洗牌算法的實現(xiàn),就那幾行代碼,你閉著眼睛都能寫出來,如果你沒看過,可能你想破腦袋都不知道該怎么寫,當然,換個角度,運氣也是實力的一部分。
三面應該是團隊的前端負責人吧,和百度三面問得差不多的問題,都是先來一道場景設計題考察一下技能運用能力,然后開始問規(guī)劃之類的人生理想。
總結一下,快手的這場面試考察得更加全面,同時和三面的前端負責人挺能聊得來,感覺挺合適的,而且快手也是我主動投遞的最后一家公司,面完之后第二天我就回家過年了,就等著年后入職了,只不過還是沒去成,因為我跳車字節(jié)跳動了。
字節(jié)跳動
其實我沒打算投字節(jié)跳動的,是過年在家玩耍的時候字節(jié)的hr 把我從簡歷庫撈出來給我打電話讓我投一下,說可以年后視頻面試,我想了下,投就投吧,反正也沒事,萬一快手那邊出了什么岔子我還有后路可走,然后就約了視頻面試,結果沒成想就過了。
三面面試官就是我現(xiàn)在的leader,聊完后覺得也很對眼,再加上我一年前和半年前其實投過字節(jié)跳動兩次,第一次過了,但因為某些原因我沒去,第二次沒過,現(xiàn)在是第三次,過了,比較糾結,因為已經接了快手的電子offer,反悔不太好,但又想了下,可能這就是緣分吧,我感覺就算我這次不進字節(jié),將來早晚也要進,晚進不如早進,所以就只好對不住快手那邊了。
成功面試的幾個經驗:
經過這些面試,加上我看過的一些面經,我稍微總結了一下大廠面試成功的幾個經驗。
學歷
這很好理解,無論你工作了幾年,hr或面試官看簡歷第一眼想看的就是學歷,這是一個很直觀地給簡歷打分的點,好的學歷不一定能讓你通過面試,但卻可以讓你的簡歷通過初篩,很多人可能就因為學歷這一關,導致連面試流程都進不去,可能空有一身本事卻無法施展。
但這也是可以理解的,大廠簡歷太多了,hr不可能給所有人面試機會的,否則面試官其他的啥也不干加上24小時連抽轉也面試不過來啊,學歷是一個很直觀的篩簡歷的方式。
工作經歷
學歷這種事情既然發(fā)生了就沒法改變了,只能認了,但學歷最大的作用其實還是讓簡歷通過初篩,如果你的學歷不足以讓你的簡歷通過篩選,那么你還可以將希望放在一個好的工作經歷上。
你的學歷不夠讓你立刻進大廠,但可以先進一些二三線廠或者小型的獨角獸啊,那這可選擇的范圍就很多了,在這個層次的公司老老實實待個兩年,期間別忘了修煉好基本功,別荒廢了。
兩年后你的標簽就是一個學歷不是太好,但工作經歷還不錯,并且比較沉得住氣的一個候選人,一般情況下,大廠給你個面試機會肯定還是沒問題的,進入面試流程后,那就是你真正憑本事的時候了。
這里有三點需要注意:
作為跳板的公司不能太小了
最起碼是二三線或者獨角獸,公司太小了也不可能給你太好的項目經歷,另外,面試官和hr大概率得聽說過你這個公司。
不要頻繁跳槽
如果你是從騰訊跳到阿里再跳到微軟谷歌,哪怕你半年一跳都沒有任何問題,但如果你是從一個不知名小廠跳到另外一個不知名小廠,這種一年一跳hr都嫌你跳得太頻繁了,覺得你不穩(wěn)定,半年一跳就沒法看了,如果你在小廠,然后將來想去大廠,那么就要穩(wěn)住,別把簡歷搞花了。
不要悶頭搬磚
無論在哪工作,肯定都是以寫業(yè)務代碼居多,也就是搬磚了,但既然你打定了主意將來要去大廠,那么就絕對不能真的局限于搬磚,要把磚搬出花來
比如發(fā)現(xiàn)項目中有個結構不太合理,但湊合著用問題也不是太大,那么你就得想我不能湊合,我得把它整舒服了才行,然后說干就干直到真的把它搞定,比如你覺得工作流程中有些步驟是重復工作,那你可以考慮下是不是可以造個輪子解決這個問題。
我經歷的面試,很多情況下就是讓你給出解決方案,考得就是技術的實際運用能力,幾乎每一輪面試我都會碰到這種題目,這就要求你在平時工作中要有意識的積累,光搬磚你是說不出來完整的解決方案的,當然,一些常見的基礎知識比如原型鏈、閉包、diff算法等也都是會問的,所以你不能因為平時搬磚很少用到這些就不管了,有些知識點你可能知道是怎么回事,但就是說不明白,那也是不行的,一定要真的弄明白了。
總而言之,就是要有自己的思考,不能光顧著搬磚,因為搬磚誰都會,大家都一樣,都是搬磚的,憑什么你能去大廠我不能去?所以你就得比他們強才行,沒條件創(chuàng)造條件也要上。
個人修煉
如果你因為實在太倒霉,去的公司接連倒閉或者領導們都太xx,你沒辦法不頻繁跳槽,自然也沒有可以拿出手的好項目,然后把簡歷搞花了,也不是就無法補救了的,外界條件靠不住,你還可以純靠自己啊。
比如寫博客,記錄自己平日的技術思考,倒騰出的解決方案,創(chuàng)建或者參與開源項目,把自己的博客和 Github整得有模有樣,各種分析、源碼、解決方案、開源項目,面試官點進去看了后笑容滿面,你還愁你沒有面試機會嗎?
個人修煉也有助于我上面提到過的面試官喜歡問的場景設計題
比如,現(xiàn)在需要你重構百度app首頁的feed流,feed流的展示的每一條數(shù)據(jù),它的功能、樣式會根據(jù)這條數(shù)據(jù)不同歸屬有不同的效果,比如廣告、百家號、小視頻等,點擊數(shù)據(jù)流會有一些操作,比如打開一個modal或者播放一個小視頻或者跳轉一個頁面,那么請你說下當你接到這個需求時你想要怎么設計?
這是一種考查知識點很多,并且問的問題范圍比較大的題目?不會涉及到具體的問題點,考察的就是候選人的知識廣度和深度,平時的積累,考慮問題的維度等方面,上面那個題,是沒有明確答案的
這個時候就是考驗候選人個人修煉的時候了,有的人可能一臉懵逼隨便說幾句就不知道該繼續(xù)說什么了,有的人則可以跟你說上幾個小時還意猶未盡,如果我是候選人,我可能會從長列表的優(yōu)化、跨域/跨頁面通信、配置化(可維護性)、數(shù)據(jù)預加載、數(shù)據(jù)緩存、頁面/組件無縫切換/轉場動畫、離線包/ssr等角度來回答這個問題,如果沒有這些知識儲備,是不可能想到這些的,場景設計題是一個可以讓面試官全方位認知你,同時也是你自由發(fā)揮的一類題目,所以一般大廠面試都會問到這類題目。
然后也有幾點需要注意:
高質量博客
博客既然是反映你自己技術水平的一個地方,那么首先就要保證原創(chuàng),確實是你的東西,如果全是搬運的 API文檔或者其他人的東西或者小白教學的無腦文,那么還不如沒有,面試官看了后只會覺得你難道就這點水平?所以,博客的質量一定要保證
持之以恒
不能三天打魚兩天曬網(wǎng),一定要堅持下去,形成一個連貫的體驗,一是讓人一看就覺得你這人確實是認真在做這件事情,二是只有這樣你才能有足夠多的積累,幾十篇文章肯定比寥寥幾篇文章更能讓面試官全方面了解你
亮點
這其實是一個在很多時候可以一招制勝的關鍵
關于亮點這個東西,我在 前面一篇文章的最后 其實已經說過了,這里我就知道照抄過來了:
最近參加了幾場面試,發(fā)現(xiàn)面試官們都很喜歡問你有哪些亮點,不管是業(yè)務層面還是技術層面,并會按照你給出的答案深入下去,看看你這個亮點到底有多亮
一個追問你亮點的面試官,其實是比較愿意給你機會的,技術的范圍太廣,可能他問的你恰好不熟悉,這是很常見的事情,比如你熟悉 vue,他團隊內用的都是 React,他追著你問 React可能很難問出結果來,另外一方面,你也無法保證在每場面試中都保持最佳狀態(tài),萬一你跟面試官根本不在同一個頻道上,你們之間相互聽不懂對方在說什么,還怎么繼續(xù)?所以把選擇權交給你,給你機會讓你自己選,那么這就引出另外一個問題,如果你真的沒做過什么有亮點的事情怎么辦?給你機會你都抓不住,這可怪不到別人了
所以,如果你有一個較高的追求,那么在平時的工作中,哪怕是天天寫業(yè)務代碼,你也要有自己的思考,這個組件可不可以換一種寫法,那個需求是不是可以簡化一下,項目里的webpack需不需要升級到最新版,這個問題可不可以造個輪子來一勞永逸地搞定它?
無關問題大小,都可以引發(fā)思考,實際上,一般情況下也不太可能有什么大問題等著你去解決,大部分情況下都是小問題,但問題再小,解決得多了那也是一種可觀的積累,通過這種積累,在團隊內部,你就有了可以拿出來說的輸出貢獻,離開了團隊,你也能以此抓住面試官給你的機會
有時候,這種亮點比你背面試題刷算法還好用,畢竟,面試題或者算法題會就是會,不會就是不會,但是亮點這種東西可沒有標準答案,能說的可多了去了
需要注意的是,你的這個亮點一定要足夠亮,不能就亮一秒就沒了,容易閃著眼,必須要足夠堅挺。
也就是你必須要在你這個亮點上有足夠的深入和見解,上下游和細枝末節(jié)都要搞清楚,足以應對面試官展開而來的提問,這樣面試官才會覺得你確實是擅長這方面。
軟素質
簡歷用點心
簡歷是招聘流程開始的第一步,首先最起碼找個好點的模板,網(wǎng)上很多
然后就是內容要好好寫,切忌羅列毫無意義的技術點,什么jq/vue/vuex/react/redux/http/cdn/vim/git,不是不能寫,而是你別占用太多篇幅煞有其事地介紹這些,一句話完事就行了,要突出重點
不要寫精通什么什么東西,精通這個東西每個人理解得都不一樣,你覺得精通就是能在任意場景下熟悉運用。面試官可能覺得你既然精通 js,怎么 vue是 Evan You寫的而不是你呢?搞不好要為難你一把,所以盡量避免這些可能引起爭論的東西
重點寫你做過的項目,項目用到的技術棧,大概功能是什么,你在其中扮演了什么角色,寫重點就行了,別寫得跟文檔一樣又多又長,細枝末節(jié)的東西等到面試的時候會問你的,三年以內工作經驗的簡歷最好不要超過兩頁
如果你博客或 github上有點東西,最好把鏈接帶上,如果就是一個空殼子,沒什么內容,就別放上去了
另外,個人建議,簡歷上最好放張照片,相當于給簡歷增添特定的主語,有明確的個人屬性,跟長得好不好看關系不大,除非你實在是覺得自己長得有點對不住全國觀眾那就算了
一定要會表現(xiàn)自己
面試官的初衷肯定是想盡可能多地了解你,這樣才能更好地評估你的能力,但問的問題可能就一兩句話,那么作為候選人,你不能就因為面試官只問你1+1等于幾然后你回答個2就完事了,這種回答雖然合格,但不是面試官最想得到的答案
給出了標準答案后,你應該根據(jù)主動面試官問的問題繼續(xù)發(fā)散開來,比如為什么等于2,有什么實際運用的場景,以往有沒有等于3的情況?
具體點話,比如面試官給你出了個原型鏈的題目,那么你要做的就不僅僅是把這個道題做出來,除此之外,最好還要主動說一下原型鏈的相關原理,最好現(xiàn)場畫個關系圖出來,然后說下有哪些應用場景,比如原型鏈繼承,如果你說了這個,那么其實還可以繼續(xù)往繼承上延伸(盡管面試官根本沒問你這個),總之就是要把你的知識點全都體現(xiàn)出來,盡可能多地給面試官透露你的能力。
這不是偷奸?;?,這恰恰是面試官想要看到的,他不需要絞盡腦汁地刻意引導,你就自己主動坦白了,面試官肯定高興啊,最起碼說明你懂得確實多,因為知識點掌握的不咋滴的人,他也說不出這么多來。
你通過在某個知識上深入或發(fā)散的表現(xiàn),一定程度上,也可以觸發(fā)暈輪效應,某一方面的突出會給面試官留下深刻的印象,就像是月亮的光暈,導致面試官下意識地就忽略了你其他方面的不足。
很多的程序猿可能就是不善于言辭,但這又不是讓你搞社交,技術方面的東西我覺得還是可以開口多說兩句的。
第一印象
面試有時候也要看眼緣,有的面試官,在你剛看到他的時候,你就知道這場面試肯定過不了,同樣的,有的面試官,在剛看到你的時候,就決定不給你過了
所以第一印象很重要,程序猿不需要西裝革履,但也別太懶散,特別是個人的精氣神方面,決不能弱了,一定要有精神,不要因為擔心面試過不了而一副誠惶誠恐的樣子,你越這樣反而越過不了。
面試你的人,基本是就是你將來的同事、leader或者隔壁組的同事,換做是你,你肯定也不想招個看著就邋遢,性格太負面的人進來當同事,所以一定要自信,需要注意的是,自信和狂妄是兩回事,自信和謙虛也并不沖突。
小結
作為技術人,最重要的就是自己的技術能力,很多人在剛畢業(yè)的時候一腔熱血,每天打雞血一般通宵工作也不嫌累,但是后來被社會毒打的次數(shù)多了,很容易就疲倦了,可能有的人喊著喊著就放棄了,開始安于現(xiàn)狀,這是很危險的事情,技術這條路不進則退,只有持續(xù)學習才能在技術這條路上越走越遠。
而另外一方面,客觀的困難確實又是存在的,比如工作量太大沒時間,前端技術發(fā)展太快學不完等,這就需要你找到一條可持續(xù)發(fā)展的道路,比如每周仔細研讀一篇高質量技術文章,或者定期地進行總結,不要給自己太大的壓力,但又必須要保持學習和進步。
無論你選擇的方法是什么,最終最重要的還是要落到實處,收藏了一大堆優(yōu)秀文章的鏈接放在收藏夾吃灰是沒用的。