Road to Front-End Developer
Intro
當我還是個稚嫩的高中生時,我非常討厭電腦課教的程式語言(C++/VB),認為這輩子都跟程式絕緣。殊不知在日新月異的前端領域中,我找到了比設計、文案更巨大的成就感。下定決心轉職的幾個月後,我已經找到一份前端工程師的工作了。
一切都始於一個小小的契機
在成為前端工程師的路上,用微小而堅定的步伐,努力邁進。
說到為什麼會想要轉職成前端工程師,原因其實還滿單純的:因為寫程式很有成就感。
2018 / 6 月前後,我當時的工作是文案企劃,做著做著就也想順便弄一下自己的部落格(當時比較各家之後選用 WordPress.org),買了網域、找了厲害的工程師朋友幫忙處理後台,勉勉強強也是讓部落格上線了。無奈的是,想要自訂點畫面,卻連 CSS 都看不懂,只能一直加裝 plugin,網站就一直增肥,幾個月後只好放棄。
大概就是從那個時候開始,覺得 CSS 很有趣。設定點東西,畫面就會改變,這件事帶來相當巨大的成就感。
從那之後就會時不時地看一下 W3Schools,想要多了解一點程式語言,從此一腳踏進前端的世界,回不了頭了。
莫名其妙開始的自學之路
你真的知道自己在做什麼嗎?
不過當時我連前端/後端具體是什麼都還不清楚,一下就看 W3School,對初學者的我而言難度太高。於是,我決定先研究一下大方向,了解一下這產業的環境。
學習路徑
摸黑如何前進?
我爬了不少文章跟網站,總算稍微分得清前/後端。但嚇人的是,程式語言的語言、框架、函式庫、專業術語就像床上的塵蟎一樣,想到就頭皮發麻。我一直不斷地搜尋、整理、調整,總算列出自己想要的學習路徑,之後才是去驗證這條路徑到底適不適合我(必須且戰且走才知道!)。
下面列出一些滿值得參考的文件,沒方向的時候就上去看看自己在哪個階段、應該要去學什麼:
- 前端資源懶人包
- 前端九部 - 入門者手冊 2019
- 胡立 - 前端循序漸進學習路程
- 網路上許多大大的轉職心得文
東看看西看看之後,我得到的結論是,前端的一切其實都是從這三個東西延伸出來的:
- HTML
- CSS
- JavaScript
你知道,我知道,獨眼龍也知道,前端三本柱,其實就是基本中的基本。基本,很枯燥乏味,但不論學什麼,打好地基都是幫助之後快速成長最快的途徑,這是我的信念。正因如此,在學會使用框架、函式庫之前,必須學會使用原生的方式寫出任何想要呈現的效果,才夠格說自己會前端。很多問題其實在網路上都有解答,真的要用的時候剪貼過來就好了,問題是我看不看得懂人家在寫什麼。如果只是要會用,那難度其實不會太高,但是我絕不要做一個只會 Ctrl+C / Ctrl+V 的工程師。
我要能夠自己變出來啊!
這是我對自己的要求,所以前面好幾個月,我把時間全部投注在打基礎上。
在這個階段,很適合去看一些基礎的教學影片,或跟著免費課程一步一步學習,例如:
自學最重要的事
如果你都不放過自己,還有誰會放過你?
我認為自學最重要的事情,就是要認知到下面兩點:
- 沒有人會逼你,所以你得逼自己
- 何時該放自己一馬
第一點人人都明白,但假如你沒辦法讓自己適當地休息,掌控自己的節奏,那很容易會把自己逼到盡頭,如果你是喜歡挑戰極限的人,這樣做當然挺好的,但如果你像我一樣是個凡人,那逼到極限就意味著離放棄不遠了。
要時常回想,當時為什麼要開始學程式?回想起那些富有成就感的時刻,想想初衷,好好放鬆一下身心,然後繼續再戰。
這樣,才能走得長遠。
支撐我繼續走下去的成就感來源:進入心流
支撐你繼續堅持下去的,又是什麼呢?
學習前端好一陣子,終於能夠開始寫點小作品了的時候,我有時會體驗到進入心流的感覺。那是一種專心致志、全神貫注、腦子非常清楚、全然投入的感覺,有好幾天 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 相當熟知怎樣的履歷看起來會吸引人而且程度很高,被他調整履歷了之後不久,我就找到目前的工作了(當然,還是有一些運氣成份,幸好面試主管實際問到的問題我答得出來)。實在是可喜可賀!
Road to Front End Developer Never Ends
這是一條沒有盡頭的路。
我畢竟還是個全然的跨領域轉職者,雖然已經有一些基礎了,但比起原本就在這一行裡打滾的前輩們,根本完全不夠。接下來我為自己設定的方向如下:
- 在公司裡能學到的
- 業界協作流程(git)
- 與 server 互動(串資料)
- JS 框架(Angular)
- 自行練習
- CSS(Materialize、Bulma、BootStrap 等套件)
- jQuery(沒錯!我還不會 jQuery,通通都是寫原生)
- 補足瀏覽器、http 協定等相關知識
- 加深 JavaScript 觀念
- 學習 Node.js
原本的目標是兩年內要能夠自己寫含前後端的部落格,不過我現在期望自己能夠盡快學會跟 App 有關的能力,因為我有一些有趣的遊戲跟應用的點子,卻寫不出來,很痛苦啊。
對我來說,轉職只是個中繼點,通過這個 check point,不代表已經到終點了,還是必須繼續朝目標前進。終極目標是什麼?其實我也不曉得,就且戰且走吧。
總而言之,祝各位在轉職的路上,穩定踏實地邁進!