第一周-前端學習首月&意外插曲
前言
在大四上最重要的活動- 研究所推甄落榜 後,就正式宣告我與本校的資工所無緣。而研究所考試入學的管道則是相對競爭(以去年為例: 中央大學資工所收30多人,而報考人數為1300多),暑假的備考過程大概就是: 每日學習無法應用的死知識,學了又忘,忘了再學。反反覆覆下,我更加確信這條路,我既不擅長也不想走,於是我在開學就放棄準備明年2月的考試。關於面對未來出路的焦慮有太多可以談了,以後會找時間單獨寫一篇文。
因為不想要畢業就失業,於是狠下心來認真學習前端技術,也因此可以開啟前端學習之路的挑戰。
新的接觸
在一個多月前我心血來潮想說透過Youtube上的影片自學,想著至少先理解前端技術是怎麼回事,因為我當時對前端的理解僅止於HTML、CSS、JavaScript、網站開發等名詞上。於是我找了由freeCodeCamp.org這個頻道中的前端開發入門課程: Frontend Web Development Bootcamp Course (JavaScript, HTML, CSS) - YouTube 題外話: 很推這個組織,這是一個非營利組織,使命是讓大家免費學習coding。官方Youtube頻道上有各種程式語言、電腦科學相關的優質影片都是免費開放讓大家來觀看。
在這個影片中我學習到幾個重點:
- HTML是網架的骨架,CSS是網頁的裝飾,而JavaScript則是網頁的功能
- HTML 的各個基礎tag
- CSS 的selector 優先度、常用property、Box Model概念
- JavaScript 基礎& DOM(Document Object Model)
- RWD(responsive web design)
而在影片的後段也跟著老師練習Frontend Mentor | Front-end coding challenges using a real-life workflow 上的入門Challenge。在練習得過程中我終於理解為何前端工程師是轉職者的首選,除了網路上學習資源多外,最重要的是很容易獲得成就感,畢竟手刻出一個畫面比寫出一個演算法題目還來的有成就感對吧?
進一步了解
上述入門影片算是一窺前端的基礎技術,但我清楚明白就算把這個網頁三本柱HTML、CSS、JavaScript學到精熟也一定有完成不了的事情。有趣的一點是: 這個blog網站就是在我連三本柱都不認識的情況下使用Hugo (Static Site Generators)建立起來的。
於是我像往常一樣上網搜尋: 「Front-end developer roadmap」,最終我找到這個OpenSource: Frontend Developer Roadmap: Learn to become a modern frontend developer 。 沒看還好,一看就發現一堆未曾聽聞過的技術名詞,尤其是各種相關框架看得令人眼花撩亂。 例如這張表上各種因為實務開發上需要而產生的技術:
- JS Library/ Framework: React、Angular、Vue.js
- CSS Framework: Bootstrap、Tailwind
- Testing tool: Jest
- Build tools: Lisnters and Formatters、Task Runners、Module Bundlers
- Version Control Systems & Repo hosting Services: Git、GitHub
我強力推薦所有要學習技術的夥伴,在朝任一技術方向深入之前都應該要看過由專業人員所建立的學習路線(learning roadmap)。因為學習路線除了做為學習引導外,也可以建立"大局觀",避免把時間投入在 「自以為很重要的事情上」。若沒有上網查找這個roadmap,我可能到現在還在為自己建立的單頁內容(甚至不能稱得上是網站)沾沾自喜呢,很慶幸我並沒有這樣做。
意外插曲
本周偶然間得知AppWorks School 開放大三屆校園培訓計畫(也許是臉書廣告?)、系上的粉絲專頁也分享這個培訓計畫,再加上平常關注的podcast 頻道 "程人頻道" 的最新一集也邀請校長Shirney分享AppWorks School的理念,總總的跡象都像是再提醒我不能錯過這麼好的機會。
以前就有關注到AppWorks,不過印象中都是針對有轉職需求的學員來做培訓。沒想到今年有針對本科系學生的培訓。在聽完Podcast節目,並做了十足的資料收集後,我發現這就是我想要的,學校給不了的 "團隊實務開發經驗" ,於是我直接手刀報名。
在送出報名表單的隔天就收到面談的邀約,下周星期五將會成為我人生中第一場正式面試,特別緊張😟。這麼豐沛的資源再加上金額免費,報名參加的人肯定很多,但我也明白,擺在眼前的機會若不盡力去爭取,未來的我肯定會後悔。
本周的課外時間最主要就是把課程大綱上的相關技術都看過一遍,在這邊特別推薦一個Youtube頻道Fireship - YouTube ,頻道中的100 seconds系列可以帶新手快速認識一項技術or程式語言的歷史&應用。 另外也推薦這個影片 How to OVER Engineer a Website // What is a Tech Stack? - YouTube 在這影片中介紹建立一個網站需要選擇Tech Stack,提供了前後端技術選擇的思路,對於學習者來說可以理解為何建立網站會涉及到這麼多的技術。
總結
瘋狂的一周! 從相關資料的收集、準備報名資料、理解課程大綱的技術,與家人的討論等。在這事情都是一個月前還身陷在情緒低谷中的我無法想像的,但在研究、準備的過程中我確實感覺自己比較沒有這麼憂慮了,也感覺到自己的身心有在成長。很感謝AppWorks School的活動讓我知道,自己還有很多不足之處,學習都來不及了,可沒有時間繼續悲傷下去😂。
無論最終結果如何,我都心懷感激之情,謝謝這兩周努力準備的我,我學到很多。