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

鏈接:https://juejin.im/post/5d834e62e51d453b8b5fa69e

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

前言

今年毋庸置疑是找工作的寒冬,今年出來找工作的每一個同學 都是值得尊敬的。在寒冬季找工作,雖然略難,但是反過來看也會逼迫我們成為更加優秀的自己。

但是不管是旺季還是寒冬,有一些優秀的同學找工作還是挺順利的。所以說還是得提高我們自己的硬實力。

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

面試的節奏

面試之前要複習自己所有的基礎知識。算法比較難準備,要提前幾個月來看。基礎知識相對容易準備,可以相對延後。算法可以陸續把leetcode上簡單的題目都做一做。基礎知識按照自己的腦圖來準備。

在準備好了之後,可以看一下網上的面經,如果對於面經的大部分問題都可以答出來。那麼就是一個準備了差不多的信號。

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

接下來可以找一些小公司練練手。練習練習自己講講項目,和基礎知識的查漏補全。

如果拿到了一些小公司的offer,那麼就可以找朋友推薦去一些心儀的大廠,大廠面試相對較難,所以最好找朋友內推。內推有朋友可以給你介紹很多你不知道的東西。

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

簡歷

作為一個高級碼農,項目肯定做的非常多,但是簡歷也要注意什麼可以寫什麼不能寫。自己複習準備不深的東西最好不要在簡歷上寫,面試官往往都問自己有經驗和自己有深刻研究的東西,如果你涉及的技術只是簡單使用,簡歷上寫了,被問到一些底層原理,結果沒答上來就尷尬了。

比如你在公司淺嘗輒止的做過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是什麼?如何防範?
  • 如何應對重放攻擊?
2019大齡前端如何準備面試?

管理類

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

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

前景

  • 你對前端發展趨勢怎麼看?
  • 最近接觸了什麼新的技術?
2019大齡前端如何準備面試?

職場發展

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

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

在說說細節的方向。前端的技術日新月異,可以大膽的預測5年後,可能也不是vue和react的天下了。可能我們在用xx框架,那麼工作10年的碼農 用xx框架 和一個工作2年的使用xx框架區別在哪裡?這是我們大齡碼農需要思考的。所以我們能積累下什麼?這些是我們需要思考的。我認為在前端的一些方向上必須有所積累。比如 WebGL,Canvas渲染,直播等。就是以後把自己不要標榜是一個前端。而是一個WebGL前端,直播前端。這樣才會利於我們大齡之後的發展。


分享到:


相關文章: