工程師的自我成長

-

你想轉職前端工程師?你該設定這些短中長期目標 - 設定目標的重要性及方法。

this.web

前言

身為一名想轉職前端工程師或已經在轉職路上的你,可能經常回覺得在學習路上迷失方向,不知所措。畢竟前端技術種類繁多,新舊技術汰換快速,常常會有該學什麼?該學到什麼程度的自我疑惑。

people thinking

我當初在轉職的路上也經歷過一樣的自我懷疑,所以今天想分享一下,我在轉職期間,設定了哪些目標,以及我轉職成功後,覺得哪些目標對轉職路上,或前端工程師這個職業是重要的,希望能夠給你一些方向。

在開始之前,我想先告訴你設定目標的重要,妥善的設定目標,讓我在轉職路上沒有那麼迷茫、壓力,能夠把更多心思放在學習或實作上。如果你不擅長設定目標,在文章的最後我也會幫你整理我認為轉職前端重要的短中長期目標,讓我們開始吧~!

為什麼要設定目標對於轉職很重要?

不論是在生活、學習或事業上,設定一個明確且有挑戰性的目標都是非常重要的,尤其是對想要轉職的我們來說,不管你轉職的理由是什麼,是金錢、自由、熱忱等等,只要想轉職都代表你對現狀不滿意,想要改變自己,甚至有可能希望在短時間內快速變化,但改變往往是痛苦的,如果沒有一連串有規劃的目標,最終常常迷失方向,放棄自己。

有明確目標的人和沒有明確目標的人,在生活上的態度以及做事、學習的方法及效率也會有很大的差別,有明確目標的人會有方向感,明白自己該去哪裡;有目標的人會有行動力,能夠每天朝著夢想前進;有目標的人更會有毅力和決心而且不怕失敗,因為清楚自己的目標,路途上的失敗或挫折其實都只是幫助自己離目標更進一步的墊腳石。

people who is setting goal

所以對於想轉職前端的人來說,設定明確目標是非常重要的,能夠避免我們浪費很多時間在自我懷疑,也能讓我們更專注的學習。更重要的是,達成目標能夠帶給我們成就感,這在轉職路上事非常重要的,如何讓自己不斷獲得為小的成就感也是一門學文,其中設定良好的目標就是方法之一,接下來就讓我分享設定目標的技巧,以及什麼樣的目標是一個好的目標。

如何設定好的目標,幫助我們快速成功?

其實設定一連串的目標就像一段旅行,首先需要確定想去哪裡玩(目的地),接著就是安排遊玩景點(目標)、預訂交通住宿(資源與方法)、列出行程規劃(執行計畫),這樣才能讓整個旅程順利圓滿。

那轉職也是一樣的道理,你首先必須設定好想要的新職業領域(目的地),接著列出要掌握的核心技能(景點目標),再規劃如何透過學習、練習等方式獲取這些能力(交通方式),並擬定詳細的每日每週計畫(行程表)。

規劃一段好且適合自己的行程對旅遊很重要,相對的,規劃一段好且適合自己的目標對於轉職也非常重要,以下是好目標的規劃方式:

由大到小拆分目標

設定目標有一個很常見的迷思,就是我要設定很大的目標,每天激勵自己前進,但這完全是錯誤的,不是說設定大目標不行,而是設定完大目標之後,重要的是拆解。

要直接完成類似轉職這麼大的目標,就好比要你一步跨上 101,彷彿天方夜譚 👇

people and 101

所以第一步我們要切分目標,比如我說我要轉職前端工程師,月薪 20 萬。這聽起來非常困難,但只要將這個目標切小一點就會瞬間覺得彷彿可行,比如我會切成這三個目標:

  1. 前端工程師需要哪些技能,一個一個學習
  2. 履歷、面試怎麼做,工作怎麼找,慢慢學習
  3. 先從月薪五萬當作目標,並藉由工作的經驗,找出升職加薪最重要的能力,並慢慢培養

當然,這些目標又還可以在往下切,切到你覺得你能夠完成,但卻有點挑戰性為止。

所以說我們要根據大目標來設定多個目標,並逐一擊破、完成。曾有研究表示,有明確設定目標並且寫下來的人,成就是沒有目標的人十倍。

SMART 評量

SMART 是很常見的目標評量法,但核心觀念非常受用,SMART 代表具體(Specific)、可衡量(Measurable)、可實現(Achievable)、相關(Relevant)、有時限(Time-bound),會分成這五種是有原因的:

1. 具體 Specific

目標是要具體的,比如說"我要掌握前端技術",就是一個不明確的目標,我們需要先定義出轉職前端工程師要具備那些技術,而 "學習 CSS 選擇器、Flex、Grid 排版技巧"、"學習 JS 基礎語法和 DOM 操作" 就是更具體的目標,具體的意思是你看到這個目標,就能知道自己該做些什麼。

2. 可衡量 Measurable

一個好的目標必須是可以被衡量和追蹤進度的。單純"學習CSS" 這類模糊目標,很難判斷達成與否。我們應該設立明確的衡量標準,例如 "能夠開發出包含Flex佈局、漸層動畫等CSS技巧的網頁",透過這些量化指標,你就能明確檢視自己的CSS實力是否達標,而非自我臆測。

3. 可實現 Achievable

目標不應該是遙不可及的期望,而是理想但可實現的目標。過高或過低的目標都會打擊你的學習動力,這也和前面提到的 "目標要由大到小拆解 " 是相關的。我們要評估目前的目標是否是可實現的,我們可以從三個角度來思考。

  1. 你現有的基礎能力
  2. 你能投入的時間資源
  3. 取得知識技能的難易度

比如對於完全初學者,1 個月就 "熟練React" 的目標顯然難以達成。但若是已掌握JS基礎,在 3 個月內學會React 框架並開發出小型應用,則是比較可實現的目標。

4. 相關 Relevant

每個人的職涯規劃不同,所設定的目標必須與最終目的相關,避免浪費資源在無謂的學習上。舉例來說,若你是為了轉職前端工程師,那 "學習後端語言" 或是 "刷 leetcode" 這類目標對你目前來說就不太相關,但"熟悉Git版本控制"、"練習基礎程式邏輯" 這些則與未來工作息息相關,就可以依照個人情況排進目標中。

5. 有時限 Time-bound

最後,設立目標最後必須有明確的期限,通常期末考試前一天是讀書效率最高的時候,單然這不只是為了增加目標的執行力,也能夠有助檢視目標的合理性。譬如: "在3個月內獨立建立個人作品網站" "用 6 周熟悉 React 核心觀念並開發簡易應用 "

我建議時限不要超過三個月,如果一個目標需要的時間超過三個月,通常代表這個目標太大了,需要往下拆分。

基本上我們在規畫目標的時候,都可以透過這五個面向來看看目標是否合理。

視覺化找出關聯性

有時候我們的大目標不會只有一個,當初我的目標除了轉職前端以外,還想要經營自媒體、想學英文未來遠端工作、想成為全端接案等等

當我們設有多個目標時,將它們視覺化是很好的方式來找出目標之間的關聯性和優先順序。我們可以將目標寫在便利貼上,把坐大的目標放在最上面,思考每個目標的關聯性。

我習慣用 Miro 這個免費的白板工具,紀錄自身的目標,以及各個目標的關聯,以下是示意圖。

目標關聯性

例如將"成為工程師月收十萬"是我的上層目標,那 "經營自媒體"、"學習英文遠"、"學習後端知識" 等目標放置就可能會是中層,並思考如何讓這些目標相輔相成,在這個例子中 "經營自媒體" 和 "學習後端知識" 就是可以互相支持的,我可以將學習到的後端知識輸出程文章,發在自媒體上。

這樣一來,我們就能很直觀地看出哪些目標是優先應該完成的,哪些目標是相輔相成的。它們之間是否有共通可以整合的部分等等,有助我們更有效率的分配資源和時間。

與他人分享問責

單打獨鬥很容易半途而廢,與他人分享自己的目標並相互問責是很好的動力來源。我們可以定期與夥伴、朋友或社群分享目標達成進度,大家一起互相激勵。

例如加入線上學習社團,每周都需要更新學習進度,或是與同路好友組學習小組,互相交換心得檢視彼此的目標達成狀況等,都是不錯的做法。

我和我朋友,就習慣每天和對方說今天為了達成目標,做了哪些事情,並每周開會檢討,如此一來,會產生一股被監督的同儕壓力,避免我們鬆懈或視而不見。同時也能適時獲得建議與協助,讓目標更容易到手。

慶祝小確幸

追求目標通常是一段漫長的旅程,單純只著眼於遙遠的終點,很容易因缺乏現實感而半途而廢。因此,我們要懂得在途中為自己小小獎勵,保持持續的動力。

可以在完成每個小目標時為自己慶祝,像是規劃一場小旅行、買個自己喜歡的物品,或是做任何能帶來小確幸的事情,給予合理的正向回饋。像我喜歡在努力兩三天後,買肯德基吃爆蛋塔和喝爆可樂來犒賞自己 😂

透過適度慶祝,不只讓枯燥無味的目標之路添加了一些色彩,更能有效激勵我們邁向下一個目標,讓整個追逐夢想的過程變得更精彩有趣!

前端工程師三大階段目標

如果你對於設定目標不太熟習,在這邊我給你一個範本參考,會分成短、中、長,以及長長期目標,時間只是參考,要依照各人情況做調整:

短期目標 (1-3個月):HTML/CSS/JavaScript 基礎

在轉職的最初階段,掌握好HTML/CSS/JavaScript三大前端基石是最基本也最重要的目標。這階段的核心是理解網頁如何運作、如何用 CSS 排版並美化網頁、JavaScript 則是賦予網頁行為與互動性。

這個階段的主要目標是:

  • 熟悉HTML的所有常見標籤、屬性和語意化觀念
  • 精通CSS選擇器、盒模型、排版與動畫效果
  • 掌握JavaScript語法、資料結構、流程控制、函式運用

很容易被忽略但同樣重要的技能包括:

  • 善用CSS變數管理顏色、字體等樣式
    • CSS 變數能幫助你中心化管理顏色、字型等樣式,提高一致性和易維護性。
    • 適當運用變數也有助於建立模組化 CSS 架構。
  • 理解 Promise 和 async/await 處理非同步操作
    • 這是處理JavaScript非同步操作的現代語法,能提高程式碼可讀性。
    • Promise 鏈式調用和 async/await 語法是前端開發中必備的基礎。
  • 培養良好的變數命名習慣
    • 給予變數簡潔但語意明確的命名,有助於提高程式碼可讀性與可維護性。
    • 遵循命名規範也是進入團隊開發的基本要求。
  • 學會表單驗證等常見互動功能
    • form、input、select、number、textarea 等等和使用者互動的 HTML 元素
    • 表單驗證是網頁開發中最常見的互動功能之一。
    • 掌握各種驗證邏輯和使用者體驗是基本能力。

中期目標 (3-6個月):現代前端框架與實戰

在打底之後,中期將會邁入現代前端框架的領域,並開始實戰練習專案開發。透過框架能快速拼裝出富有互動性的網頁應用程式。

這個階段的主要目標是:

  • 選擇流行框架如 React 或 Vue 並熟練運用
  • 理解框架的元件概念、單向資料流、路由等機制
  • 運用框架知識開發簡單的實戰專案

但很多人容易忽略的重要細節包括:

  • 學習 Context 或 Zustand 以方便管理資料流
    • 當應用程式複雜度提高時,狀態管理將成為控管資料流的重要課題。
    • 學會使用 Zustand 或 React 自己提供的 useContext 能避免資料混亂,提升效能。
  • 注重程式碼的簡潔性、可讀性和可維護性
    • 不僅要會開發,更要養成良好程式碼品質的習慣。
    • 遵循乾淨程式碼原則有助於降低技術債務,提升可讀性與可維護性。
    • 可以參考 clean code 這本書
  • 知道組件化的概念,並練習適當的組件化和命名
    • 組件命名可以參考這個短影片
    • 組件化是現代前端框架的核心概念,直接影響效能和擴充彈性。
    • 給予恰當的元件切分和命名有助於提高可重用性。

長期目標 (6-12個月):面試準備與專案實力

來到長期目標,這個可以把重心放在鞏固自己的核心實力、提升作品集和面試技巧。

這個階段的主要目標是:

  • 持續累積個人作品集和優化履歷
  • 培養面試相關技巧和溝通表達能力

然而,經常被忽略而應該並重的還有:

  • Git 版本控制系統
    • 團隊開發一定會用到 Git,所以熟悉指令以及開發流程是很重要的
  • 熟練如何解釋技術細節並展現專案特色
    • 除了編寫程式,還要能夠清晰解釋專案的技術細節以及特色。
    • 可以把 GitHub 的 readmd 寫清楚乾淨,對於某些面試官會是加分。

長長期目標 (1 年之後)

最後補充成為前端工程師之後,你可以繼續往哪些方向深入,提高自己的職涯籌碼以及競爭力:

  • 學習 TypeScript 等靜態程式語言提升效能與維護性
  • 熟悉測試的概念並能為程式寫測試
  • 網頁效能優化
  • 了解基本的後端知識
  • 培養"學習如何學習"的能力以便持續精進
  • 提升英文能力,更快獲取最新資訊,未來也能往國際發展
  • 了解團隊管理知識

透過分期分階段的目標管理,你能夠紮實地一步步在前端領域紮根並茁壯。

後記

如何設定一個適當的目標,也是一門學問,我在一開始設立目標時,總是很容易設定一些難以達成或是不夠具體的目標,常常做到一瓣沒有進展就放棄,後來才發現設立目標是有技巧,以及需要練習的,希望這篇文章,可以幫助到想轉職,或是想設立目標的你~!

相關系列文章