2019大齡前端碼農如何準備面試?

前言

今年毋庸置疑是找工做的寒冬,今年出來找工做的每個同窗 都是值得尊敬的。在寒冬季找工做,雖然略難,可是反過來看也會逼迫咱們成爲更加優秀的本身。html

可是不論是旺季仍是寒冬,有一些優秀的同窗找工做仍是挺順利的。因此說仍是得提升咱們本身的硬實力。前端

今年前端很明顯一個變化就是前端面試裏除了基礎知識 也添加了不少手寫算法以及前端遞歸小程序。下面從若干個方向談一談須要準備些什麼東西。vue

面試的節奏

面試以前要複習本身全部的基礎知識。算法比較難準備,要提早幾個月來看。基礎知識相對容易準備,能夠相對延後。算法能夠陸續把 leetcode 上簡單的題目都作一作。基礎知識按照本身的腦圖來準備。node

在準備好了以後,能夠看一下網上的面經,若是對於面經的大部分問題均可以答出來。那麼就是一個準備了差很少的信號。react

此時能夠找一個朋友給你來一個 mock interview。朋友的 mock 能夠給你不少反饋。自身發現不了的,包含自我介紹的問題,語氣語調,自信心等問題。webpack

接下來能夠找一些小公司練練手。練習練習本身講講項目,和基礎知識的查漏補全。git

若是拿到了一些小公司的 offer,那麼就能夠找朋友推薦去一些心儀的大廠,大廠面試相對較難,因此最好找朋友內推。內推有朋友能夠給你介紹不少你不知道的東西。github

簡歷

做爲一個高級碼農,項目確定作的很是多,可是簡歷也要注意什麼能夠寫什麼不能寫。本身複習準備不深的東西最好不要在簡歷上寫,面試官每每都問本身有經驗和本身有深入研究的東西,若是你涉及的技術只是簡單使用,簡歷上寫了,被問到一些底層原理,結果沒答上來就尷尬了。web

好比你在公司淺嘗輒止的作過 RN,簡歷上寫了,被面試官問到 RN 的原理,打包,和 Native 通訊等,若是沒有準備就會很是尷尬。簡歷上寫的技術 最好都複習到任何細節。面試

好比用 vue 寫了好幾年項目了。覺得本身掌握的倒背如流。結果別人問了一個基礎的 Vue 生命週期,Watch 和 Computer 的區別,若是沒答好,那麼在面試官那裏印象就很是差。

手寫題

今年各大公司都添加了手寫算法或者前端遞歸的題目。因此要求這部分題目都得提早準備,最好在職期間刷 leetcode 幾個月。至少大部分簡單算法均可以秒殺。至於前端一些遞歸和語言特性。相對來講都比較好準備。應該 2~3 周就夠用。這裏列舉一些高頻題。拋磚引玉一下。

  • 實現 debounce
  • 實現 throttle
  • 實現 bind,call,apply
  • 打印出來 html 裏全部標籤
  • 實現一個 lazyman
  • 實現一個 deepclone
  • 實現快速排序
  • 實現一個數組亂序
  • 實現一個 Promise
  • 實現一個 LRU
  • 求第 K 大樹
  • 二叉樹的深度
  • 兩數之和
  • 四數之和
  • 找出一個集合全部的子集

我在 github 上整理一個項目 turtle-rock 若是你們以爲有用,請給一個 star。謝謝!

CSS

flex 已是移動端的標配了。今年面試中基本不少都考察 flex。因此對於 flex-grow 和 flex-shrink,flex-direction 這些屬性必須靈活掌握。並且對於彈性盒裏面的元素的是否會被縮減,以及縮減的規則都會被考察到。對於高級前端一些深度的特性也會被考察到。

  • vertical-align 爲何沒有絕對垂直居中?
  • line-height 的具體含義是什麼?

瀏覽器

http2 是今年一個必考題了。因此 HTTP2 分幀的,多路複用,server push 這些都得深度掌握,只膚淺理解到基本概念 仍是很容易被問住的。推薦你們看兩篇文章 MDN HTTP
緩存(協商緩存和強緩存),跨域 這些都不贅述了。

  • http2 有什麼改進?
  • websocket 協議和 HTTP2 有關係麼?
  • http2 和 1.1 的 pipeline 有啥區別?
  • HTTP2 和 1.1 的 keep alive 啥區別?

框架

如今是 Vue 和 React 的時代。小廠追求糙快猛基本都是 Vue。規模大一點的公司基本都是 React。不論是哪一個。今年面試絕對不牢牢停留在表面,Dom Diff,Virtual Dom 成了必考題。

  • Virtual Dom 是否能夠提升性能?
  • 怎麼看待 Dom Diff?Dom Diff 算法是啥?
  • 如何設計一個組件?
  • Vue 發展問題在哪裏?

性能

Web 性能啥時候都是一個必考題。針對 Web 性能。推薦你們看 Google 的文檔。

Webpack

webpack 基本會考察到各類 loader,plugin 的名字和使用方法

  • 用過哪些插件?
  • 如何作性能優化?
  • code split 怎麼作?
  • 什麼是 treeshaking?注意些什麼?

移動端

JSBridge 原理 和 離線包成了必考題。

  • 移動端如何作適配?
  • 一像素問題怎麼解決?
  • JSBridge 原理是什麼?如何設計一個 JSBridge?
  • 離線包怎麼設計?
  • Hybrid H5 開發須要注意些什麼?
  • Webview 的緩存機制是什麼?

直播方向

  • 直播協議都有什麼?
  • WebRTC 是什麼?基本原理是什麼?

Nodejs

高級碼農都或多或少寫過一些 nodejs。可是 nodejs 的面試問題很難準備。平時可能寫的很 6,可是面試不必定能答得出來。一般你們都會問你的 Nodejs 在處理什麼模塊。

  • 項目中的中間層 Node 在處理什麼問題?
  • Node 的 Cluster 模式是什麼?
  • Node 中的進程和線程啥區別?
  • Node 中如何建立一個進程?
  • Node 的多個進程如何通訊?
  • Koa2 中的 context 如何實現?
  • 如何監控 Node?
  • Node 中的日誌如何保整串行?
  • Node 掛掉怎麼辦?怎麼發現其中的問題?
  • Node 中的事件循環是什麼?

安全

  • HTTPS 原理是什麼?
  • 如何劫持 HTTPS?
  • XSS 是什麼?如何防範?
  • CSRF 是什麼?如何防範?
  • 如何應對重放攻擊?

管理類

對於一些同窗,走到高級階段或多或少有一些管理人的經驗。綜合看來這部分不是那麼重要。各大公司仍是以技術爲主。考察這方面相對較少。

  • 你怎麼管理你的團隊?
  • 怎麼作 code review?
  • 你對管理的理解是什麼?
  • 你怎麼打績效?
  • 對於績效比較差的同窗你怎麼溝通?
  • 你如何來激勵你的團隊?
  • 有沒有遇到一些管理的問題?

前景

  • 你對前端發展趨勢怎麼看?
  • 最近接觸了什麼新的技術?

職場發展

對於大部分普通人,最好能有一個大廠的經驗,一方面大廠作東西會相對較深,另一方會有很大加分。當時我也認可小公司有不少能力很強的人,可是很是多的面試官都是學歷控和大廠控。有了這樣的經驗,找工做起來就會相對容易。

談一談工做的延續性。工做了一些年以後,咱們無論作前端仍是後端最好和一些業務或者技術 結合起來,兩份工做,或者三份工做有必定的延續性。好比你作直播,那麼日後就繼續作直播。你作招聘系統,下來的工做繼續作招聘系統。你作廣告系統下一份工做就繼續作廣告系統。這樣你的積累就不只僅在通用技術這個點上,也有一部分業務在,下一份工做就更容易作出成績。

在說說細節的方向。前端的技術突飛猛進,能夠大膽的預測 5 年後,可能也不是 vue 和 react 的天下了。可能咱們在用 xx 框架,那麼工做 10 年的碼農 用 xx 框架 和一個工做 2 年的使用 xx 框架區別在哪裏?這是咱們大齡碼農須要思考的。因此咱們能積累下什麼?這些是咱們須要思考的。我認爲在前端的一些方向上必須有所積累。好比 WebGL,Canvas 渲染,直播等。就是之後把本身不要標榜是一個前端。而是一個 WebGL 前端,直播前端。這樣纔會利於咱們大齡以後的發展。

最後附上本人整理的一個前端手寫算法的集錦。若是感受到對你們有幫助,那麼請給個 star。https://github.com/scofieldfan/turtle-rock

相關文章
相關標籤/搜索