金三銀四魔都兩年半前端面經

unsad發表於2019-04-18

前言

先介紹下個人基本情況,16屆本科非計算機相關專業,畢業轉行前端,過年後裸辭休息了半個月,然後到三月份開始全力準備面試,主要是過去做過的專案總結,刷演算法題,鞏固基礎知識之類的。3月末開始面試。因為目前網上面經還是以1~3年居多,我投簡歷對標的3~5年崗位,考察點確實有些不一樣,這裡把接近3個星期的面試經歷分享出來,希望能幫到大家。

過程

公司選擇

因為我覺得面試更多的算是一個技術交流過程,所以本著和一些大佬多聊聊也沒壞處的想法,基本上JD寫的比較有誠意招人的公司或者眼熟的公司都會投一投簡歷,不過真正的目標不多,比較偏好於非996的符合個人價值觀的公司。

達達京東到家(過)

筆試

都是些基礎選擇題,考察計算機網路,事件迴圈機制,閉包,this這些。

一面

  1. 三次握手和四次揮手詳細介紹
  2. TCP有哪些手段保證可靠交付
  3. URL從輸入到頁面渲染全流程
  4. 如何預防中間人攻擊
  5. DNS解析會出錯嗎,為什麼
  6. ES6的Set內部實現
  7. 如何應對流量劫持
  8. 演算法:top-K問題,分成top-1,top-2,top-K三小問

二面

  1. 跨域
  2. webpack的plugins和loaders的實現原理
  3. vue和react談談區別和選型考慮
  4. webpack如何優化編譯速度
  5. 事件迴圈機制,node和瀏覽器的事件迴圈機制區別

三面

  1. 單元測試編寫有哪些原則
  2. 一個大型專案如何分配前端開發的工作
  3. 懟專案

個人評價

面試整體上偏重基礎知識,1,2面基本沒問專案,加班情況聽hr說屬於正常程度,有雙休,環境也挺不錯的,感覺是家不錯的公司。

達觀資料(過)

筆試

同樣都是基礎題,注意有兩道演算法:柯里化通用實現和two-sum問題。

一面

  1. typescript有什麼好處
  2. vue專案中如何約束rxjs資料的型別
  3. rxjs高階資料流定義,常用高階資料流操作符

二三面

一起說了吧,基本沒問基礎題,全圍繞著我的簡歷問專案細節,側重於rxjs和typescript這塊內容。

個人評價

做NLP的公司,聊下來感覺公司很重技術,技術棧Angular + Python,也有嚴格的code review,不加班,提倡工作和生活分開。聽下來是不是感覺挺不錯的?不過有一點比較坑的我要說下,hr給的薪資是我報的期望薪資的最下限,也是我拿到的所有offer中最低的,漲幅10%,更絕的是試用期還要減1k工資,社保公積金按10k交,這就很微妙了emmm。

英語流利說(掛)

一面電面

  1. JWT優缺點
  2. 選擇器優先順序
  3. 基本資料型別
  4. RxJS冷熱流區別
  5. RxJS除錯方法
  6. nginx負載均衡配置
  7. 前端效能優化手段
  8. 針對React的效能優化手段
  9. 301 302 307 308 401 403
  10. vue的nextTick實現原理以及應用場景
  11. vue元件間通訊
  12. 談談XSS防禦,以及Content-Security-Policy細節

二面

  1. 場景題:一個氣球從右上角移動到中間,然後抖動,如何實現
  2. 場景題:一個關於外邊距合併的高度計算
  3. mobx-react如何驅動react元件重渲染
  4. forceUpdate經歷了哪些生命週期,子元件呢?
  5. React key場景題:列表使用index做key,刪除其中一個後,如何表現?
  6. 演算法:實現setter(obj, 'a.b.c' ,val)
  7. RxJS相對於其他狀態管理方案的優勢?

三面

  1. 手寫氣泡排序
  2. JWT細節,適用場景
  3. 跨域
  4. 方案題:不同前端技術棧的專案,如何實現一套通用元件方案?

個人評價

感覺是家有點東西的公司,考察的題目相對偏硬核和細節,也是唯一一家把我掛了的公司,雖然不知道掛在哪了。和hr聊的不算很愉快,我提到個人抗拒996,然後問貴司工作時間的時候, hr的回覆是“我們的員工都是很自覺推動工作那種,況且你還年輕,趁這個時候多拼一下“,我只能表面笑嘻嘻了。加班應該算比較嚴重的,不過團隊成員還是有水平的。

拍拍貸(過)

一面

  1. ES6特性
  2. 閉包和this一起談談
  3. postcss配置
  4. Promise內部實現原理
  5. vuex, mobx, redux各自的特點和區別
  6. react生命週期
  7. 各方面談談效能優化
  8. serviceworker如何保證離線快取資源更新
  9. virtual dom有哪些好處

然後換了個有黑板的面試間,狂懟專案,各方面都問到了。

二面

總監面,把剛才一黑板的專案架構圖全部擦掉,再來談一遍。

三面

交叉技術面

  1. Vue3 proxy解決了哪些問題?
  2. Vue響應式原理
  3. 釋出訂閱模式和觀察者模式的異同
  4. 圖片懶載入實現
  5. css垂直居中
  6. CI/CD流程
  7. 談談效能優化

個人評價

主要做混合app和node方向的工作,成長空間應該可以,公司環境也不錯,薪資也算有誠意,不過因為是核心組,加班肯定不少。另外因為p2p行業原因,對這方面有顧慮的也要好好考慮下。最後再要說一點的就是,地理位置太偏僻了。。下地鐵後還要坐4站左右的公交吧。

天壤智慧(過)

一面

  1. react生命週期
  2. key的作用
  3. hooks
  4. vue和react區別,選型考慮
  5. canvas優化繪製效能
  6. webpack效能優化手段
  7. 事件迴圈
  8. 如何解決同步呼叫程式碼耗時太高的問題
  9. 手寫Promise實現

二面

  1. 場景題:如何實現登入功能
  2. 聊專案

三面

聊專案

個人評價

一家做人工智慧的創業公司,好像已經有落地場景並實現盈利了。個人感覺真的挺不錯的,工作時間975,hr和麵試官都很有誠意,薪資也不錯,如果不是很看重平臺的前端都可以考慮一下,大概會接觸到一些視覺化相關的工作,唯一不足的就是前端團隊目前比較小。

拼多多(過)

一面

  1. Promise實現原理
  2. vue元件間通訊
  3. 效能優化
  4. vuex資料流動過程
  5. 談談css前處理器機制
  6. 演算法:Promise序列

二面

  1. CI/CD整體流程
  2. 效能優化
  3. SSR對效能優化的提升在哪裡
  4. 懟專案

個人評價

這個應該都比較熟悉了,純正996。996icu還是從我做起,我就面著玩玩,不過有一說一,薪資開得確實大方,我隨口說了個數都沒有猶豫就答應了,也算是提供給了實在缺錢或者重視錢的程式設計師用命換錢的一種選擇吧。

貓眼電影(過)

一面

  1. vue元件間通訊
  2. react和vue更新機制的區別
  3. Vue3 proxy的優劣
  4. 效能優化
  5. symbol應用
  6. 深拷貝
  7. 懟專案

二面

  1. dns解析流程
  2. 懟專案

個人評價

中規中矩的公司,加班屬於正常網際網路範圍,上海這一塊因為負責演唱會票務的相對來說緊急加班會多一些,薪資正常。

米哈遊(過)

一面

  1. 跨域
  2. 效能優化
  3. vue和react選型和比較
  4. ssr優缺點
  5. 貝塞爾曲線
  6. 懟專案

個人評價

只有一面。可能是我之前的工作內容剛好對上了這個專案組需要吧。我個人很喜歡的一家公司,創始人的理念和風格蠻對我胃口的,然後工作環境也不錯,二刺螈這種,加班不多,在裡面的員工工作倖福度好像都挺高的,唯一的遺憾就是薪資開得太低了,期望薪資的底線。為愛發電不容易,雖然錢不是主要問題,主要還是感覺沒被重視。

bilibili(過)

一面

  1. Vue3 proxy優缺點
  2. ES6特性
  3. Vue元件間通訊
  4. 效能優化
  5. ssr效能優化,node中間層細節處理
  6. 問專案

二面

這一面比較特別,和之前的面試都不太一樣,是知乎早已關注很久的之昊老師面的。

之前的面試大概是屬於主導權在我這邊,面試官傾聽的比較多,搭配上少量提問。而這一面基本全程處於被之昊老師教育加吊打的狀態,感覺之昊老師說的話比我還多了,針對問出的每個點會在我回答的基礎上做更多的延伸說明,沒有侷限到具體的技術方案或者細節程式碼,更多的是談到了一些方法論或者說作為一個優秀的開發者面對一些問題時比編碼更高的思維層面上的處理方式。收穫很大,聊到了很多之前工作中都沒有考慮過的東西。這就是大佬的世界嗎.jpg。

個人評價

各方面都很喜歡了。要說我轉行前端的契機其實和b站有關,大學時候算是個mader,做著好玩,可以簡單理解為動畫剪輯視訊吧,裡面大概會接觸到一些motion graphics的知識,前端的動效就可以看做最簡單的motion graphics,同時AE裡面也會涉及到表示式知識,這玩意的語法也就是基於JS的。通過這個愛好,就瞭解到了前端這個工作方向自然而然就轉過來了,所以可以說b站影響了我的職業方向,對b站還是有特殊的情懷在的。雖然最近隨著發展壯大,由ACG社群變為一個各種內容都有的社群,風評也是有各方面的聲音吧,不過不進來看看我肯定是不會死心的。。然後除了情懷之外,工作內容,工作時間,環境,待遇都滿符合我期望的,主站這套架構也有dalao在知乎寫過分享文章,基於vue做的ssr,絕對屬於趕潮流各種東西都能折騰的水平,跟著之昊老師做事待遇少點我也願意啊,關鍵是待遇也絕對不算少,所以我就接這個offer了。再見各位,我去二刺螈了.jpg。

閱文(面試中)

一面

  1. 如何編寫loaders和plugins
  2. 效能優化
  3. webpack 熱更新原理
  4. vue和react元件通訊
  5. 談談eleme框架原始碼
  6. 談談專案
  7. 個人興趣愛好

個人評價

閱文也是我一直很喜歡的公司,張鑫旭dalao在裡面,早期學css的時候看了很多他的文章學到了很多,然後不加班,招聘時特別看重興趣愛好這一點,感覺就還是蠻重視員工生活的,不僅僅是一個編碼機器。面試比較奇怪,一二面不連續,二面要約到下個星期,據一面面試官說篩選比較嚴格。。。

Thoughtworks(面試中)

一面先寫一套筆試題,涉及到一個開發需求。給3天時間,比較簡單,公司要求就不透題了。主要涉及到單元測試和響應式佈局,modal,popover元件的知識。然後筆試通過後會約現場,大概流程就是在筆試題上再增加一些新需求,現場和麵試官結對程式設計。這一面反饋比較遲,我筆試完成後大概一週左右才收到現場約面,又約到了比較遲的一個時間,現在還沒面。

個人評價

不加班是出名了的,然後待遇可能也比較低也是出名了的,看個人選擇吧,我感覺其實是挺好的一家公司,裡面有一套比較嚴格的開發流程,然後面試也相對難些,肯定能學到不少東西,對於注重wlb的同學也是很好的選擇。

小結

然後還約了頭條和螞蟻的面試,不過優先順序都在我這不算很高了,因為我是996icu的堅定支持者,最近又出了福報巴巴這個事,面螞蟻的興致更低了,當然頭條和螞蟻技術上肯定都是很強的公司,有很多厲害的人在裡面,能進去的話肯定對個人技術發展也有很大好處,不過於我來說價值觀還是不太符合,就算僥倖進去了工作也不會開心。因為已經拿到喜歡的offer了,再加上很早就計劃好了的下週去日本玩一圈(兩年一次的Persona Super Live,我是p系列腦殘粉),還要準備赴日各種事務,所以對於這些這沒面完的公司,如果有空的話面一下再補上來,沒空的話就算了。

總結

總體面下來一個比較強烈的感覺就是,對於3年左右的前端,相對於基礎而言,更看重的是專案經驗。演算法和基礎真沒問到多少,反而我寫到簡歷裡的主要專案基本上屬於必問,而且大量知識點也會圍繞著專案展開。比如我之前的工作中處理了比較多的效能優化問題,每一家公司都會問到效能優化相關的知識。然後如果你的專案正好符合公司這個面試官需求,就會加很多分。比如米哈遊和拼多多的面試官明確說了你之前做的這個專案很符合我們的需求大量加分。當然也有一些風格偏重視基礎知識和演算法的公司,比如英語流利說,頭條這種,所以這些知識也同樣不能落下。

然後有一個點還是要提一下,就算有了3年工作經驗,學歷仍然是一個比較重要的點,至少簡歷關肯定是有用的,我中流985本非對口專業,投的比較佛系,沒有主動找任何內推,就boss直聘和拉勾,v2ex上投,也只被再惠和餓了麼刷了簡歷,所以在讀書的同學儘可能的選擇一個好學校也是很重要的,不要相信說什麼程式設計師不需要學歷的說法,非985最好讀個985的研提升學歷,985本就看個人選擇了,當然過了簡歷關就各憑本事。

最後就是公司對前端的需求和待遇問題了,感覺寒冬並沒有想象中那麼嚴重,各個公司其實都缺前端的,有不少公司的hr或獵頭和我說招了近一到兩個月的前端都沒招到,所以我覺得好好學習的話,找到一份合適的工作肯定不難。待遇方面屬於正常,各個公司都有自己的評級,除了一些996大廠給的比較誇張,或者說wlb的公司漲幅略低些,大部分公司都能給到30%的漲幅。

以上就是這個金3銀4我對魔都前端狀況的一個觀察了,希望各位都能找到合適的工作啦~

相關文章