如果你想靠前端技術還房貸,你不能連這個都不會

web前端學習圈發表於2018-10-18

如果你想靠前端技術還房貸,你不能連這個都不會

最近,為了部門招聘,我對幾十個前端應聘者進行了簡短的技術面試。

這次招聘的背景是,我們需要若干 3 年左右經驗的前端工程師開發維護一些移動單頁模組,和一些 PC 增刪改查前端應用。因為採用了外包模式,所以預定的策略是技術能用即可,不要求獨立完成專案,只是對業務經驗有一定要求,對簡歷篩的很鬆。面試重點放在了考察應聘者的業務理解,溝通,以及性格上。

也是因為這個原因,這一波面試讓我感受到了一些令我有點吃驚的“前端生態”。

我先挑兩個我出的面試題給大家看看。

第一個是經典問題,考察閉包的使用:

// 請問輸出什麼
for (var i = 0; i < 10; ++i) {
    setTimeout(function () {console.log(i)}, 0);
}複製程式碼

第一問,這段程式碼輸出什麼?第二問,如果想讓這段程式碼輸出0{{123456789:0}},應該怎麼修改?

第二個問題是口述實現,設計場景如下:

某個應用模組由文字框 input,以及按鈕 A,按鈕 B 組成。點選按鈕 A,會向地址 urlA 發出一個 ajax 請求,並將返回的字串填充到 input 中(覆蓋 input 中原有的資料),點選按鈕 B,會向地址 urlB 發出一個 ajax 請求,並將返回的字串填充到 input 中(覆蓋 input 中原有的資料)。

當使用者依次點選按鈕 A、B 的時候,預期的效果是 input 依次被 urlA、urlB 返回的資料填充,但是由於到 urlA 的請求返回比較慢,導致 urlB 返回的資料被 urlA 返回的資料覆蓋了,與使用者預期的順序不一致。

請問如何設計程式碼,解決這個問題?

我想對於知乎上的前端工程師來說,這簡直就是小兒科的問題,尤其是第一題,隨便找個面試題大全都能找到,第二題雖然是開放式的,但是需求也很簡單,只要能想出方法即可,不要求編寫程式碼。

然而面試的結果是,第一題,大部分人沒答對,第二題,幾乎所有的面試者都想不出方法,甚至有不少人缺乏思考的耐心,放棄回答。

同時,絕大部分應聘者都對框架表現出了極大的熱情,對於框架相關的問題,不管能不能答到重點,普遍滔滔不絕。然而當我提問能否給出一個方法實現雙向繫結時,我沒有收到一個靠譜答案,確切的說,是幾乎沒有人肯回答(雖然這樣的問題對這次招聘來說是超綱的)。

我並沒有要像阿當老師一樣對框架批判一番的意思,我想說的是另一個問題——

通過交流,我發現這些應聘者中很多人都貸款買了房子,有些 5 年以上的資深應聘者,都已經有了孩子。其中年齡最大的一個應聘者每月按揭 6000+,孩子將要上初中。

所以你知道我為什麼有點吃驚了吧——我看到了巨大的風險。

按照我的理解,能回答上面的兩個面試題,是順利從事 js 程式設計工作的最基本的要求——首先你對語言不能太陌生,然後你至少要具備一點通過程式設計解決實際需求的能力。

這些來應聘的前端工程師們,主要還是靠技術吃飯的,所以這不是一個關於熱愛、情懷的問題,這是極其現實的,關於按揭貸款的問題。這裡面比較年長的人,可能在前端火爆之前就已經在業內工作了,關於如何生存,他們自有一套(比如有個 VB 時代過來的哥們,已經買了若干商鋪,出來工作純屬玩票)。可是還有一些相對年輕的,可能在前端最火爆的時候,通過參加培訓,順利地找到工作,加入了前端工程師行列。在同學還在住地下室的時候,他們已經月薪上萬,早早買了房子。

可問題是,怎麼能把還按揭的寶,壓在你實際上並不具備的技能上呢?

我把這篇和“多媒體”完全無關的文章,作為這個號稱要寫點“前端 & 多媒體”內容的專欄的開篇,就是希望告訴準備靠前端吃飯的朋友——

如果你想靠前端技術還房貸,你不能連我上面出的那兩個面試題都不會。


相關文章