1. 程式人生 > >做前端程序員能在一線城市買上房?出兩道題考考你

做前端程序員能在一線城市買上房?出兩道題考考你

能力 結果 一點 看到了 fun 之前 分享 view 綁定

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

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

技術分享圖片

對web開發技術感興趣的小夥伴,歡迎加入:前端學習圈,不管你是小白還是大牛我都歡迎

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

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

// 請問輸出什麽
for (var i = 0; i < 10; ++i) {
    setTimeout(function () {console.log(i)}, 0);
}

第一問,這段代碼輸出什麽?第二問,如果想讓這段代碼輸出0123456789,應該怎麽修改?

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

某個應用模塊由文本框 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 時代過來的哥們,已經買了若幹商鋪,出來工作純屬玩票)。

可是還有一些相對年輕的,可能在前端最火爆的時候,通過參加培訓,順利地找到工作,加入了前端工程師行列。在同學還在住地下室的時候,他們已經月薪上萬,早早買了房子。

做前端程序員能在一線城市買上房?出兩道題考考你