標籤:

面試雜談

前言

其實關於面試一直是一個老生常談的話題,尤其是前端崗位的面試。個人自己的面試和被面試經驗來說,大部分情況下的面試者都喜歡問一些知識收集型的問題,比如:

  • 瀏覽器差異與檢測
  • CSS hack
  • 如何解決跨域

當然不是說這類問題不應該問,如果候選人的項目背景有寫解決過類似的問題時;

適當追問有多少種不同的解決方案,為什麼選擇其中某種——能很好的考察候選人在積累知識過程中的深度、廣度還有思維模式~

但是對於一些初級崗位的候選人或者畢業不久的校招生,問這類問題無非是增加尷尬。

那麼要怎麼做

如果非要問初級職位候選人一些知識收集型的題目,推薦問一些比較基礎的,比如:

  • HTML5新增了哪些tag,和input類型
  • CSS選擇器有多少種,優先順序排序
  • JS閉包,瀏覽器的事件模型

這些問題的最大價值在於考察候選人對這個職位的重視程度。

更好的方式

比起知識收集型問題,推薦問開放式的問題,比如:

  • 大家都熟知的,一個頁面從輸入 URL 到頁面載入完的過程中都發生了什麼事情?
  • 談一下你所知道的(頁面)性能優化方法?

關於手寫代碼

當然相對推崇的方式是考察候選人手寫代碼的能力,比如:

  • 前段時間很火的,翻轉二叉樹,leetcode.com/problems/i

不過說實話,手寫代碼個人認為是挺變態的,如果不是當時這道題火了我也不會去做。

如果臨場再讓我手寫,未必能一次性跑過,所以實現一些相當簡單的排序演算法個人認為會是一個不錯的方式~

其它情況

有些情況下,由於初級崗位往往需要先經過一輪電話面試做初篩,沒法考察候選人的手寫代碼能力。

而且對於一些準備充分的題霸,知識收集型問題和開放式問題都不太適用,我會選擇問數學題。

舉個很簡單的例子:x ^ 3 = 3,估算x的值,精確到小數點第1位(^是次方);

其實這是一道非常非常簡單的題目,但在實際的面試過程中,不到20%的人能在不提示的狀態下快速估算出答案,這個通過率對於初篩還是比較合適的;

先賣個關子,你算出來了嗎?

為什麼要問這種題目

  1. 能在網上搜到的答案或方案的問題都不能算是好問題,實際工作中我們常常會遇到一些沒有現成解決方案的問題,或者說國外有解決方案但是自己水平不夠,不能通過快速閱讀英文,比如去:google、quora、stackoverflow來找答案解決的問題
  2. 我們都學過根號2 ≈ 1.414,根號3 ≈ 1.732,所以對於這種變種題,往往可以快速判斷候選人的應變能力~
  3. 數學是一切學科的根本,尤其是計算機

延伸

上面這道題其實太簡單了,覺得沒有難度的同學可以算一下類似的一道題:2 ^ x = 10,估算x的值,精確到小數點第1位~

提示思路1:

    1. 3 < x < 4
    2. 2^3.5 ≈ 8*1.414 > 10

提示思路2:

    1. 題目轉換為估算 2^x=1.25
    2. 能否估算 2^(1/4) 和 2^(1/3)

提示思路3:

    1. 5/4=1.25
    2. (5/4)^3=125/64=1.953125近似於2

答案:

    1. 2^(1/4) < 1.25 < 2^(1/3)
    2. 3.25 < x < 3.3333

補充

最近學到另外一種面試技巧,就是不設具體的問題,從對所需候選人能力的一些範疇上定義出,需要一個啥樣人的大概框架~

常見的範疇:

  • 代碼掌控力
  • 工程化能力
  • 解決問題能力
  • 技術廣度
  • 技術敏銳度
  • 技術影響力

把這個框架的目標同步給候選人~然後讓他講述自己的工作經歷~並把經歷往框架上套,然後說服面試官僱傭自己~

友情鏈接

常見面試題;

  • FE-interview
  • Front-end-Developer-Questions
  • Front-end-Developer-Interview-Questions
  • node-interview

順便安利一下leetcode,不忙的時候解解各類經典題目

支持多種語言包括js,當場跑case,難易可選,能看通過率、耗時還有解法討論~


推薦閱讀:

你經歷過怎樣絕望的面試?
當牛津面試操盤手是怎樣一種體驗?
我是如何從自學編程到找到工作的
如何在面試中解釋:為什麼跳槽這麼頻繁?
如何獲得 Google 的職位?

TAG:面试 | Web开发 |