Ting's Square 程式寫作之路

[2020] Astro Camp 紀錄 - 邁向工程師之旅(上)

Tags:  #career  
Total : 80 words.

成為軟體工程師快一個月了,感謝五倍紅寶石的邀請撰稿,讓我能把轉職過程的點點滴滴記錄下來,參加 Astro Camp 絕對是2020年最棒的決定沒有之一!

一、轉職軟體工程師成功的海歸背包客

10年前就想朝著資訊相關工作邁進,但是成為軟體工程師之路並沒有想像中的順遂

我在大學本科系是企業管理學系,本來是個電腦麻瓜,某年夏天因為用壞了老爸的電腦被嚴厲責罵之後心中了出現「我要如何修好一台電腦?」的疑問,而開始對重灌電腦、組裝電腦充滿興趣,還因緣際會成為學校的電腦社長。回首過往,其實蠻感謝自己有那段弄壞電腦的經歷,算是是人生的第一個轉折點。(XD)

大學畢業後報考資訊管理研究所,碩士論文寫的是網路使用者日常線上資訊行為的探勘研究,因為自己程式基礎沒有打得特別好,畢業後也沒有太大的信心走往軟體工程師的業界,而是決定先在台灣大學做國家科學委員會的計劃研究助理,當時上班的業務是使用使用 php + mysql 作網站、資料庫、以及網路管理等,雖然好像什麼都會碰到玩到,但專案規模也很小,自認離真正的軟體工程師還有段距離,也沒有想好好認真面對寫程式這件事情。

真正開始想要認真轉職的原因是後來出國當背包客,趁著年輕到處旅行走走看看(2013-2019,主要待在澳洲與日本),這段除了自己外語能力有顯著提升之外,也開始思考自己該如何提升國際移動的能力及國際競爭力。我在國外認識不少網站工程師朋友,看到他們能透過自己的程式專業技能成功移往海外國家工作,讓我既佩服又羨慕。

在2018年底起了轉職工程師的念頭而在澳洲開始自學Ruby,並且透過參與2019IT邦鐵人賽熟悉Ruby這款語言,為了方便製作學習筆記、也開始學git、並且在GitHub自架我的學習blog,我非常驚訝於Ruby簡潔、優雅的語法,跟以前在學校學習其他語言的感受很不一樣,當時寫完30天修煉Ruby面試精選30題後有幸得到鐵人賽佳作後,決定以Ruby這款語言作為轉職工程師的起點。

當時的我在自己的錢包裡放了一張手寫紙條:「在2019年底前成為Ruby on Rails工程師!」隨時提醒自己莫忘初衷,好好朝著目標前進。

自己覺得自學能力還算不錯的我,上網在Udemy平台買了課程,但是學到Rails框架的時候遇到最大的瓶頸就是我只會照著教材跟著一步一步做出網站,但是沒辦法推導、變化出我想要做的功能。知其然而不知所以然的學習方式,讓我覺得十分挫折。

於是,2019年的年底到了,我沒有順利成為工程師,而是轉於忙碌於人生的其他的事情。

轉職工程師加速器,非 Astro Camp 莫屬!

2020年因為疫情的關係,我回到了台灣,不過成為工程師這項代辦事項仍然在我的清單上還沒有放棄(畢竟當時參加鐵人賽時,我的參賽文章裡都向世界宣告我要努力成為軟體工程師了!)

剛好那陣子參加了五倍紅寶石 Astro Camp 第四屆的Demo Day,當我看到三個月的程式素人經過進鑼密鼓的扎實訓練之後,竟然可以發表厲害的網站作品(如GitHub、程式解題網站、打字遊戲網站等,兼具美感和充滿創意的功能),看到台上發光發熱的學長姊們讓我大受鼓舞,對於自己報名 Astro Camp 這個決定充滿了信心。

Astro Camp 是小班制的教學,在開課前三個月五倍紅寶石的課務就會積極地聯絡學員的狀況,除了提供先修的課程連結、關心我們自習的學習進度之外,也會在班上群聊的channel關心大家的生活大小事,任何問題都可以提出來,我很喜歡這種營造學習型社群的氣氛,同學們之間也會分享上課的心得、提問題,或是看到什麼有趣的內容就分享給大家。五倍的課程都會有上課錄影,所以就算真的因為某些原因沒辦法出席課程,也不會錯過任何重要的課程內容。

Astro Camp :業界首屈一指的課程師資

教HTML和css的Amos老師教切版時非常帥氣,雖然我對於前端一直都不是特別在行,但上完課之後,對於常用的flex排版、inlineblock的比較、position等基礎概念都更佳熟悉。Amos老師啟發我們去觀察各種形形色色網站的架構,讓我們不再只是個只會上網的麻瓜,上完課後,我們會用心去看網站的動線與設計、排版有沒有歪掉、以及RWD的規劃,從此看網站的角度再也不一樣~真是太神奇了!Amos同時還是IT邦鐵人賽的常勝軍,連三年的冠軍作品金魚都能懂的網頁設計入門金魚都能懂的網頁切版教學金魚都能懂的Bootstrap5網頁框架開發是每位網站前端學習者必看的系列影片!

教JavaScript的泰安老師同時熟悉三種語言,上課時會比較js、Ruby和、Elixir的不同寫法,超級酷!但老師帶給我最多收穫的部分,是思考程式語言背後的哲學,因為每個語言之所以被創造出來,都是有它自己的世界觀,用來解決不同情境上的問題。上完泰安老師的課,你會對於「在javascript裡函數是一等公民,可以把函數傳給另一個函數當做一般的參數。」有更深的體會。泰安老師還啟發我們對於Functional Programming的好奇心,在現在我自己公司的專案裡都用得到。 Astro Camp 也安排了五場JavaScript的Workshops,讓我們在一整天的時間研究出用JS刻出能夠在前端跟使用者互動的功能(記帳軟體、代辦事項等小專案),真的做不出來詢問助教都會熱心地給予提示,讓我們像是透過「破關」、「解謎」的步驟,把龐大的功能拆成一個一個的小功能,並且帶領我們一步一步地完成看起來艱難的題目,每次workshop結束後都超累,但是也慢慢地累積「原來這個功能雖然看起來複雜,但我也做得到!」…等身為工程師的成就感。

教git, Ruby和Rails的龍哥是Ruby圈令人尊敬的大大,從以前我在自學Ruby時期就很常看龍哥的文章,因為龍哥會把看起來很難懂的東西解釋地深入淺出。龍哥上課的方式是會帶領我們討論出想要用Rails開發的網站,再一步一步地打造出來這個網站應該有的功能(例如我們這一屆選的是開發網路版的批踢踢PTT),我覺得這樣的設計很棒。龍哥會問我們想學什麼,然後來教學(像我就有提出想學Vue、其他的同學也提出想學Tailwindcss),此外龍哥也會不定期地在晚上直播加課,我們上過兩三次討論javascript。所以上龍哥的課,你要積極提問,知道自己想要什麼,為自己負責。

我覺得龍哥最厲害的是很會利用激將法(?XD)讓我們突破自己的潛能,我們第四屆許多同學都被龍哥推坑參與今年的IT邦鐵人賽,在忙碌的分組專案同時,還要每天連續寫30天IT技術文章不中斷,其實不是一件容易的事。不過在大家的互相勉勵和監督之下,包括我以及大部分同學都憑著一股毅力完賽了,也為後來面試找工作的履歷上,增添一筆努力過後的甜美果實。