1. 程式人生 > >為什麽程序員面試都是造火箭,那些不為人知的秘密!

為什麽程序員面試都是造火箭,那些不為人知的秘密!

平時 jquery 深度 面試官 orien 體驗 想象 結果 怎麽

很多人總是抱怨面試官問一些平時不常用的知識點,比如算法呀,網絡(TCP)等等,也就是大家常說的:面試造火箭,工作擰螺絲。

但是有沒有想過為什麽整個前端圈,或者絕大部分面試,不僅是前端,各種職位都是這樣呢?難道就沒人來解決這個問題嗎?
我覺得,事實上,這是一種合理的行為,並不是因為存在即合理,而是本來就應該這樣,接下來我以兩個方面闡述我的觀點。

技術分享圖片

一、 考驗對專業知識的掌握的紮實程度

在張鑫旭的十問十答裏的一個問題是,「前端開發基礎紮實的標準是什麽?」

這裏面他對「紮實」的解釋我覺得很適合來答這個問題。

「紮」其實可以理解為深度,你可以想象一個用一根針,紮你的皮膚,對一個點的壓力,可以讓你痛不欲生。

那麽如何理解知識的深度呢?

我還是拿前端面試來舉例,比如考一個快速排序,很多人就覺得這有什麽好考的嘛,平時又用不到,引擎底層已經寫好了 sort 方法,什麽數量級用什麽排序底層也已經實現好了,沒必要考了呀。

但是其實面試官並不是想考你快排的代碼是如何寫的,說實話,花個十分鐘,最多半小時,一個快排的代碼你肯定可以記住。但是其實考察快排的真正原因可能不僅僅是考察代碼,而是考察它的思想,分而治之(分治法),劃分算法的運用。

另外可能會再問你,它的時間復雜度是多少,如何計算等這些問題,這些問題也不是來考你這一個算法的計算,而是通過這一個算法來看你知道怎麽算時間復雜度不?以此來引導你為什麽快速排序快,為什麽同樣是分治法的歸並排序沒有這麽快。等等相關的算法方面的知識。

面試官所考察的問題只是各種底層思想的一個運用,通過這個實例應用來考察對底層思想的理解程度。所以很多時候大廠的面試總是從淺入深的問問題,直到把你問到不知道為止。

技術分享圖片

再談談「實」,實則可以理解為滿,考察知識的廣度。

想象一下什麽樣的情況你才會說一個東西實,給你一晚裝滿的米飯,並且還壓一壓,再放進去一些米飯,直到壓不下去了為止,這個時候你會說滿滿的一晚米飯,很實在。

所以對「實」的理解就可以理解為滿,全。

如何來體現你對知識的廣度呢,也就是實。

比如可以考察一些你平時不常用的,但是你也許會用到的知識點。比如一些簡單的算法和數據結構,鏈表呀,網絡裏面的 tcp/ip 協議族呀,函數式編程呀等等,一些 html5 的特性(比如 web-compoennt)等等。

你可能在平時編程中沒用到,或者大多數前端工程師平時不會用到,但是這些是基本功是需要知道的,比如 React 源碼中就用到一些簡單的數據結構,鏈表(Fiber 樹就是用鏈表的結構存的,是一個單鏈表,以及裏面還有循環列表的增刪改查),如果不知道樹可以用鏈表存,如何對鏈表進行操作,那麽可能你看源碼就很成問題。裏面還有一些位運算等,位運算平時也不常用吧,但是 fb 的工程師就用它來解決實際問題。

再比如 web-component,這已經是 w3c 提出的一個前端組件化的標準了,我國也有大佬用 web-component 實現了一些庫,比如騰訊出的 OMI。

技術分享圖片

我們前端變化得快,新東西也多,如何不跟上時代,多了解(主要了解,不是每個新東西都要去深究,因為你沒那麽多時間,大多數時間還是要用在平時用得到的地方)一些新東西。

跟不上時代,也行就會慢慢的被淘汰,所以現在前端招聘基本上都會需要你會一門框架,不管是 React 、Vue、Angular,這些都是趨勢,數據驅動,不再是以前拿起 jQuery 就是幹了。

在工作中常用的知識點,那些是最重要的,那麽大家都會這些,如果你不知道點,別人不知道的東西,這些東西比別人掌握得更深一點,面試官為什麽要你? 也許你還是個雙非(非985、211)。

我覺得在任何領域都適合一個定律,就是「T」字形發展,先把專業搞深一點,然後往兩邊擴展。

技術分享圖片

二、醉翁之意不在題

另外面試官也許會考你一些軟技能,考你的不僅僅是面試題完成了那麽簡單。這點註意,越簡單的題越不簡單(好好理解這句話)。

我拿我自己的經歷來舉例,之前做小米的筆試題(是那種把題目發給你,兩天內做好了發給他)的時候,有一道題是:求最大公約數的題目。

很多人看到這道題覺得很簡單嘛,幾行代碼就搞定了,當時跟我一起做筆試題的幾位競爭者也是,他們就寫了一個算法。

而我當時想到,我覺得面試官在檢查這道題的時候如果看代碼還是有點麻煩,所以我就寫了一個界面,界面上提供了可以點擊的數字,還有輸入框,還有幾個計算按鈕,一個結果框,用戶可以通過點擊數字,或者在輸入框裏輸入數字進行計算最大公約數,還做了一些錯誤提示等。

這相當於做了一個應用,一個可以給用戶使用的應用,所以最後因為這道題,我被錄取了。

所以之後我就越來越註重用戶體驗,多一些思考,讓別人用自己做的東西的時候更舒服,更方便。

技術分享圖片

一些小提示

一般面試官不會因為你某道題沒答出來就否定你的。

面試官不喜歡簡歷上寫的啥都會,一問每個知識點都掌握得很淺。

對於平時常用的框架,至少要知道核心原理。

這些是之前我們組面試官在討論的時候提到的,希望能給大家幫助。

自己是一個五年的前端工程師

如果你依然在編程的世界裏迷茫,不知道自己的未來規劃,可以加入web前端學習交流群:784783012 裏面可以與大神一起交流並走出迷茫。新手可免費領取學習資料,看看前輩們是如何在編程的世界裏傲然前行不停更新最新的教程和學習方法(詳細的前端項目實戰教學視頻),有想學習web前端的,或是轉行,或是大學生,還有工作中想提升自己能力的,正在學習的小夥伴歡迎加入

點擊:加入

為什麽程序員面試都是造火箭,那些不為人知的秘密!