不少人老是抱怨面試官問一些平時不經常使用的知識點,好比算法呀,網絡(TCP)等等,也就是你們常說的:面試造火箭,工做擰螺絲。html
可是有沒有想過爲何整個前端圈,或者絕大部分面試,不只是前端,各類職位都是這樣呢?難道就沒人來解決這個問題嗎?
我以爲,事實上,這是一種合理的行爲,並非由於存在即合理,而是原本就應該這樣,接下來我以兩個方面闡述個人觀點。前端
1、 考驗對專業知識的掌握的紮實程度html5
在張鑫旭的十問十答裏的一個問題是,「前端開發基礎紮實的標準是什麼?」web
這裏面他對「紮實」的解釋我以爲很適合來答這個問題。面試
「扎」其實能夠理解爲深度,你能夠想象一個用一根針,扎你的皮膚,對一個點的壓力,可讓你痛不欲生。算法
那麼如何理解知識的深度呢?編程
我仍是拿前端面試來舉例,好比考一個快速排序,不少人就以爲這有什麼好考的嘛,平時又用不到,引擎底層已經寫好了 sort 方法,什麼數量級用什麼排序底層也已經實現好了,不必考了呀。網絡
可是其實面試官並非想考你快排的代碼是如何寫的,說實話,花個十分鐘,最多半小時,一個快排的代碼你確定能夠記住。可是其實考察快排的真正緣由可能不只僅是考察代碼,而是考察它的思想,分而治之(分治法),劃分算法的運用。前端工程師
另外可能會再問你,它的時間複雜度是多少,如何計算等這些問題,這些問題也不是來考你這一個算法的計算,而是經過這一個算法來看你知道怎麼算時間複雜度不?以此來引導你爲何快速排序快,爲何一樣是分治法的歸併排序沒有這麼快。等等相關的算法方面的知識。數據結構
面試官所考察的問題只是各類底層思想的一個運用,經過這個實例應用來考察對底層思想的理解程度。因此不少時候大廠的面試老是從淺入深的問問題,直到把你問到不知道爲止。
再談談「實」,實則能夠理解爲滿,考察知識的廣度。
想象一下什麼樣的狀況你纔會說一個東西實,給你一晚裝滿的米飯,而且還壓一壓,再放進去一些米飯,直到壓不下去了爲止,這個時候你會說滿滿的一晚米飯,很實在。
因此對「實」的理解就能夠理解爲滿,全。
如何來體現你對知識的廣度呢,也就是實。
好比能夠考察一些你平時不經常使用的,可是你也許會用到的知識點。好比一些簡單的算法和數據結構,鏈表呀,網絡裏面的 tcp/ip 協議族呀,函數式編程呀等等,一些 html5 的特性(好比 web-compoennt)等等。
你可能在平時編程中沒用到,或者大多數前端工程師平時不會用到,可是這些是基本功是須要知道的,好比 React 源碼中就用到一些簡單的數據結構,鏈表(Fiber 樹就是用鏈表的結構存的,是一個單鏈表,以及裏面還有循環列表的增刪改查),若是不知道樹能夠用鏈表存,如何對鏈表進行操做,那麼可能你看源碼就很成問題。裏面還有一些位運算等,位運算平時也不經常使用吧,可是 fb 的工程師就用它來解決實際問題。
再好比 web-component,這已是 w3c 提出的一個前端組件化的標準了,我國也有大佬用 web-component 實現了一些庫,好比騰訊出的 OMI。
咱們前端變化得快,新東西也多,如何不跟上時代,多瞭解(主要了解,不是每一個新東西都要去深究,由於你沒那麼多時間,大多數時間仍是要用在平時用獲得的地方)一些新東西。
跟不上時代,也行就會慢慢的被淘汰,因此如今前端招聘基本上都會須要你會一門框架,不論是 React 、Vue、Angular,這些都是趨勢,數據驅動,再也不是之前拿起 jQuery 就是幹了。
在工做中經常使用的知識點,那些是最重要的,那麼你們都會這些,若是你不知道點,別人不知道的東西,這些東西比別人掌握得更深一點,面試官爲何要你? 也許你仍是個雙非(非98五、211)。
我以爲在任何領域都適合一個定律,就是「T」字形發展,先把專業搞深一點,而後往兩邊擴展。
2、醉翁之意不在題
另外面試官也許會考你一些軟技能,考你的不只僅是面試題完成了那麼簡單。這點注意,越簡單的題越不簡單(好好理解這句話)。
我拿我本身的經從來舉例,以前作小米的筆試題(是那種把題目發給你,兩天內作好了發給他)的時候,有一道題是:求最大公約數的題目。
不少人看到這道題以爲很簡單嘛,幾行代碼就搞定了,當時跟我一塊兒作筆試題的幾位競爭者也是,他們就寫了一個算法。
而我當時想到,我以爲面試官在檢查這道題的時候若是看代碼仍是有點麻煩,因此我就寫了一個界面,界面上提供了能夠點擊的數字,還有輸入框,還有幾個計算按鈕,一個結果框,用戶能夠經過點擊數字,或者在輸入框裏輸入數字進行計算最大公約數,還作了一些錯誤提示等。
這至關於作了一個應用,一個能夠給用戶使用的應用,因此最後由於這道題,我被錄取了。
因此以後我就愈來愈注重用戶體驗,多一些思考,讓別人用本身作的東西的時候更舒服,更方便。
一些小提示
通常面試官不會由於你某道題沒答出來就否認你的。
面試官不喜歡簡歷上寫的啥都會,一問每一個知識點都掌握得很淺。
對於平時經常使用的框架,至少要知道核心原理。
這些是以前咱們組面試官在討論的時候提到的,但願能給你們幫助。
若是你依然在編程的世界裏迷茫,不知道本身的將來規劃,能夠加入web前端學習小分隊,不管是基礎仍是進階我都歡迎,技術分享
點擊:加入