小心 5 個誤區,成功轉職前端工程師

2022年12月2日

💎 加入 E+ 成長計畫 與超過 400+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源

因為過去分享過自己的轉職前端工程師的經驗,以及轉職後順利拿到 FAANG 工程師 offer 的經驗,陸陸續續有收到讀者詢問關於轉職工程師的事宜。其中很常被問到要如何轉職成功,所以想說與其一一回答,不如整理一篇文章給有想要轉職的讀者朋友們。以下五個點,是我根據自己轉職經驗、看到身邊其他轉職的例子後整理出來,推薦大家要避免的誤區。如果你能避免下面提到的問題,相信會更有機會成功轉職。

誤區 1 — 看一堆教材影片但不實作

假如你過去完全沒有程式背景,但想要轉職前端工程師,從程式學習影片開始是個不錯的選擇。然而,你不應該只停在看教學影片。寫程式是非常實作導向的,換句話說假如你讀了一堆學習的教材、看了一堆程式教學影片,但是始終沒有開始動手實作,你將會很難把程式學好。Ping Lab 創辦人 (前 Twitch 工程師) Theo 曾經用「教材地獄 (Tutorial Hell)」來形容這個現象。試想今天你要學游泳,你可以看很多游泳教學的書籍,也可以看很多游泳比賽的影片,但假如你不實際下水去練習,看再多影片都沒幫助。這邊不是說讀教材不重要,而是不能只是讀教材但不實作。就像游泳選手也會不斷鑽研游泳技術,但不會有游泳選手只鑽研技術但不實際練習。所以,務必學了一個概念後,就一定要練習與實作!

誤區 2 — 沒有個人專案

上一點提到不要只看教材與影片,學程式一定要實作。但實作的方式很多種,你可以跟著某個影片實作,這是好的開始。但當你已經有這種手把手跟著影片做的經驗後,請務必要有個人專案。舉例來說,做一個簡單版的 Twitter,或者簡單版的 Airbnb。現在 YouTube 上面有蠻多這種個人專案的教學影片,但強烈推薦不要只是跟著影片做。因為假如你都是跟著現成的影片做,你將會失去培養解決問題能力的寶貴機會。

解決陌生問題是軟體工程師非常重要的能力之一。面對一個過去沒做過的功能,你需要先分析這個功能,拆解功能成不同的子功能,最後發想實作的方式。在過程中你可能會卡關,這時你要練習與培養如何有效搜尋解答 (練習問對的問題)。如果只是完全跟著影片做,將會失去學習這些的機會。因此,即使在網路上找得到別人錄製好的簡單版 Twitter 實作影片,也建議你先自己試著做,真的某個功能卡關時,再去看那些影片。

個人專案除了培養解決問題的能力外,更重要地是,如果你的個人專案如果做得好,放在履歷上是非常加分的。試想,假如你只是跟著某個影片做一個 To-do List,其他一樣想轉職前端的人,多半也都做過這種入門的專案。假如你的履歷只有放這類大家都做過的專案,將會比較難在履歷海中脫穎而出。有個特別的個人專案,不僅讓你的履歷能更受青睞,在實際面試時,你也會有更多故事可以講。

舉例來說,被問到「你遇過最棘手的技術問題是什麼? 你是如何解決的?」假如你只是跟著影片做,可能做下來都不會遇到什麼問題,因為影片中的講者都把知識內容包裝好,所以一切都很順。這反而讓你在面試時,沒辦法有故事可以說。但假如你是做個人專案,你就可以分享你如何解決某個陌生問題的過程。有這類解決某個技術問題的故事,會對面試很有幫助。

誤區 3 — 廣而不精

在入門學程式時,會比較推薦專注學好一個程式語言。不同的程式語言,雖然語法與語言特性會不太一樣,但許多模式 (patterns) 是可遷移的。有些人在初學程式時,學 JavaScript 之餘、又學 Python,又學個 Java,這樣看似同時會很多語言,但反而會讓你沒辦法學得足夠深入。許多核心或進階的概念,是需要投入足夠多的時間在同個語言上,才會慢慢領悟。如果想要轉職前端,那就先把 JavaScript 學好,然後選一個框架 (例如 React 或 Vue),然後把精熟該框架。在你足夠精熟前,不要再去碰其他語言或框架。

很多人會擔心說,只會 JavaScript 求職上會不會比不上那些會多個語言的。假如以初階的前端工程師來說,這個問題是多慮的。會 JavaScript 加一個主流框架,基本上就會有足夠多的職缺機會。假如你真的想探索其他框架的思考方式,或想多了解不同語言,這種想多學習的心態很棒,不過請先等你已經精通 JavaScript 後再做。

誤區 4 — 遇到困難就放棄

很多人轉職沒有成功,不是因為沒有天份或是沒有方法,而是因為遇到困難時放棄。只要你還沒有放棄,就不算轉職失敗。這段不是要灌讀者雞湯,而是要想說,除非你是程式天才,不然學程式的過程一定會遇到很多卡關的時候。而一個人能不能轉職成功,往往決定於遇到這些卡關時,你能不能堅持下去。要拿到初階前端工程師工作,需要的知識沒有像造火箭那樣困難,假如某個概念弄不懂,多看不同人講解的,或者休息一兩天後才回來看,最後一定能弄懂。

更有甚者,很多時候程式迷人的地方要在峰迴路轉後才能感受到。以筆者為例,我當初從 JavaScript 要進一步學 TypeScript 時,一開始有非常非常多的挫折。每寫一小段,TypeScript 的編譯器就吐出幾個錯誤,即使當時我已經轉職當前端工程師一年了,我遇到那些錯誤時,還是懷疑自己到底會不會寫程式。但是隨著我慢慢熟悉 TypeScript 後,我慢慢地感受到靜態型別的好,我開始珍惜編譯器會幫我看到我自己忽略的錯誤。在用 TypeScript 半年後,我有機會去協助維護一個用 JavaScript 寫的舊專案,那時我邊寫邊抱怨「這個型別是什麼呀?」,我才意識到,自己已經離不開 TypeScript 了!

分享上面這段是要講,假如我一開始因為學 TypeScript 的挫折就放棄的話,我最終會無法體會到 TypeScript 的好。所以假如你現在因為某個功能寫不出來的話,再多堅持一下。堅持下去終會轉職成功,也終將能體認到程式的美。

誤區 5 — 沒有好好吃飯睡覺運動

OpenAI 的 CEO (同時也是 Y Combinator 的前總裁) Sam Altman 先前寫了一篇回顧人生的重要學習反思,他的其中一個重要體悟是 Exercise. Eat well. Sleep. Get out into nature with some regularity. (運動、吃得好、睡眠,適時親近大自然)。這一個體悟看似平常又簡單,但這真的是非常多人會忽略的。筆者認爲對於學程式、轉職工程師,要能夠成功,照顧好自己的身心狀態是很重要的。假如你正在轉職的途中,除了衝刺學習與實作外,務必確保自己有照顧好自己,確保該吃飯時吃得健康,確保有充足的睡眠與運動,這些基本但重要的基底,是能讓你走得長久的關鍵。

最後,假如你把基本的前端知識都弄懂,也做出了個人專案。下一步就是投履歷與準備面試。關於前端面試,ExplainThis 上面有我們整理的常見問題與簡答筆記,推薦給正在密集準備的你 (點此前往)。祝每個在轉職路上的你,都能順利發展出最適合自己的職涯 🙂

🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們