2017年7月畢業至今,已經快兩年了,這兩年的的技術積累得到到底怎樣呢?個人覺得,面試是檢驗技術的唯一標准。所以,決定准備一份簡歷,到頂尖的互聯網公司試一下,廣州這邊,最好的公司,當然就是微信啦。正好有師姐是在微信的,所以把簡歷發給了她,同時,我自己也在boss直聘上投了一個崗位,但是后來尷尬的事情發生了:
我的簡歷被微信的其他部門鎖定了!就是 boss直聘 投遞的微信開放平台崗位鎖定了,所以,我就找 HR 說明了情況,說我對另外一個部門比較感興趣,要求釋放我的簡歷。
雖然 HR姐姐 還是不太願意取消,不過最后在我的再三要求下,她還是取消了哈。這件事情也說明了一事實:一份好的簡歷,是多么的重要!好的簡歷,甚至會讓同一個公司的不同部門搶着不放的。所以,如果你想找一份好的工作,必須要花時間,先好好的准備一下簡歷,個人覺得,寫一份好的簡歷,最起碼需要准備兩天吧,把自己在平時工作中最有成就感的地方列出來。
OK,簡歷被鎖的問題搞定了,接下來就真正的到面試環節了。因為面試是一個十分敏感的事情,白天我不太好請假去面試啊,萬一被老大知道我不安分、想跳槽了怎么辦啊。所以,當3月27日早上微信的HR打電話來跟我約面試時間,我約了3月28日晚上7.30。也就是上周四的晚上哈。
這可是我畢業后的第一次面試啊,而且還是微信,內心肯定是非常緊張的!好不容終於到了周四晚上6點鍾了(其實還沒有到下班時間,我們是6.30才能打卡的),我飯都沒有來得及吃,匆匆的打車過去TIT創意園。從信息港過去那邊雖然不到10公里,但是因為下班高峰期,差不多50分鍾才到。
7.30終於到了,面試官先讓我做筆試題,給的時間是40分鍾。這筆試什么題目都有,有操作系統、數據庫、C/C++、算法,當然因為是前端面試,也有一些前端的題目。其實這筆試題對我來說真的很難,因為太多東西都不會,像 MySql、Linux、C/C++ 這些我一個前端切圖仔除了在大學課堂上學習一點兒之外,幾乎是沒有任何的實戰過。
大概8.20面試官說時間到了,他把我的答案大概看了看,然后就開始面試了。先是作自己介紹,接着就開始面試。印象中記得的題目是以下這些。
- 先是看簡歷上寫的項目經驗,問一上些項目上的問題,比如如何編寫 js-sdk, 如何去修改 weui 庫,遇到最大的難題是什么及如何去解決的。
- 數組去重的方法有哪些?
- 如何判斷左右小括號是否全部匹配。如
( ( ))()((((()))))
- JS 的事件機制
- 如何劫持 XMLHttpRequest 的 send() 方法,調用他的時候,把參數輸出到控制台。
- git 和svn 的區別,git 的本地倉庫有什么用呢?
- react 和 vue 的區別
- 為什么簡單的項目選擇使用 jQuery 而不用 vue 。
- 跨域解決方案有哪些?jsonp 的原理及缺點?及如何判斷 JS 加載完成了?IE7不支持 script.onload 事件怎么辦?
- 瀏覽器的渲染機制?
- 瀏覽器最大並發量限制是多少個?及如何去突破這個限制?
- 緩存機制?
- 內存泄漏,及如何主動的去發現是否存在內存泄漏?
- 你們平時項目的 JS 異常有做上報處理嗎?是什么實現的?
- xss 攻擊的原理和預防?
- eslint 是怎么使用的?
- webpac打包性能優化,如何分塊打包,及 HMR 的實現原理。
- React的虛擬dom是什么?及 diff 算法原理?
- SSR(服務端渲染)的作用,及它有什么缺點???
這些題目雖然看起來都很簡單,大概都能答得出來,但是每個題目往深處或者底層展開討論,就不容易了。特別是這個面試官,每個題目,他都會一層層的放深入去問。比如說,JS的事件機制,大家可能都知道通過 event loop 來實現的,但是如果再深入點,JS不是單線程的嗎,那 event loop是怎么實現的?以及事件其實是分成宏任務和微任務兩種的,可能很多人都不知道。再比如,webapck的 HMR 原理,可能很多人都知道當文件修改后,webpack 會對文件進行重新編譯並通過 socket 發送通知給瀏覽器,但再深入一點,瀏覽器是怎么知道修改了哪里?該怎么去替換模塊呢? 和面試官深入展開的討論的內容比較多,下次再單獨寫一篇文章整理出來。
當然,可能朋友們最關心的問題是,這次面試過了嗎。答案是: 不通過。我剛面試完后就問了師姐,面試官給的評價是:中規中矩,有點一般,要深入一下底層。當時就已經知道涼涼了~
然后第二天也收到了正式的短信通知,面試結果為:不通過。
雖然結果沒有通過,但是經歷這次面試,認識到了自己最大的缺點:學習不夠深入底層。學習要追根究底,不要大概懂了就停止,而是要徹底懂了才行!換句放說就是:不僅要知其然,還要知其所以然。