Skip to content

Road to Front-End Developer

Intro

當我還是個稚嫩的高中生時,我非常討厭電腦課教的程式語言(C++/VB),認為這輩子都跟程式絕緣。殊不知在日新月異的前端領域中,我找到了比設計、文案更巨大的成就感。下定決心轉職的幾個月後,我已經找到一份前端工程師的工作了。

一切都始於一個小小的契機

在成為前端工程師的路上,用微小而堅定的步伐,努力邁進。

說到為什麼會想要轉職成前端工程師,原因其實還滿單純的:因為寫程式很有成就感。

2018 / 6 月前後,我當時的工作是文案企劃,做著做著就也想順便弄一下自己的部落格(當時比較各家之後選用 WordPress.org),買了網域、找了厲害的工程師朋友幫忙處理後台,勉勉強強也是讓部落格上線了。無奈的是,想要自訂點畫面,卻連 CSS 都看不懂,只能一直加裝 plugin,網站就一直增肥,幾個月後只好放棄。

大概就是從那個時候開始,覺得 CSS 很有趣。設定點東西,畫面就會改變,這件事帶來相當巨大的成就感。

從那之後就會時不時地看一下 W3Schools,想要多了解一點程式語言,從此一腳踏進前端的世界,回不了頭了。

莫名其妙開始的自學之路

你真的知道自己在做什麼嗎?

不過當時我連前端/後端具體是什麼都還不清楚,一下就看 W3School,對初學者的我而言難度太高。於是,我決定先研究一下大方向,了解一下這產業的環境。

學習路徑

摸黑如何前進?

我爬了不少文章跟網站,總算稍微分得清前/後端。但嚇人的是,程式語言的語言、框架、函式庫、專業術語就像床上的塵蟎一樣,想到就頭皮發麻。我一直不斷地搜尋、整理、調整,總算列出自己想要的學習路徑,之後才是去驗證這條路徑到底適不適合我(必須且戰且走才知道!)。

下面列出一些滿值得參考的文件,沒方向的時候就上去看看自己在哪個階段、應該要去學什麼:

東看看西看看之後,我得到的結論是,前端的一切其實都是從這三個東西延伸出來的:

  • HTML
  • CSS
  • JavaScript

你知道,我知道,獨眼龍也知道,前端三本柱,其實就是基本中的基本。基本,很枯燥乏味,但不論學什麼,打好地基都是幫助之後快速成長最快的途徑,這是我的信念。正因如此,在學會使用框架、函式庫之前,必須學會使用原生的方式寫出任何想要呈現的效果,才夠格說自己會前端。很多問題其實在網路上都有解答,真的要用的時候剪貼過來就好了,問題是我看不看得懂人家在寫什麼。如果只是要會用,那難度其實不會太高,但是我絕不要做一個只會 Ctrl+C / Ctrl+V 的工程師。

我要能夠自己變出來啊!

這是我對自己的要求,所以前面好幾個月,我把時間全部投注在打基礎上。

在這個階段,很適合去看一些基礎的教學影片,或跟著免費課程一步一步學習,例如:

澎澎的 JavaScript 前端工程

Traversy Media

Free Code Camp

CodeCademy

自學最重要的事

如果你都不放過自己,還有誰會放過你?

我認為自學最重要的事情,就是要認知到下面兩點:

  1. 沒有人會逼你,所以你得逼自己
  2. 何時該放自己一馬

第一點人人都明白,但假如你沒辦法讓自己適當地休息,掌控自己的節奏,那很容易會把自己逼到盡頭,如果你是喜歡挑戰極限的人,這樣做當然挺好的,但如果你像我一樣是個凡人,那逼到極限就意味著離放棄不遠了。

要時常回想,當時為什麼要開始學程式?回想起那些富有成就感的時刻,想想初衷,好好放鬆一下身心,然後繼續再戰。

這樣,才能走得長遠。

支撐我繼續走下去的成就感來源:進入心流

支撐你繼續堅持下去的,又是什麼呢?

學習前端好一陣子,終於能夠開始寫點小作品了的時候,我有時會體驗到進入心流的感覺。那是一種專心致志、全神貫注、腦子非常清楚、全然投入的感覺,有好幾天 coding 到晚上 11、12 點,睡覺夢到某個問題的解法,清晨 4、5 點就清醒,然後再也睡不著,只想繼續寫。

最近在開發一個案子,也有滿高的機率開啟心流。那種感覺,真的只有一個爽字能形容!

但我逐漸認知到,這種時刻通常都是出現在「產出」,而非「吸收」的時候,也因此要避免自己只想寫不想學,這樣只會把自己榨乾而已。該累積養分的時候還是得乖乖學習的唷。

確定要來真的了嗎?轉職的轉捩點

你是何時開始認真看待自己要轉職到一個完全陌生的領域這件事呢?

大約是在 2019 / 4 月左右,當時覺得對於 HTML / CSS 已經有基礎的了解, CodeCademy、FreeCodeCamp 上的免費教程也已經做到有點索然無味了,想要來認真加深 JavaScript 能力,一方面也想著:「是不是該來認真考慮轉職的事了?」

果斷辭職

有時候,純粹是一股衝動。

搜尋了一陣子 JS 課程後,我報了台大資訊系統的一門實體課,叫做「網頁前端實務 JavaScript」,教的內容完全符合我的需求,既超出我的程度,又不會到完全不懂,但需要很努力才能跟上腳步的那種。

我原本一直是用業餘的時間來學程式,但漸漸地發現,這樣下去我的學習成果不會好。既然已經決定要轉職了,那就必須投入 100% 努力才行。因此在 2019 / 5 月中,我果斷離開原本的工作,專心在學習程式、準備轉職上。

久到令人心慌的空窗期

前途一片迷茫。何時才能結束?

前前後後空窗了 4 個半月,是我人生中目前為止空窗最久的一段時間了。

這段期間,每天大部分的時間都花在學習程式上。當然,「假如失敗」的念頭,三不五時就會冒出來。每當這種時候,轉移注意力、貨回憶初衷,都是很有效的辦法,能將自己拉回正軌。

當你專注在一件事情上的時候,全宇宙都會來推你一把!就是在這個時期,我參加了幾個前端 Facebook 社團,而剛好看到了 Luka 大大創立的 程式柴 Codeshiba 專頁,當時正準備開啟一連串的職涯領航計畫,衝著免費我就報名了。

發現有一群人跟自己在同樣的道路上掙扎前進,那種感覺是無可比擬的,就好像原本是獨自一人在跑馬拉松,突然發現其實身邊全是夥伴的感覺。而且有個 mentor 領跑,更能夠幫助自己看清方向,去除掉不必要的、浪費時間的事,更有效率地專注在達成目標上。

CodeShiba 社團真的給予我很大的助力,跪拜 Luka 大大。

想加入需要通過審核,請自行私訊程式柴粉絲頁

粉絲頁: 程式柴 Codeshiba
社團: CodeShiba 學員專區

跌跌撞撞的面試

你以為公司為什麼過這麼久都不通知你?

這幾個月都是在 Udemy / Youtube 上找課程、影片學習,偶爾有靈感的時候,就會自己寫個小作品(寫的時候很有成就感,寫完回頭看才覺得怎麼那麼醜,哈哈哈)。

差不多七月中,開始有公司會發面試邀請過來,但面試完幾乎都沒有下文。我心裡很清楚是因為程度不足被刷掉,所以每一次的面試,我都會盡量去記被問到答不出來、或答得卡卡的部分,那些就是我該補強的地方(結果多到數不清…)。

以下是每次面試都會被問到的部分:

  • git 能力
  • CSS 切版(Float、Flexbox、Grid)
  • CSS 權重觀念
  • JS DOM/陣列 操作
  • JS 串接 API、Ajax、ES6

除了自己去面試,也可以多多參考他人的履歷,Luka 相當熟知怎樣的履歷看起來會吸引人而且程度很高,被他調整履歷了之後不久,我就找到目前的工作了(當然,還是有一些運氣成份,幸好面試主管實際問到的問題我答得出來)。實在是可喜可賀!

GK 的履歷,看看笑笑就好

Road to Front End Developer Never Ends

這是一條沒有盡頭的路。

我畢竟還是個全然的跨領域轉職者,雖然已經有一些基礎了,但比起原本就在這一行裡打滾的前輩們,根本完全不夠。接下來我為自己設定的方向如下:

  • 在公司裡能學到的
    • 業界協作流程(git)
    • 與 server 互動(串資料)
    • JS 框架(Angular)
  • 自行練習
    • CSS(Materialize、Bulma、BootStrap 等套件)
    • jQuery(沒錯!我還不會 jQuery,通通都是寫原生)
    • 補足瀏覽器、http 協定等相關知識
    • 加深 JavaScript 觀念
    • 學習 Node.js

原本的目標是兩年內要能夠自己寫含前後端的部落格,不過我現在期望自己能夠盡快學會跟 App 有關的能力,因為我有一些有趣的遊戲跟應用的點子,卻寫不出來,很痛苦啊。

對我來說,轉職只是個中繼點,通過這個 check point,不代表已經到終點了,還是必須繼續朝目標前進。終極目標是什麼?其實我也不曉得,就且戰且走吧。

總而言之,祝各位在轉職的路上,穩定踏實地邁進!