前端工程師到底要需要掌握什麼技能、到什麼程度,才能去找工作?
好多人都想知道,前端工程師到底要需要掌握什麼技能、到什麼程度,才能去找工作?最簡單的答案:
把 html、css、 js 基礎學紮實,再掌握vue或react前端框架之一就可以了。
真的是這樣嗎?技術上看似乎沒問題,但是找工作不只要從技術上下手,還要從個人目標和公司的招人標準綜合進行考量。那麼接下來,我們從這幾個方面來分析一下,前端工程師找工作的必要條件。
個人目標
現在我們的教育並沒有太著重於個人目標和職業規劃的設定,但找工作與其關係特別大。如果你想找一個大廠,那麼準備方向就跟創業公司完全不一樣。我們分別來看一下這兩種情況。
大廠
大廠可能更看重你的 html
、css
和 JavaScript
資料結構
、演算法
和計算機網路
。你的準備方向就應該是這些基礎方面的東西。另外還有一些原理方面的知道,比如你要做 vue
或者 react
開發,那就要知道 virtual dom
和 diff 演算法
的原理。
創業公司
如果你的目標是創業公司(這種公司的發展前景不可預測,可能大展巨集圖,也可能半途而廢),你需要有大量的實戰經驗,因為創業公司為了搶佔市場,產品的開發進度一般都會特別緊張,你需要去了就能夠立刻幹活;而理論方面的東西則會關注的少一些。針對面試,你需要去準備相關技術(比如 React 或 Vue) 的實戰專案經驗。
所以要想知道學到什麼程度才能去找工作,首先得明確一下你的目標,是想去大廠,還是去創業公司,然後分別進行準備和突破
公司要求
接下來再看一下公司的招聘要求,好多公司都寫的特別專業、全面,除了基本語法、框架外,還要求有相容性調整、效能優化、視覺化經驗,或者是掌握一些小眾框架。這些招聘資訊其實描述的是最佳人選,幾乎在100個裡面才能挑出1個來,而這種大牛級別的人自己也向往更好的工作機會,所以可能根本不會跟你有競爭關係。公司這麼寫招聘要求目的只有一個,就是找一個技能越全的人越好。
事實上,你只需滿足要求的百分之80%,70%,甚至 50% 都有可能獲得這份工作機會,因為面試不光看技術,還要看眼緣、人緣:如果面試官覺得你們投緣的話,你即使有不會的問題,他也會主動引導你幫你回答上來;要是不投緣(有些比較250的面試官),那就算你會的再多,他也會覺得你很菜(你不懂他懂的
技術能力
分析完外界的因素之後,來看一下咱們需要具體掌握哪些技術。
基礎
作為一名前端工程師,html、css、JavaScript
基礎是一定要掌握牢固的,所有的語法點都必須要掌握,然後還要熟識面試必考的題,比如 ES6 及後面的新特性
、原型鏈
、Event Loop
等等。這些不是從學校學來的,而是為了面試專門突擊準備的,需要反覆的去看,去研究,最後把它們理解並記住。
框架
掌握這些基礎之後,就需要看一下前端比較火爆的框架,react
和 vue
。大廠用 React 的比較多,中小型公司用 vue 的比較多,當然這也不是絕對的。據我目前的經驗來看,React 的薪水還是比較高的,不過看你自己喜好,喜歡做什麼就做什麼,從這兩個框架中選一個深入去學,後面有時間再去研究另外一個。具體學習和準備方法可以
- 先學基礎用法,再學高階用法,最後掌握框架原理,比如:
React / Vue
,Redux / Vuex
,因為面試官通常喜歡問這方面的問題。針對這些一定要去看看別人的總結,然後自己研究一下,會更容易理解並記住。瞭解原理後,有時間再去研究一下原始碼,對於面試會更有幫助。 - 理論準備完之後,實戰肯定也少不了,無論是校招還是社招,無論是面大廠還是面小廠,都需要應聘者有實戰經驗。因為光會紙上談兵,編碼能力不夠也不會有公司願意去培養。實戰就建議大家自己去網上找一些專案的靈感,然後動手去做一下。剛開始可能會覺得自己技術不夠,也沒有一個全域性的概念,這些都是正常的過程,可以跟一些課程或者書籍,或者是網上的一些資源,學習一下,免費或收費的都可以。收費的好處就是它有一個完整的體系,讓你從全域性上有一條路徑順著走下去,就能完成一個目標。而免費資源需要你有充裕的時間,因為在遇到問題的時候,需要你一點一點去研究。不過在完成之後,回顧一下你的專案開發過程,也會在腦子裡形成體系,再把之前看過的所有資料整理一下,也就學會了,只是時間上會比較長。
- 有些公司的實戰經驗要求的比較豐富,比如相容性調整和效能優化。這種經驗就需要你在開發專案中,刻意去創造問題的場景,然後解決它。比如說相容性調整,你就得在專案中體驗一下不同瀏覽器對於JS和CSS 特性的支援程度,然後按需調整。而效能優化則就需要從網路請求、圖片載入、動畫和程式碼執行效率下手。
這些你搞懂了之後,基本上百分之七八十的公司都可以面過去。
軟技能
上面說的是必備的硬性技術技能,還有一些必要的軟技能,用以展示個人性格和工作能力。最重要的一項軟技能是溝通能力。
溝通能力
溝通能力,對於面試或是彙報工作都是必須的。它跟你的自信程度是完全掛鉤的,你只有自信之後才能有更好的溝通和表達能力,如果唯唯諾諾,低三下四,那麼在面試或彙報工作的時候就會支支吾吾,顛三倒四。
舉個例子:好多人,包括我本人,在面試的時候都會緊張,而我又屬於那種特別緊張的,有些技術可能本來是熟悉的,但面試的時候人家換一個問法、或者氣氛比較緊張的話,大腦就會一片空白,想說也說不出來,特別吃虧。要解決這個問題,就要相信自己就是什麼都會,面試官也不見得比自己會的多,然後面試前事先準備好常見面試題的答案,以及過往的工作經驗,可以極大的增加自信。當準備面試題的時候,可以採用框架的形式進行組織,下邊介紹兩個常用框架用來回答工作經驗類和原理類的問題。
STAR 框架
對於工作經驗相關的問題,可以使用框架組織回答,比如亞馬遜北美那邊面試會提前會告訴你,用一個叫STAR的框架回答問題:
- S 是說 situation,事件/問題發生的場景。
- T 指的是 task,在這個場景下你要解決的問題或者要完成的任務。
- A 是 action,行動,要解決上邊那些 tasks,你需要付出哪些行動?比如說第1步先去除錯程式碼,然後第2步再去檢查一下哪個變量出問題了,描述清楚每一步行動。
- R 是 result,結果,這些行動有了什麼樣的結果,是成功了還是失敗了,對你來說有什麼幫助或者增長了什麼教訓。又或者往大里了說,給公司帶來了什麼效益。
這樣一整套就比較有邏輯。
原理回答框架
再說原理概念類的問題的回答,也是要有一套邏輯的,就比如說解釋一下某某技術的工作原理,那麼你要:
- 解釋一下這個技術是幹什麼的(What)。
- 它有什麼好處(Why)。
- 分析一下這個技術內部用了哪些核心演算法或機制,從外到裡,或者由淺入深的給它剖析出來。如果是能拆解的技術,那就把每個部分或者元件的作用簡單的描述一下(How)。
- 最後再給他總結一下這個技術的核心部分。
例如,你要回答 react 工作原理的問題:
- 可以先說一下 React 是做什麼的
它是一個構建使用者介面的庫
。 - 然後它使用了(從淺一點的方面)
virtual dom
把元件結構放在了記憶體中,用於提升效能。 - 元件重新整理的時候又使用了 diff 演算法,根據狀態的變化去尋找並更新受影響的元件(然後繼續深入 diff 演算法...)。
- 再底層一些, React 分為了
React 核心
和React-dom
,核心負責維護元件結構,React-dom 負責元件渲染,而 React 核心又使用了Fiber
架構等等等等。 - 如果你深入閱讀過它的原始碼也可以再結合原始碼給面試官詳細介紹一下,最後再總結一下 react 載入元件、渲染元件和更新元件的過程,這個就是它的工作原理。
總結
這些就是前端工程師要學到什麼程度才能去找工作、以及怎麼找工作的一些個人看法。你需要:
- 設定個人目標。
- 辯證看待公司的招聘要求。
- 掌握硬技能和軟技能(溝通能力)。
- 使用 STAR 框架和 WWH 框架組織面試回答。
按照這些方向去準備的話,一定可以會找到滿意的工作。如果找到了還請記得回來炫耀一下如果覺得文章有幫助請點個贊吧感謝!