2022招聘季 | 怎麼準備面試?面試官一般會問些什麼問題? | web 前端

linong發表於2022-03-20

前兩天北京下雪了,很冷。2022 招聘季,好像也比往年一些。

2021 年 K12 的大量裁員,騰訊、快手、位元組、滴滴、蘑菇街也在裁員。

  • 想要換工作的同學應該準備些什麼呢?
  • 面試流程是什麼樣子的?
  • 如何應對面試呢?怎麼樣可以提高成功率?

如果你關心上面的問題,並且你的目標位置不超出我的能力範圍(高階工程師、阿里P6、位元組2-1)。我會以我經驗給你一些建議

面試流程

  1. 複習、準備
  2. 投遞簡歷
  3. 一面
  4. 二面
  5. 三面
  6. HR 面
  7. 定級、談薪
  8. 定入職時間、收 offer

怎麼準備面試?

前期準備

個人介紹

每一場面試第一個環節都是「請做一下自我介紹」,所以這個問題一定要提前準備好。

如何準備?個人介紹重點是什麼?

我們先從面試官角度來看一下面試官想知道什麼?

  1. 姓名

    • 如果你的姓名中有生僻字、多音字叫錯還是比較尷尬的
    • 確認你是否和麵試官手中簡歷匹配。我就遇到過異常情況,候選人是面試 java 開發崗位
  2. 工作情況、專案概況、技術棧。雖然一般面試官會提前看過簡歷,但是有時候簡歷並不能很好的展示所有內容,所以需要一個簡短的介紹來告訴面試官

    • 比如說上家公司做音視訊的、上家公司做 ERP、上家公司做 IM 的、線上協作、協同辦公、專案管理、雲服務商。如果說你從 YY 直播跳虎牙直播,是比 YY 直播跳金山辦公要匹配的多,公司匹配的話成功率更高,業務場景也更瞭解。比如說騰訊雲、阿里雲。
    • 比如說做移動端活動、做 toB 的服務平臺、做電商。你之前做移動端面移動端崗位成功率更高,比如說抖音電商跳快手電商,就要比今日頭條跳快手電商好。
    • 比如說使用 JQuery、Vue、React、React、threejs。你簡歷中寫了 React、Vue,但是你更擅長 Vue,面試官無法從簡歷中看到兩個技術在你手中的掌握程度
  3. 擅長什麼?優勢是什麼?

    • 比如說你善於做移動端專案,善於使用 Vue,善於和其他部門溝通
    • 比如說你做過一年 Node 開發,可以獨立開發,可以獨立進行技術研發任務
    • 比如說你善於對專案進行優化
    • 甚至說你有過專案經理助理工作經驗都是你的優勢。
    • 社群影響力,github 有開源專案,思否、掘金、CSDN 有內容產出
個人介紹案例

接下來我們就可以針對面試官寫一份合適的自我介紹

  1. 你好,我叫xxx,我在上一家公司做的專案是和 XXX 相關。
    一直從事於 web 方面的工作,掌握的前端技術有 xxx。
    在上一家公司中,我收穫不單單是技術方面,主要還有業務能力,自學能力和同事的溝通能力,這都是我學到的,而且我認為很重要的。
    我的性格方面不算外向,也不算內向,跟朋友,同事相處,比較外向,在工作中,程式碼開發時,我是比較內向的,我喜歡全心全意的投入工作中。我也喜歡交朋友,偶爾跟朋友聚聚,聊聊。對於工作我總是抱著認真負責,有責任心,吃苦耐勞的態度工作。謝謝,以上是我的自我介紹。
  2. 面試官下午好,我叫XX,今天來應聘貴公司的前端工程師崗位。我從事前端開發兩年多,有X年的XXX開發經驗,在上家公司主要從事H5頁面,後臺管理系統,混合App等專案開發。平常喜歡逛一些技術社群豐富自己的技術,像思否,掘金之類,記錄自己的工作總結和學習心得。
    我的性格比較溫和,在工作中程式碼開發時我喜歡全心全意的投入,對於工作我總抱著認真負責的態度。面試官,以上是我的介紹,謝謝。
  3. 面試官你好;我叫XX,16年本科畢業於XXXX;畢業後在合肥衛寧,一家醫療軟體公司工作,技術上前後端、資料庫包括專案部署都做,屬於全棧開發,18年來到上海入職京東一直到現在,做的是線下商場的後臺及介面開發;老的專案還是 mvc,新專案都做了前後端分離,前端用到 H5、小程式 JQueryEasyUIVUEAngular,後端用到 .Net Framwork 4.5,4.6NetCoreJava,資料庫用到 SQLServiceMysqlMongoDBRedis,中介軟體用到 RabbitMQ 訊息佇列,在公司是核心開發的角色,負責老專案的維護及二次開發,和其他開發相比,我的優勢在於溝通交流能力比較強,還有我的責任心和學習能力也是比較強的,如果有幸加入XXXX,我相信我能快速融入團隊,快速掌握公司相關的技術;謝謝領導。
  4. 面試官你好。我叫 XXXX。
    主要技術棧是 Vue 全家桶、jQuery、原生、NodeCSS 能力也不錯,常見佈局、偽類、過渡動畫都會。
    上家公司是做音視訊泛娛樂社交這塊的,競品如:全民K歌、唱吧、YY、快手、抖音之類的。
    我主要做移動端活動這塊,年度慶典、小視訊活動模版、直播間廣告位之類的, PC 端也做一些,比如 PC的 IM 系統。因為公司的使用者群體特性,對於相容低版本裝置有挺多經驗。
    平時也經常在思否社群做問答,寫文章筆記之類的,對於 BUG 排查有敏銳度,也善於溝通理解問題。

知識儲備

知識儲備是我們面試成功的必需品。主要分為兩部分:護城河、擴充套件。這裡主要還是靠平時積累,面試時針對高頻且不會的加強記憶。

接下來我們還是針對前端面試來舉例。

前端護城河

什麼是護城河?這都不會幹屁前端! 沒辦法就是這麼卷,所以這裡只能去卷一些八股文

但是我推薦還是由易到難高頻到低頻

  1. HTML、CSS、JS 基礎知識

    • flex: 0 1 auto 是什麼意思?
    • css 有哪些偽元素選擇器
    • HTML5 語義化標籤有哪些?
    • 閉包程式設計題
    • 手寫 Promise 實現
    • 手寫 requestCache 實現
    • 同步非同步、微任務巨集任務
    • 深拷貝
  2. Vue、React 常見基本框架

    • 生命週期鉤子函式
    • 如何獲取原始 DOM
    • 如何獲取虛擬 DOM
    • 原理是什麼?如何實現?
    • 對 diff 的理解
    • 資料雙向繫結如何實現?相容性?
    • 狀態管理、元件通訊
    • 路由跳轉
  3. ElementUI、antd 基本框架搭配 UI 庫

    • 元件化開發
    • 原始碼理解程度
    • 能力熟悉程度
  4. 瀏覽器基本知識

    • 瀏覽器快取原理
    • 本地儲存
    • 基本能力(上傳、下載)
擴充套件

這裡一般就不侷限於前端,也不要求全部掌握,但是一般都會有一些擅長點

  1. 打包構建、前端研發工具(webpack、babel、gulp、vite、eslint)

    • webpack 升級。
    • eslint、stylelint。
    • git hook。(husky)
  2. 專案優化

    • 打包速度優化
    • 載入速度優化
    • 產物體積優化
  3. 跨端、跨平臺、跨技術、跨語言

    • Node
    • Python
    • nginx
  4. git、svn。

    • 如何回滾程式碼
  5. 網路

    • https、http、http2,三次握手、四次揮手,如何保證安全
    • websocket
    • response 響應狀態碼
    • 強快取、弱快取

演算法練習

演算法練習沒什麼好說的,簡單必須會,中等也要做一些,困難看個人能力,掌握常見資料結構。一般就是推薦力扣、牛客。

學習路徑的話是先了解資料結構,然後針對性做題,做不出來看題解。

  1. 連結串列、陣列、字串

    • 查詢是否有環?入環點在哪裡?
    • 快慢指標、雙指標
    • 先序遍歷、中序遍歷、後序遍歷
    • 平衡二叉樹
  2. 棧、佇列
  3. 動態規劃

專案覆盤

專案一般是為了看看你做過什麼,有什麼出色的地方,不是為了聽你說一堆沒用的。

這裡屬於一個沒有標準答案的題,也是一個可以提前準備的題。

我面試的時候準備了三個內容,並且對具體實現方法都做了細緻的應對方案。

  1. PC IM 訊息列表優化,其中有長列表優化、排序演算法Bug及優化思考、多訊息型別支援、訊息手法機制、傳送框實現等等

    • chrome 的 sort 使用了什麼演算法。chrome 低版本用的是什麼演算法。原理是什麼。
    • 自己使用了什麼演算法?二分查詢+插入排序。從 xxms 優化到 xxms。
  2. M 直播間廣告位設計,其中有排序規則、動態載入規則、動態上線下線規則等等
  3. 專案載入速度優化

常見問題準備

一般來說會有一些高頻問題,我們可以提前準備一下。當然具體還是要看你的技術棧是什麼,你可以針對你的技術棧做特殊複習。

  1. 職業規劃
  2. 為什麼選擇前端
  3. 個人介紹、專案介紹
  4. promise
  5. 瀏覽器強快取、協商快取
  6. 閉包
  7. vue 資料雙向繫結原理
  8. 菲波那切數列
  9. 微任務、巨集任務

面試前準備

如果說我們簡歷、知識儲備、常見問題都準備就緒,那麼接下來我們就可以開始以戰養戰

投遞崗位

不建議海投,推薦你選擇二線、一線、大廠,把自己心儀的公司放在第二三週

  1. 培養題感。(我面試的時候一道簡單的題沒做出來,超級尷尬,那道題是一道我十年前就會的題,但是第一次面試的時候怎麼都想不起來。懵了)
  2. 培養自信、調整心態、告別緊張。如果你在面試的時候手裡已經有了保底的 offer,那麼你整個人的精神都會不一樣。而且要價的時候也更大膽。(我面試的時候拒絕了金山,因為薪資低)
  3. 由易到難、由低到高,慢慢提升。其實有時候小公司也挺爽的(前端10人±),太少的就不推薦了。

可以選擇適合自己的崗位投遞,並不是比如說快手所有人都在做App,也會有做面向機構的服務平臺,也會有面向電商的服務平臺,還有對內的基建中臺等等。選擇一個適合自己的崗位比亂投強太多了

面試真題(針對性搜尋)

這個就屬於玩賴了,比如說你面阿里,可以針對性去找一些阿里一面面經,最好把崗位部門帶上(會有意外驚喜喲

根據我面過的幾家公司,網上是有真題的。

如果你常混社群的話,你甚至可以問問面過的前輩

面試後準備

面試完不代表著結束,收到 offer 才是結束。

面試覆盤

所以這口氣我們不能鬆,可以在面試後把所有題都記錄下來,然後看看自己那個題掌握不夠全面。

  1. 記錄所有的面試題。網上搜尋資料排查是否有回答不清晰,缺斤短兩情況
  2. 錄屏。做更完整的覆盤,包括語氣節奏、口頭語、面部表情、反應速度等等。

    • 從我自己來說,我即興是不如我有準備的。同樣一份資料,在我無準備講出來會多很多口頭語,甚至我在講的時候都會注意到這個問題,但是我無法解決,也剋制不住,留給我調整的時間太少了。所以我只能做很多準備。
  3. 如果有不會的題,千萬要查一下,然後記住。因為下一面有可能會考近似題。面試官也會通過這種方式來看你的自學能力。

    • 比如說你面第一個公司的時候,問了你許可權的問題。那麼你就應該重點關注一下,比如說按鈕許可權,非同步許可權,如何和服務端互動。這個問題在二面甚至說其他公司都會再次遇到

真題整理

上面說了覆盤的重要性,也說了需要整理真題,這裡主要是需要你注意分類,而且需要看到題後的內容

有時候面試題只是考點的一個應用場景,所以我們需要看到背後的知識,不只是把面試官問你的問題搞會。

一般來說面試題會符合部門場景,做 PC 的部門不可能問你移動端適配原理。

  • css

    • 「位元組商業化」權重計算。

      • .a .b{color: #f00;} .b[data-role="1"]{color: #0f0}
    • 「阿里」選擇器
    • 「快手搜尋」「騰訊開放平臺」css 單位
  • 網路

    • 快取
    • https、http、http2

面試中有哪些最最最常見的坑

簡歷

到了我個人擅長的位置了。哈哈哈,我看過成百上千的簡歷,基本沒有看錯的。

  1. 一眼假的簡歷(工作時間、經歷造價),一般針對實習生、應屆生、培訓班簡歷比較常見。

    • 熟練使用 Vue + react,其實一般來說為了維護成本學習成本,正常公司都會統一技術棧
    • 熟練使用 Node xxxx,目前來看全棧工程師並不是很多,都會有可能只是半桶水
    • 專案經歷不屬於同一家公司。比如說一個專案是醫療,一個專案是石油,專案跨度很大。這種一般我們考慮是否存在經驗積累,一個持續迭代的精細專案才是我們想看到的。
    • 專案經歷一看就比較水、或者開源專案、樣子貨。比如說網易雲、餓了麼,Vue1 的時候就開始仿餓了麼,Vue3 還仿。

      圖片來源於沸點:https://juejin.cn/pin/7072864...
      image.png
  2. 錯別字簡歷、排版異常簡歷、雷同簡歷、異常簡歷

    • 部分簡歷會存在一些錯別字,尤其是 Reat 之類的錯別字。千萬不要有錯別字,會顯得不細心。而且簡歷應該每個字都是用心寫的
    • 學歷異常、外派外包。我不歧視外包外派,但是從團隊內任務分配、穩定性等多方面來說,的確不是很理想,需要多注意。
    • 雷同簡歷出現在同一學校、畢業季,上下午兩個人簡歷一模一樣。簡歷不是論文機器查重,不管是ERP的登陸許可權系統,還是後臺管理系統的登入許可權系統,都是相同的簡歷,不是改個名稱就叫不同簡歷。
  3. 異常的常見功能,對於有工作經驗的人來講反而不是常見功能。不是說常見功能,一定就是開發常開發功能

    • 比如說登陸註冊、許可權、選單,登陸一般來說都是現成的功能,不會輪到你再去開發。
  4. 不是每一家公司都認為你的“玩具”很有意思。

    • 比如你說你寫了 IM 相關的功能,如果你面試的也是 IM 相關的部門,那麼很大可能性會揪著這個功能深挖。
    • 如果你寫了效能優化,那麼會給你一個近似的場景考你,看你有沒有去做優化的動機。

面試準備(面試題、演算法題權重問題)

建議你先準備基礎知識題,然後常見題,最後準備演算法題。一定要記住由易到難

如果不是高階、專家崗位,演算法都可以暫時放棄。

  • 我面試一面簡單演算法沒答出來,但是並不影響我面試結果。順利通過面試拿 offer。
  • 有個朋友,基礎題還沒搞會,瘋狂練習演算法。到現在還分不清判斷是否有環查詢入環點兩個題的區別。(快有十年工作經驗了,還混在中級工程師)他以為演算法好了就能換到大公司,但是演算法題一般都在比較後面考察。

面試中

  1. 問薪資。一般來說前幾面只是同級同事,不應該知道你的薪資。也無權決定
  2. “攻擊”面試官。面試是否通過,就是當場面試官的一句話,很少公司有考核審查手段。所以不建議攻擊面試官,放平心態(如果你不在乎這個機會,並且覺得和這樣面試官共事比較噁心,那麼懟就懟了。無所謂哈哈哈哈哈)。

    • 我就遇到過一個人,面到一半跑了,和 HR 反饋我不專業。但是對我並沒有什麼影響。
  3. “賄賂”面試官。雖然說當前這場面試,面試官可以幫助你,但是後面還會有其他考核(天黑路滑人心複雜呀)。所以還是靠自己真正的實力比較好。
  4. 拖時間。一場面試 20分鐘至 60分鐘,會存在定會議室(HR 不幫定會議室,且有時間限制),工期擠壓(面試屬於突發時間,且不計算在正常工期中)等問題。所以不建議在單個問題上拖時間,這樣會導致無法全面考察,直接判負。
  5. 不敢問面試官。面試官都是比較和善的,一些面試官也比較善於引導你回答問題。即使沒有引匯出來,給你個方向也是好事,面試官經驗比較豐富,如果是單獨的技術諮詢來看明顯是賺了。

面試官一般會問些什麼問題?

一面(基礎知識)

一面一般是同級同事、同級領導(斜線領導),屬於主力開發,業務經驗也比較足。一面側重基礎知識

  1. 專案考察(2個)

    1. 介紹一下你最近做的專案
    2. 介紹一下你在這個專案裡做了什麼?有什麼出色的嘛?
    3. 你是怎麼進行專案優化的?你是怎麼設計這塊許可權的?你是怎麼實現這裡的?你的設計思路是什麼?
    4. 你在專案中負責什麼?有什麼特別滿意的地方的?
    5. 你們團隊構成是什麼樣子?開發流程是什麼樣子?有什麼優化空間嘛?
    6. 印象中最深的一件事
  2. 基礎之類(6個±)

    1. js、css、html 基礎題。(2個)

      • css 樣式優先順序、權重計算、選擇器、Flex 佈局等等
      • js 場景型別、陣列方法、閉包等等
      • html 語義化標籤、其他能力?
    2. js 高階開發(2個)

      • Promise、await、async、非同步同步、微任務巨集任務
      • 繼承、class、ES6+
      • TS
      • webpack、gulp、babel
      • 框架知識 Vue、React
      • requestCache、自動重試、異常上報
    3. 擴充套件知識(1個)

      • http2、http1.1、https
      • nginx
      • node
      • echarts、threejs、ui 等等
  3. 演算法(1個)

    • 一般會出初中級難度的題,連結串列、樹、棧佇列比較常見,圖好像少一些
    • 考察時間複雜度、空間複雜度
    • 會讓你講一下想法
    • 會讓你思考有沒有優化空間,如果有會逐步優化
  4. 簡歷異常點(學歷、工作變動頻繁)
  5. 普通聊天

    1. 為什麼離職呀?
    2. 為什麼選擇我們公司呀?
    3. 為什麼學前端呀?
    4. 住哪裡呀?
    5. 平時有什麼愛好
    6. 如何學習前端?
    7. 逛社群嘛?
    8. 對我們公司什麼看法?
    9. 覺得今天面試表現怎麼樣?

二面(專案)

二面一般是不同組同事,一般來說是跨組交叉面試,當然會有可能不是前端。二面一般更側重專案

  1. 專案考察(同一面,但有可能切入點不同)
  2. 高階應用(同一面,但是一般會和實際業務關聯)
  3. 演算法(同一面)
  4. 普通聊天(同一面)

這裡可以看到,如果一面過了,二面基本是穩的。

因為一二面本身級別差不多,有可能面試官不是同技術(java)、升職不是技術(產品)

三面

三面一般是直系領導(50人至100人團隊負責人),可能是前端,也可以是其他端,只能說肯定是個技術人員。

  1. 專案考察(同一面,切入點不同,會更加深入甚至擴充套件轉換)
  2. 演算法(同一面,但是有可能不用寫,只考思路)
  3. 擴充套件知識

    1. 專案如何協調
    2. 分支如何管理
    3. 任務進度如何管理
    4. 上線流程是什麼
    5. 發版流程是什麼
  4. 部門介紹
  5. 普通聊天(同一面)

一般來說高階工程師就只有三面,三面的這個人就是決定你是否能入職的那個人,三面面試官一般也是一面面試官的直系領導。

HR 面試

  1. 普通聊天(同一面)

    1. 職業規劃
    2. 為什麼選擇我們
    3. 你在原來公司負責什麼
    4. 為什麼離職
  2. 薪資期望

    1. 你當前的薪資
    2. 你期望的薪資

問面試官哪些問題?

一面

一面面試官一般就是你的同事,也是主力開發,是真正的打工人。所以這在一面環節你可以多問一些你關心的內容

  1. 面試官是誰?是否為你的同事。
  2. 工作情況
  3. 基建情況
  4. 團隊氛圍、團隊規模
  5. 技術方向
  6. 自己表現怎麼樣
  7. 自己沒答好的題,看看能不能給個方向。

二面

二面面試官因為存在交叉面試的情況,所以可用資訊不太多。

  1. 面試官是誰?是否是你的同事,還是交叉?
  2. 自己表現怎麼樣
  3. 問面試官所在的團隊氛圍
  4. 自己沒答好的題,看看能不能給個方向。

三面

三面面試官是你的直屬領導,能管得事也比較多,你可以問一些其他的東西。

  1. 晉升機制、培訓機制是否完善
  2. 團隊氛圍
  3. 所做業務
  4. 團隊規劃
  5. 有不懂的點也可以問,白嫖的交流機會啊。
本文參與了 SegmentFault 思否徵文「如何“反殺”面試官?」,歡迎正在閱讀的你也加入。

相關文章