從佛系到高效學習,「偽」本科生成為工程師之路
從佛系到高效學習,「偽」本科生成為工程師之路
2019 年 7 月 15 日「五倍紅寶石 ASTRO Camp 第二屆」始業式那天對我來說還記憶猶新,即便一切距今已有一年之久,但那一年其實是我從碩士班畢業後的第一年。知道自己即將脫離學生身份的我,希望在成為社會新鮮人之前,再衝刺、充實自己的機會。
背景
私立資管系學事所畢業,大一修過 C 語言、資料庫,大二修過物件導向、網頁程式設計,碩士論文主要在研究「類神經網路」,還有一些資管會上的課程。
簡單來說,我大ㄧ、二全部的必修課都靠了我的朋友們才順利的通過,大三之後就沒有再去選修程式課,大四專題也大多是另一個同學 & 老師的幫忙下才完成的,碩士班稍微碰了一下機器學習的東西,但還是靠著教授才能如時的順利畢業。
縱使自己是資管所畢業,但其實大學的教學讓我「沒那麼喜歡」寫程式。
畢業以前,我兼過遊戲專欄作者、網路媒體小編、行銷公司上班,但薪資天花板的高度還有工作上的挑戰確實與成為「工程師」有很大的落差。也是如此,我給自己三個月的時間再次成為學生,「重新」學習寫程式,「重新」學習「如何學習」。
因我認為我沒有資格說該如何「轉職」工程師,比較適合已經想好單純想成為「網頁工程師」的讀者來看我是如何「學習」,還有分享學習過程的「經驗」。
學習藍圖
學習藍圖共分為兩個部分,分別為參加 「五倍紅寶石 ASTRO Camp 第二屆」之前、後的藍圖,主要是想讓讀者比較能理解我的學習過程,或者是剛好有買過、正在考慮某些課程或想學習什麼但不了解資源。
(每個學習資源我都覺得對該階段是有所幫助的,沒有優劣之分,只有對於當下的你適不適合,以及帶來的收穫多寡)
佛系學習
HaHow 好學校 — 吳哲宇
我的大學同學有一部分大多都做「網站」來當作專題,有些(偽)網站是直接套「WordPress」或者是請外包,不過當時有個朋友那組是買程式入門這堂課來自己刻並結合 Unity 寫遊戲於網站上。
雖然我這組不是寫網站來做專題,但當時邊做專題的我在想,我大學四年中喜歡的課程有哪個?唯一想到的大概也只有「網頁程式設計」的第一堂課(HTML 語法認識)而已,因此後來跟朋友就此借來看,並且從頭到尾都有上完及實作。
後來寫完專題後,覺得收穫許多,就又買了後面的特效入門,不過大概上到一半左右去寫論文就沒有看完了。
我認為「動畫互動網頁程式入門」這堂課比較適合已經知道程式語言,曾經有碰過或者是多少對語法已經有了解的人上,過程中的範例很多,範例也都是老師自己設計出來的,過程中可以從 HTML、CSS 學到 Pug、Scss、Bootstrap 3 並且到 jQuery、JavaScript 及 Vue。
不過其中過程比較少講「觀念」,有些地方跳比較快些,大多都是透過「範例」來直接時做給你看,可能當時對於前端比較不了解的我,雖然可以在課程上跟著老師寫著 Pug 語法,還有可以跟著刻出範例,不過到自己動手時總是卡卡的。
且當時候只對「切版」比較有興趣,所以上完課後的最大收穫是獲得很多範例(手刻),HTML、CSS 這部分的語法有用到的變很熟悉,只是有些「觀念」不清楚,所以可能遇到一些版就切不出來,不過這堂課的 CP 值應該是中文課程中算很高很高的…
六角學院
- 使用 HTML、CSS 開發一個網站
- 使用 jQuery 打造互動性網頁動畫效果
- 一變應萬變的響應式網頁設計
- 精通 Bootstrap 4 - 開發超強不解釋
- JavaScript 入門篇 - 學徒的試煉
六角的課程,我是在 2019 年的 1 月購入的,當時候被抽獎活動吸引(誤),就把大學賺的錢買了套餐一次買足,還有主要的原因是,我上述上的課程其實真的很多「觀念」都不太懂,還記得當時候直接想說有很多語法都已經熟悉,想說直接做最後的 RWD 實作,結果發現連導覽列都切不出來。
光一個導覽列,看到不同人的好幾種切法,我其實當下是慌的,因為就之前的課程我只跟著老師一起實作,但自己動手思考的部分都佔少數,所以我潛意識的就只會老師寫的那種語法,但不太理解原因。
因此,我從頭再重新開始學習,並實作每個作業及單元的練習,六角的優點很適合「完全沒碰過、不知道」程式的人來上,基本上都是用很好懂的簡單例子來介紹每個單元,不過因為比較基礎,我聽到「JavaScript 入門篇 - 學徒的試煉」中後段才有我完全沒聽過的「觀念」及「語法」出現,後來因為也去寫論文就沒有看剩餘的兩堂課了。
我認為,六角的課很適合「新手、轉職」來看,但「範例」相對上面的就少非常多,不過助教、還有舉辦的社群活動真的佛,還有每週的直播我覺得都是很值得參加的。
但可能當時先上過了「動畫互動網頁程式入門」 的課程後再來上六角,成長曲線趨近平滑的關係,以及「範例」相對少的緣故,我的「觀念」還是沒有非常清楚,或是基礎觀念的部分,已經是原先我已經會的…
CSSCOKE
也不知道為什麼,在學事所畢業的前夕左右,我就像金魚一樣被釣到了 Amos 大大的頻道,還記得第一個看的影片應該是 刻意練習與專案實務,裡面請到了 Alex 宅幹嘛 跟 偷米騎巴哥 兩位大大一起來討論,那時候覺得單純聽業界大神在講一個主題非常有趣,而且因為寫完論文沒什麼事情,一整天下來影片也只有兩個小時都嫌短。
於是又看了 從 TypeScript 學習 JavaScript 再到 阿莫斯の兔偶斯 : XMIND 心智圖超好用 | 思維導圖 | 大腦開發、阿莫斯の網頁料理室 : 煩ㄟ! 切版好難! 我不會切版啦! ? | 新手網頁教學 | CSS 教學, 然後每個兩個小時的影片基本上全部從頭追到尾,一天可能就看了兩三個。
雖然沒做什麼筆記,也沒有在個人技術上有明顯提升,但直到開始看 超入門 - 金魚都能懂的 HTML 教學 如「醍醐灌頂」般的旋風式起飛,那時候才知道 HTML、CSS 的「觀念」有多重要,從盒模型、定位、Float、Flex 排版、Reset、RWD、等等…,基本上看完這所有系列的影片,對於網頁程式的基礎會更上一層。
尤其是每個單元以每個簡短的範例,帶上重要的基礎「觀念」,先講完之後再一起手刻一個範例來加深觀念,我覺得這系列可以說是 CP 值爆表又超佛的,而且完全免費,連在底下問問題都還會回覆,立馬推薦給當初借我看購買課程的那位同學一起來看。
也是因為認識了 Amos 之後,才有了現在的我,以及被推坑到「五倍紅寶石 ASTRO Camp」的這段經歷…
五倍學院 ASTRO Camp
在選擇「ASTRO Camp」之前,我有先跟其他的教學機構比較過了,雖然當時比較下來我也不知道確切的實質差在哪邊,只是單純熱愛前端的我,單純被 HTML、CSS 課程是 Amos 上課就被推坑報名繳費。
不過也不是就這麼阿莎力,我也有問了五倍學院的其他課程跟 ASTRO Camp 的差異?簡單來說,Camp 是一個完整的課程設計,適合從前到後、從頭到尾學好學滿的人,也適合轉職的人來學,而官網的課程比較屬於短期且單項目的精進。
後來去參加了第一屆的 ASTRO Camp 成果發表及人生第一次遇到 Amos 本人後,分析我的需求大約一個多小時後被正式推坑報名 ASTRO Camp,連說明會也都沒有聽,很單純的被推坑來學 Ruby & Rails ~
簡述一下整個三個月的 Camp 的過程,主要會分成三個課程階段及實作,其中三個課程包含:
先修課程
HTML / CSS (10)
JavaScript (10)
Git + Ruby + Ruby on Rails (20)
三個課程主要是穿插來上的,不過每一屆都有做修改但 HTML/CSS 是一定先上,以我們這屆來說,可能一週會有 3 天 (1) + 2 天 (3) 或 2 天 (2) + 3 天 (3) 這樣子來穿插,讓你有更多時間去吸收,而不會一個階段的課程連續上好幾天,如果稍微有落後就跟不上進度的情況。
後來一週會有一天的實作課,主要可做上課後的回家作業、複習前幾天課程(雖然不用上課但基本上所有人都全員到教室一起進修,在 channel 找助教問問題都是隨時就馬上到,之後的幾屆還有舉辦 Workshop,助教會花一至二小時的時間講一下觀念,還有要實作的內容,然後當天下課前必須做完,以及每組派一位上來報告,像是練習 API 實作,如何做一個 Chrome Extension 等等…
課程總共會在兩個月內上完,如果還有多餘時間也會額外繼續補充還有上其他技術,剩下一個月會分組做一個 Demo Project,大約會有三~四週左右的時間,我覺得最大的進步點應該在這個部分,同時間可以學習架構的思考,畫 ERD 圖、User Story、Prototype、Scrum 分票及與其他成員一起協作,自然而然 Conflict 一定是家常便飯,Git 會變很熟。
整個課程的技術上會學到 HTML、CSS、RWD、Bootstrap 4、JavaScript、Webpack、Git、Ruby、Ruby on Rails、SQL 及 RESTful API 等等。
而助教會在整個上課期間擔任非常重要的角色,不僅每堂課的下課就會馬上進來教室給同學詢問問題,中間也會舉辦 Workshop,而到最後一個月大家分組開始做 Demo Project 時,也是隨 call 隨到一起討論架構、程式以及你遇到的難題,不只如此,助教與行政人員,也會不時有訪談及關心同學的學習狀況。
除了表訂上課的時間外,下課後的問問題時間也是從助教身上獲得經驗的一部分,晚上不時也會有龍哥的加課、Amos 的前端切版 Code Review,最重要的是,不只學習技術重要,「參訪、如何寫履歷、簡報課、職涯發展講座及業界公司講座」也都是課程的內容之一,滿滿的資源會讓你覺得時間過很快,學到很多東西。
邊做邊學
五倍 - 十八銅人
5xtraining
五倍的課程結束後,還有個最終作業,必須自己一個人想從頭到尾的規劃、架構,其實跟上課最後的 Demo Project 有點像,不過整體必須要符合這個作業的需求,像是寫測試、I18n、部署、串接資料庫、分頁、登入系統、標籤等等,都是這個最終作業裡要自己實作完成的功能。每完成一項功能,就必須發 PR 請助教來看,直到做到正確了,才可以順利通過。
因為是完全從頭到尾的自己實作,不像之前一起與其他同學完成 Demo Project,會學到之前自己沒有著手寫到的部分,也是再次把自己還不懂的地方尋求助教再次釐清。
課程結束後,我大概花一個月的時間在寫這個最終作業,中間有夾雜撰寫履歷、看其他前端的課程、書籍及面試。我認為如果每天全心投入的話,應該兩個禮拜左右可以完成,因為助教基本上你一發 PR 如果他沒有在忙就會馬上幫你看,或者是直接去補習班問問題都是可以的,不過我寫了一個月也沒寫完(還有最後登入系統的幾個步驟),因為想找前端工作寫 React,就跑去自己看線上課程 & 官網學,結果就找到一個後端工作惹(?
Udemy
- Modern React with Redux [2020 Update]
- The Modern Javascript Bootcamp Course (2020)
- AWS Certified Solutions Architect - Associate 2020 X
因為原本很想找前端工作,看了 104 上大多想找的公司也都比較偏用 React 居多,所以後來就把這個當作目標來學,然後想說邊學就可以一邊去面試。當然 JavaScript 的基礎也需要更上一層,所以就也買了另一堂課。
在寫「十八銅人」後的半個月內,一邊面試一邊把上述兩堂課大概看了一半左右,React 的部分看到 Redux 之前,影片內容看完後再回去看官網 doc 也會滿清楚的,雖然我一開始是直接先從官網看,不過有些定義跟方法我其實不是看得很懂,後來也是在這堂課中理解出來,JS 那堂課看到開始講 node.js 左右,而 AWS 是因為公司現在在用所以當初買了假日看,不過因為後來工作太忙也看了幾個單元,目前荒廢中…
YouTube
結束五倍的課程後,剛好補上 Amos 在這屆的鐵人賽中的影片組切版,跟「佛系學習」中第一次被 Amos 釣到成為金魚ㄧ樣,只是這次的主題都是實作,三十天的切版練習剛好成為每天早上開始寫十八銅人的晨間早操,先直接看最終結果,切完之後再回頭看看 Amos 大怎麼切的。
Book
- 0 陷阱!0 誤解!8 天重新認識 JavaScript!
- 金魚都能懂的 CSS 選取器:金魚都能懂了你還怕學不會嗎
這兩本書應該就不用說了,008 裡的東西全部都是面試前端工作的基本觀念問題,用很好懂的例子告訴你「觀念」,而金魚系列的書最近剛出,不過還沒有開始看就是,先買起來墊泡麵(?
「學習」如何高效學習
以前看著影片跟著做然後程式碼會動,好像就是學會了,要自己動手時,卻寫不太出來。究竟從上課後到現在,我如何「高效學習」:
- 原子習慣
- 筆記工具
- 部落格
- iT 邦幫忙鐵人賽
原子習慣
「原子習慣」是五倍結束的結訓禮物,縱使我們雖然知道習慣很重要,但你經常為了自己的壞習慣苦惱,戒除卻力不從心?或者,你想養成好習慣,卻老是半途而廢?
書中一個步驟一個步驟分享如何建立更好的習慣,不是幾天或幾週,而是一輩子的習慣。雖然這本書寫的一切都有科學依據,但並非學術研究報告,而是一本實作手冊。
相信這份禮物勢必是,希望結訓的我們帶著這本「實作手冊」,可以不管是在現在、未來都能藉此建立更好的習慣,透過微小的改變、微不足道的增長、百分之一的改善,無論你的起點在哪裡、想要改變什麼,只要你想由內外的改變心態,就此改變。
筆記工具
- Typora
- Quiver
Markdown 語法不只做筆記,在日常工作透過 Slack、Meets 上支援 Markdown 來溝通,讓文字能更好的呈現,減少溝通成本,已經成為不管是筆記、工作中必學的技能。
支援 Markdown 軟體的工具上,在以前沒寫程式之前,有用過 Evernotes,不過到後來的收費簡直驚人,而且現在還要在筆記中紀錄程式碼,稍微有些不方便,但主要還是金額被迫棄坑。
雖然 HackMD 一直是滿多人使用的筆記工具,在五倍上課的時期,我們同學們也會開共筆筆記,一起記錄今天上課的內容,不過我個人用起來覺得滿不順手,而且畫面稍微有點醜所以沒有選擇它,且檔案很多的時候,我會有找不到的情況,個人覺得「標籤」的設計上不太好用,常常找檔案花很多的時間。
在上課期間,我改用 Mac Only 的 Typora,一邊學習紀錄「筆記」,善用分類、標籤來紀錄學習到的知識,相較於 HackMD 不同,Typora 只能在本機 上面使用,如果哪天電腦壞掉了真的就 GG,而且也沒有標籤功能。但好處是 Typora 給我的感覺很簡單、很清楚、指令也都很好記,在畫面上也不會有多餘的按鈕或者是其餘東西讓使用複雜化,此外切換模式來一般打字也可以幫你翻成 MD 檔案,滿推薦給大家。
但工作後,因為我常常到乙方工作,我把這個筆記工具不只當作紀錄著技術,還要同時分資料夾、紀錄出勤、紀錄一天在做什麼、技術,同時再考量到能備份、標籤功能,我後來選擇 Quiver 來當作工作工具,一來可以分資料夾新增筆記、也可以有標籤功能、搜尋標籤、備份上 Dropbox、Google 等等,二來有點繼承 Typora 的簡單感,又只需要一次購買就買斷,也一路用到現在了。
透過「筆記」紀錄技術,保持「習慣」紀錄每日的狀況,審視自己學到的什麼?時時刻刻謹惕自己必須一直往前。
部落格
保持習慣,會做筆記,但這些還不夠!養成習慣會把吸收的東西做成筆記是好的,但是怎麼判定你自己有沒有已經吸收了呢?
這是我認為最重要的一步,我們常常吸收了別人給的知識,是個接收者,而架設部落格、撰寫文章就是轉換角色變成傳遞者,透過來自給地的技術、知識,轉換成屬於自己的文字去解釋給另外的接收者吸收知識,能驗證自己是否聽懂別人告訴你的事情,當你發現你已經可以講給另一個人聽懂,才是真的你記下來了,你會了。
「我認為,寫技術文章就是最好的進步方式。」
架設部落格是我在上五倍的課程時,龍哥推薦我們除了可以一邊寫鐵人賽,也可以一邊發不到自己的部落格,我是透過 HEXO 推到 GitHub Pages 然後有串 Cloudflare + 轉址到自己買的網域,讓自己看起來變得更專業,可以一邊經營自己的品牌還能一邊串 SEO 看自己品牌的曝光度。
iT 邦幫忙鐵人賽
一次實現所有的高效學習。
去年的鐵人賽,剛好是在我五倍結訓前的一個月開始,會參加的原因莫非是龍哥的推坑,全班一半慢慢的被洗腦每天邊上課,回家都在趕文章,我們這屆不誇張有寫完得幾乎全部都找到工作,原本一開始其實是寫雞湯文章 「思考的演算」 的讀書心得,拿來這屆參賽(?
結果先存了十篇的乾貨後,覺得再也寫不下去,不知道要怎麼掰所以就放棄,後來因為我看我的同學們都在寫介紹 Ruby 一系列的文章,所以我就想要點不ㄧ樣的,就挑戰一天一範例說明 Wes Bos JS 30 如何使用 JavaScript 開發,總共寫了三十天三十個 JavaScript 範例的文章,順利在 Demo Project 前五天剛好完賽,想到那時候一邊趕 Project 一邊寫文章真的是沒在睡覺的,還記得有天晚上先寫文章到晚上 11:30 後,再去修改投影片簡報到晚上 4:00,然後隔一天又再繼續上課…
也是參加了鐵人賽,同時訓練「習慣」、同時訓練「筆記」,不能間斷、不能預先完成、不能先交再補。習慣每天一定要反覆做一件事情,每天都不能錯過,不能有僥倖的心態,培養出好的習慣,唯有持之以恆,才能真正獲得。