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