AppWorks School 培訓總結,軟體界的入門票 — Batch#13 Data Engineering
前言
十二月的六號,我通過了趨勢科技的試用期。
雖然說過試用期是一件非常稀鬆平常的事情,但這是我轉職後第一份軟體工程師的正職,能有機會被一間大公司錄取,並在這裡順利工作三個月、為團隊開發盡一份心力,這一路走來,還是充滿驚奇與樂趣。
在這個時機點,我想要整理這一年的心路歷程、以及一些準備方向,當作寫給一年前正在準備申請 AppWorks School 的自己,也希望能讓幫助到一些,有意願轉職的你。
我的背景
政大廣告畢業,曾經在甲方、乙方擔任行銷實習,還曾跑去獵頭公司當打電話實習生。出社會第一份工作,則是在迪卡儂擔任運動部門經理。
一切緣起
為什麼會走上轉職這一條路呢?總結下來,大致上有三點
1. 在工作中,首次運用程式來解決問題
第一次寫類似程式的東西,是在迪卡儂每週產出的商業報告上,當時覺得每一週都要自己複製貼上相似的東西,浪費時間,所以開始學習用 VBA(Excel 的程式語言)和進階函式處理。後來寫著寫著,覺得能用自動化處理事情很有成就感,開始在工作之餘報名一些 Python、JavaScript 的課程,發現自己並不排斥學習這些,大部分時間也覺得寫程式滿有趣的。
2. 發現自己對於不確定事務,會提不起勁好好做
過去做行銷的時候,我覺得最令人沮喪的地方,在於我不知道經手的行銷專案,到底是我真的設想錯了、執行出問題,還是單純演算法不愛,而不能讓大家注意到我的創意,導致專案結果不如預期;反之,也有可能我覺得自己做得不怎麼樣的案子,但呈現出很好的結果。這些無法掌握付出多少的回報,讓我做到有點力不從心,沒有持續往行銷這條路走。
而程式相對給予我的,就是「即時反饋」,你只要一個指令錯,就是跑不起來,沒有什麼模糊地帶,能讓我迅速對焦問題並且修正,當我修改錯誤後,它也會迅速亮個綠燈、給予我正向反饋。
3. 自己對於生活、職涯的想像與發展,在工作後有新的想法
世界工作百百種,什麼適合我、什麼我有興趣、什麼可以不容易被取代、什麼賺得了足夠的錢生活,這些 trade off,真的是在學生時期沒認真想過,也沒機會實際面對,只有在工作後才會思考自己現在的時薪有多少,你學了這些東西,能帶得走嗎?帶不走的話,這個領域或公司,能讓你待上一輩子嗎?這些問題我相信每個人都有自己的看法,但整體評估下來,軟體工程對我來說會是一個不錯的選項。
綜合以上三點,我決定在去年年尾,給自己一個嘗試的機會,因此走上了報名 AppWorks School 轉職培訓的這一條路。
培訓班選擇
當初在選擇各式轉職培訓班時,比較了滿多不同的單位,最終 AppWorks Shcool 會雀屏中選的原因如下
1. 免費
免費不用多說,外面動輒要 5–10 萬的軟體培訓班,不管轉職成不成功,你就要先花一筆不小的費用投資,能有免費的不試試看嗎XD
2. 需要甄選,且是實體學習
因為免費又有口碑,所以報名人數從來沒少過。
選擇這樣競爭激烈的培訓單位,就跟大家考試升學、努力擠進名校的意思一樣。暫且不論師資好壞,同儕的素質與能力,一定都是經過學校認可且篩選過的,因為 School 的最終目的是要成功轉職,不可能錄取動機不足的同學來砸自己的招牌,而我是一個很需要環境的人,所以選擇一個大家都很厲害、也認真面對轉職的環境,就成為很重要的考量指標。
3. 全自學模式
我是單純聽課就會睡著的體質,不太適合只聽課學習的資策會,而 School 主打模擬工作中真的會遇到的需求與情境,讓你實際從無到有開發、學習的方式,很符合我的性格,因此選擇了 AppWorks School。
如何準備
可以參考我這篇文章,《AppWorks School #13 入學申請成功 — Data Engineer Class》,同時我想結論一個提升錄取的重點!就是證明你過去曾經有過自學的經歷,展現你的動機與決心,讓面談官能更相信你能通過這五個月的魔鬼訓練。因此,我自己認為在書面申請時,只要將「過去有哪些自學的經驗,這些經驗如何證明你是個有能力自學的人」這個問題好好論敘,就一定有機會進入面試的關卡,甚至後續順利入學!
培訓過程
我的同學們整理得很好了,請看
- AppWorks School 申請與轉職心得 — Batch #13 Back-End Class
- AppWorks School 培訓,軟體界的入門票 — Batch#13 Front-End Class
所以我這邊就寫些我覺得印象深刻的學習時刻,
實體培訓第一週的震撼教育
實體課程的第二天,請我們使用 Amazon 的雲端服務,開啟一個自己的個人網站。當時我整個懵掉。
「什麼是 Port ?為什麼我跟大家的步驟一樣,但我的網站一直連不到。什麼叫做反向代理?為什麼還要多包一層來重新導向流向,AWS 的技術文章怎麼寫得那麼爛。為什麼我明明在遠端學習階段就學得滿順利的啊,怎麼搞個雲端 Server 一直失敗?」
各種念頭直接在腦海中炸開,花了大概兩個小時各種嘗試,還是不斷失敗,看著隔壁同學已經超前進度,在搞明天的作業了,整個恐慌到不行,最終還是找老師要提示才順利解決第一週的作業,這樣既刺激又充滿自我懷疑的上課方式,還真的是我第一次經歷,重點這才是第一週!正如 School 宣傳的那樣,後續的四個月,基本上就是在一樣的循環中學習!
疫情下的遠端個人作業
如前面說到,我是一個很需要環境的人,當聽到因為疫情最後兩個月都要遠端的時候,我就知道最大的考驗來了,因為我完全可以想像自己在家裡耍廢、不認真寫作業的情境,結果也真的如我所料,當時要開始進行五週的個人作品撰寫,中間真的一度陷入絕望循環:
啊!解不出來 => 休息一下好了 => 發現別人做得好好 => 開始認真一下
其中,「休息一下好了」跟「開始認真一下」的比例大概是 8 : 2,結果就是自己愈來愈焦慮,原本計畫要上的功能根本沒時間用,一度想要直接放棄。
最後主動跟老師討論,討論出最重要的幾個功能,集中火力把他們完成,其他錦上添花全部砍掉、減少開發時間,加上再不繳交出作品,就要沒辦法透過 School 內部徵才機會,才死馬當活馬醫,最後一個禮拜熬夜大趕工 XD
這時才真切感受到一人專案的好處,就是你要為整個專案負全責,就是要這樣才會激發潛能,因爲沒有人的大腿可以抱!而且還要全部都自己寫,不然面試被問爆,也沒辦法說這是別的組員寫的,完全無法矇混過關哈哈。
壓力真的不小,但中間其實一直都有跟你一同奮鬥的同學,還有在休假日也會回你訊息的老師協助,他們持續激勵你前進,這種感覺真的有種回到大考衝刺班,那種很純粹為了一件事努力的感覺,是長大後才知道那是很珍貴的體驗XD
求職準備
專案才剛結束,School 就馬不停蹄地開始幫們我們準備求職,一樣維持的 School 慣常的高節奏,三天請你生出第一版的英文履歷,開始給 School 導師、求職顧問、校長連番修改、校對,務必讓出去的履歷是可以展現我們個人特質與能力的!
接著就是各種模擬面試,不管是跟導師的技術面試、求職顧問的人格面試,或是請畢業校友回來的模擬面試,務必就是希望每個人可以把基本題講得流暢且言之有物,這些練習是我過去面試前沒有過的準備,透過每一次的練習,都讓自己發現原來還有可以講得更好的地方,就覺得如果我第一份工作就這樣求職,或許今天就不需要轉職了?XD
求職歷程
面試題目跟刷題是永遠準備不完的,最重要的就是個人專案
這句話是我面試了快 15 家公司後,覺得最重要的 take away。不管是 School 安排的快速面試,或是我在外面自己找的公司,最剛開始能展現技術,又是完全自我能掌握的,真的就是個人專案了!大部分公司在找 Junior 的時候,基本上不會要求技術有多厲害,需要的通常是快速上手的學習能力,而個人專案就是最強的火力展現,讓面試官知道,你從零開始,花了五個禮拜,就能完成一個滿完整的作品,這中間展現你對前後端、網路應用、API、雲端服務、資料庫的理解。
而且很多面試必考題,基本上都可以在個人專案的基底下準備,像是,
- 遇到解不出來的難題,你如何去思考解決方案
- 什麼什麼技術,如何被應用在實作
- 如果發生意料之外的 bug,該如何偵測與處理
這些原本相對抽象的題目,全部都可以套用你在專案遇到的狀況與技術,讓你原本完全不知道會問什麼的一個小時面試,有最少半小時是你能準備的內容,所以個人專案好好做,根本超級划算!
最終透過 School 的媒介,加上自己在求職網站的投遞,我大概面試了 15 家上下,最終很幸運地被趨勢科技錄取,成為一名 Data/Infra 混血工程師!
總結
做了三個月的工程師,我「現階段」很開心自己有機會接觸這個領域,因為每天的生活,真的就像是打怪破關一樣,解完一個 bug ,又跳出另外一個沒想到的問題,雖然有時候被搞得很心累,但當把被交辦的任務完成時,還是很有成就感的!
不過,我會括號「現階段」,也是因為我們轉職生,的確會發現很多基礎知識的不足,加上軟體業日新月異,剛學的技術,可能不到半年就有更新的技術可以取代或優化,完全是不給人休息的!所以我也不敢說,未來十年我都會一直寫著程式。
但我覺得不管十年二十年後,我還在不在寫程式,寫程式培養起的邏輯分析、找資源查資料的能力,還是能在不同領域被應用與需要的,所以我依然很推薦有興趣嘗試的人一同加入軟體業,因為不管怎樣,在現在大 WFH 時代,隨處可以工作的軟體業,真的是有夠香的!
這一路走來,我只能說自己算是幸運的,能夠有閒錢學習半年,獲得 School 的資源,遇到很厲害的老師跟同學們,才有機會一窺軟體開發的世界。如果你也想來寫程式看看,真心推薦 School 的計畫,透過這半年,不管是讓你轉職成功,或是發現自己真的沒有寫程式的熱情,都會是一次很棒的體驗的!