AppWorks School Campus Program # 1 培訓心得

chenghan
Aiworks
Published in
15 min readAug 20, 2022

大家好,我是 AppWorks School Campus Program 第一屆的畢業校友 Leo,以下我會分享我在這次 Campus Program 所學到的內容與收穫,讓你對於這個計畫有更深入的了解,也會分享當初在準備申請與面試的心得,然後你就可以手刀報名下一屆,加入 AppWorks School 這個大家庭,一起在軟體業發光發熱吧!

Batch #2 培訓申請最後倒數,詳情傳送門 >>https://bit.ly/3wjSupT

畢業典禮當天

AppWorks School 與計畫簡介

近幾年線上線下出現各大軟體工程師轉職培訓機構,主要是要幫助「非資訊本科系」轉職軟體工程師,拿到進入軟體產業工作的門票,而 AppWorks School 最廣為人知的就是它的軟體培訓營(Coding Bootcamp)培訓出許多優秀即戰力的軟體工程師進入軟體業界,在軟體產業自成一個校友生態系,重點是培訓過程完全不收費(連保證金都沒有),且有完整的課程規劃與完善的畢業學員求職輔導,學員畢業後成功轉職軟體工程師機率極高,也因此吸引眾多非本科系學員申請,據說錄取率大約是一成左右。

而除了協助非本科系轉職軟體工程師,AppWorks School 這次決定將資源投注在本身就是資訊科系相關的學生身上,幫助台灣軟體業發展,因此也就有了我參加的這個校園培訓計畫(Campus Program),基本上這個計畫的課程規劃都和非本科軟體培訓營一樣,只是培訓時間縮短,但內容豐富度不減,且由於這個校園培訓計畫是第一屆舉辦,因此報名人數與推行好幾屆的非本科軟體培訓營相比少非常多人,因此我就很幸運在競爭較小的情況下拿到了這個資源,成為 AppWorks School 這個大家庭的一份子。

AppWorks School 特色

友善的學習環境

School 開學一天就會配給每個學員一台 Dell 27吋的大螢幕(甚至想要兩個螢幕也沒問題XD),螢幕可以上下左右轉,讓你寫 code 生產力上升 bug 都找出來,也有提供許多會議室,裡面都配有超大螢幕,如果突然有事情需要私人空間開會(被教授追殺之類😂)也都可以預約,整體學習環境就是很開放的空間,有明亮的燈光和舒服的冷氣,窗外的風景是信義區 101 的高樓聳立,很有新創軟體業辦公室的感覺,非常適合寫程式的環境。

印象深刻的樂高牆

良性競爭的同儕壓力

由於 School 的篩選機制,所以可以錄取進到 School 的同學通常對於這個計畫有一定的投入動機,所以當作業指派下來後,大家就會開始努力完成作業發 PR,而同學之間的 PR 都可以互相看到,所以當同學都進度超前不知道已經做到第幾 Part 了(各種大神),但你還落後就會感到很緊張,但緊張不是會讓人想放棄,而是會更加努力想要追趕上同學,同學也都很樂意分享他會的東西,所以無形之中形成一種良性的爭競,大家會一起進步成長。

一起努力 coding 的大家

優秀的導師陣容

School 請的導師都是在軟體業待過多年的軟體工程師,擁有多年的軟體開發與工作經驗,從他們身上可以學到很多和軟體開發相關的知識,或是了解到軟體工程師職涯發展的規劃,甚至也聽到許多軟體業趣事,重點是導師都非常有耐心教導學員(也滿多幹話的XD),常常和我們一起待到很晚,假日遇到問題聊天室敲導師也都會回覆,滿認真輔導學生的。

完整的課程規劃

School 以在軟體業界工作所需具備的核心技能為出發點,規劃了一系列相關的課程內容,涵蓋了網頁前後端開發、雲端部署、測試、Git 協作、Scrum 敏捷式開發等課程,讓學員學習到進入軟體業界中最實用的知識,且每個課程都有規劃一定的專案作業來當成檢核點,讓學員可以透過專案來檢視自己的學習狀況,而隨著課程的進行,學員所堆疊起專案的豐富度也足己成為一個可以拿去面試的 Side Project。

14 週豐富的課程安排

完善的職涯輔導

School 有和多家軟體業公司合作,這些公司有保留一些職缺名額是專門給 School 的學員, School 有建立一個自己的職缺平台 Grithub (裡面公司都滿猛的,有些本科系也很難上),學員可以透過這個平台來投遞履歷,履歷會優先 push 到人資那邊,如果人資太忙不小心忘了你的履歷(人資辛苦了QQ),School 還有美麗的 Tiffany 會幫忙追面試進度(真是超級貼心的服務)。

除了這個平台之外,School 也有舉辦技術模擬面試BQ 模擬面試Leetcode 讀書會後端面試問題讀書會中英文履歷撰寫輔導,這些都是免費的,如果自己去外面報名補習班不知道就要花多少錢,最後還有超級好玩的企業參訪,直接實際走訪台灣軟體業公司,直擊工程師的上班環境,我們當時參訪的公司有 HahowDcard ,聽說每屆都會不一樣,大家可以期待一下說不定哪天參訪 Google。總之 School 畢業後找工作不用擔心,School 會全力輔導你找到工作。

Hahow 企業參訪

翻轉式教學

在 School 的學習方式和在學校不太一樣,School 是以專案導向式學習(Project-Based Learning),導師不會上台講授課程,多數時間是宣布本週的專案任務,然後學員要想辦法透過網路資源「自學」的方式去完成這些任務,過程中遇到問題也是自己上網 Google,如果真的解不出問題就和同學討論,最後真的不行才去詢問導師,但是導師也不會直接和你講答案,而是透過引導的方式給你幾個概念或是關鍵字,讓你自己上網去找答案(如果真的想不出來導師最後還是會和你說,沒那麼殘忍😂)。

最後在每個任務的 Deadline,導師會 Recap 這週大家遇到的問題,讓大家討論一下,也會講解這週專案任務的一些重要概念,透過專案做中學的方式讓學員了解怎麼活用程式碼,雖然比起學校漸進式的學習方式來說學習曲線比較陡峭,但是所學到的程式知識印象深刻且能運用。

每週的 Recap

準備與面試心得

通知錄取的截止日下午收到這封信,本來還想說應該不會上了

當初 School 的面試方式記得是約短短 15 分鐘的面談,我是和校長 Shirney 還有這個計畫推手 Carolyn 進行面談,其實面談內容滿簡單的,不外乎就是想認識你這個人,還有想知道你對於這個計畫的了解程度與申請動機,確認你是否在錄取後會全心全意付出時間在這個計畫上面,以下是印象中被問到的幾個問題,還有建議的準備方向:

  1. 看熟課程規劃與了解 AppWorks School 這家公司。
  2. 釐清自己報名的動機,並在面談時表現出強烈的動機,有一次 Carolyn 分享之所以會錄取我們這些學員,其實不是看我們之前的背景與經驗是什麼,而是從我們身上看到很想利用 School 的資源來「改變自己」的動機
  3. 報名表單一定要認真填寫,裡面的問題都要詳細回答,3分鐘自我介紹錄影強烈建議要錄,讓 School 可以更加了解你這個人。
  4. 多上網看幾篇 AppWorks School 的面試心得。
  5. 以下是印象中我被問到的問題:
  • 請簡單自我介紹一下。
  • 你為什麼想參加這個活動?
  • 你對 AppWorks School 的了解?
  • 有在找工作了嗎?畢業後想從事什麼產業的什麼工作?
  • 碩士論文在做什麼?
  • 你知道這個計畫大概一週要投入多少時間嗎?與學校的事情衝突要怎麼安排?

課程內容

接下來就以時間順序,分享一下 School 各階段課程安排的內容還有我所學到的東西,也算是幫自己做一下回顧。

個人指定專案(4 Weeks)

這個專案 School 會提供一個電商網站 Stylish 的設計稿要我們實作出來,網站需實做包含了商品的新增修改刪除查詢瀏覽還有加入購物車和結帳等電商網站的基本功能,要求的技術後端是 Node.js 前端是 React.js ,資料庫則是使用 MySQL,並且要將專案部署在 AWS 上面,提供網址讓導師可以連進去網站做測試。

從中學習到要怎麼樣在 AWS 上開一個 EC2,如何設定 Elastic IP (固定IP),如何設定 Security Group 讓 AWS 外部可以連進 EC2 ,要怎麼在 EC2 上面裝 MySQL 並且可以讓本地的程式連上,要怎麼在 EC2 上面裝 Nginx 來做反向代理,讓別人用網址使用你的服務時不用再加上醜醜的 Port 號,也學到如何用 Express 框架來實作 RESTful API ,還有學會使用 JSON Web Token(JWT)來存放資料,還有如何預防 SQL injection,也學到如何串接 TapPay 金流服務,還有自己對 JS 其實沒有很熟,Promise 、Callback function 等觀念也都是透過這次專案才建立起來,也從來沒有寫過 React.js ,這次直接跳級學框架,什麼 useEffect useStateReact Routerstyled-components 都直接用起來,前端能力直接提升,最後就是對於開發協作版控的 Work Flow 流程變得比較清楚。

還記得一開始要發第一個 PR ,對自己本地開分支然後發 PR 和遠端分支合併的概念非常薄弱,但在經過幾次交作業發 PR 後,對於整個流程更加了解。

Stylish 電商網站的設計樣式

團隊專案(1 Weeks)

還記得個人指定專案寫到一半,校長突然有一天晚上跑來說要宣布事情,我想說會不會是我們進度落後要來鼓勵我們一下,結果校長就宣佈了「第一屆校園黑客松」,突然又多了一個 loading 😭。

這個活動主要是要我們以組為單位從 School 給的 Stylish Sample Code 中去添加新的功能,各組要自己進行腦力激盪發想可以新增的功能,然後進行提案簡報,一週後各組 demo 實際做出的功能,最會由導師評分,選出優秀的組別。

主要學習如何團隊合作與溝通,大家要一起討論出一週可能完成的功能,還有組員之間要怎麼樣分工,功能要怎麼切,也學習如果大家的程式產生衝突的話要怎麼處理,還有也要學會看懂別人的 code 或是 Sample Code 在寫什麼(看完不知道自己在寫什麼鬼😂),還有當初我負責串接 FB 登入,所以自己還額外學到要怎麼申請免費 SSL 憑證和 Domain Name,也學到 FB 提供的 SDK 該怎麼用。

小組進行專案提案簡報

個人自主專案(3 Weeks)

這個課程主要是要我們自己發想一個小的 Side Project 並和導師討論專案和技術的可行性,最後也要進行提案簡報,然後把專案實作出來,而整個開發過程會採用業界開發常用的 Scrum 來進行,每週一會和導師討論這週 Sprint 要完成那些功能,然後跟據不同功能難易度估點數與時間開 Ticket ,每個禮拜五是 demo day ,那天每個人要上台展示這週的進度(耍廢就會被抓到),然後導師會帶我們進行流程與自我的檢討,接著進入下一個 Sprint。

從中最大收穫就是可以看到每個人不同的創意發想(交友軟體、線上看診平台、三餐推薦平台、名星卡片收集平台、美食彙整平台、猜歌遊戲等)還有了解不同的技術(SweetAlert2Socket.ioChakra UIGoogle Maps APIs 等),也提早體驗到業界的軟體開發流程。我那時後的專案發想是網站職缺的彙整平台,也趁機複習了一下 Python 爬蟲 、Selenium

Final Demo 我的網站職缺彙整平台

專案研討(1 week)

這個課程也是以分組的方式進行,每組要報告一個「特定的後端主題」,並且要有實作的 demo 與 Quick Start 的文件,主題涵蓋:

  • Load Balancing 與 Auto Scaling
  • Message Queue
  • GraphQL
  • NoSQL Database
  • Monitoring

這些主題都是導師在業界工作常用到的後端技能,然後這個報告最特別的地方就是抽籤指定一個人上台報告,所以每個人都要有充分的準備,我們那組當時是負責 NoSQL Database,所以就講解 NoSQL 的觀念、怎麼用 MongoDB Replica Set 實作資料庫讀寫分離,什麼是 Shard 分散式儲存架構。

Topic Discussion (1 week)

這個課程其實算是額外安排的課程,不在原本的課程規劃內,因為這週很多人要考期末考,但是有些人比較沒事。課程主要是把上週專案研討的東西彙整,要我們爬取開放資料實作出可以根據使用者所在位置來顯示附近 YouBike 剩餘數量的功能,從中學習到怎麼把 Streaming Data 放進 Message Queue 還有 Quene 的原理是什麼,Kafka 的實作,mongoDB 用經緯度算距離的 API 怎麼用,怎麼把所有應用以微服務(microservice)架構的方式部署在 Kubernetes 上,也學習到 Docker 的使用。

其他

除了 School 自己規劃的課程之外,School 也有請外面講師或是內部導師來演講或舉辦少天數的 workshop,有 Carousell 旋轉拍賣的測試工程師來講解軟體測試的基本概念,有前 Google 資深工程師來講如何成為世界一流的軟體工程師,基礎電腦科學的重要(Data StructureVimCompileOS),有沛星互動科技(Appier) 資料工程師講解分散式系統架構與 Data Engineer 的工作、 有趨勢科技(TrendMicro)工程師講解 DevOps 的概念,有 School 內部導師 Arthur 來分享 Leetcode 的準備方式(聽說導師已經進 Google 了!),有 School 導師小賴舉辦的 Docker workshop (小彩蛋,樂高牆上面的小賴應該就是導師的名字),有 School 創辦人暨台灣大哥大林之晨 (Jamie) 總經理在中午回答學員的各種問題,也提醒我們要養成寫作還有運動的好習慣。還有校長 ShirneyAgile workshop,分享敏捷開發的 mindset,還玩了棉花糖挑戰來體驗敏捷開發的觀念。

最後 School 還有一個實體和線上的期中考,線上期中考會找某一天的早上線上發題,題目是以先前 Stylish 為基底新增的一些功能需求,每個功能有對應的檢核點還有分數,然後在下午前發 PR 繳交,最後導師會 code review 並評分。而實體期中考的部分則是去企業接受期中考,由企業出題,個人覺得企業期中考超難,很難準備,如果平常有好好在 School 學習且多多認識同學,那天保持平常心就能順利過關。

Agile Workshop 各組立起的棉花糖

收穫與感想

School 畢業送的貼紙,提醒自己要對寫程式保持熱誠

上面的分享我覺得還沒有完全涵蓋到我在 School 所學到的東西,剩下的就給大家自己體驗了,結束在 School 的課程後,除了帶走滿滿的軟體開發知識與技能之外,也帶走對寫程式的習慣與態度。

雖然現在不敢說自己對寫程式非常有熱情,但在 School 確實養成了寫程式的習慣,畢竟要花一整天在這裡看技術文件 debug(不要怕同學會陪你),也學會當面對未知的技術問題與挑戰時,如何以積極正向的態度上網找資源,把問題拆解從大變小、解決問題,或是學習如何以正確的方式問問題讓別人幫助到自己,也學到提高學習效率的重要性,要常常省思自己學習與開發的流程並且優化。

更重要的還有認識一群同樣是在軟體業一起耕耘的朋友,計畫結束之後你一定會和這屆的同學變得很熟,School 也會把我們拉近校友的 FB 群組還有 Discord 群組, FB 裡面除了 School 的導師之外還有很多厲害的軟體業前輩校友,Discord 也有各種軟體業資訊的討論還有技術讀書會的分享,大家都努力精進自己的技術能力,所以自己也會想要進步,想要努力變得和別人一樣厲害。也期許自己未來可以變得更厲害,有能力來 School Recap。

當初申請動機是覺得自己軟體開發經驗不夠,怕畢業之後工作會被慘電,所以想要透過這個計畫來增加自己的實作經驗,目前剛入職兩週,打開主管給我的學習資源,至少有一半的東西我在 School 都碰過了,不是完全的陌生,用著公司配的 27 吋螢幕看著技術文件,就像是在 School 的學習的感覺,當初有申請這個計畫真的是對的。

如果想要累積自己的作品,拓展自己在軟體業的人脈,畢業即就業,感受台灣新創與軟體業的氛圍,加入這個計畫就對了,時間花下去一定不會後悔。

Batch #2 現在正在火熱招生,申請這裡去 >> https://bit.ly/3wjSupT

對 AppWorks School 有興趣的朋友就直接去逛逛吧~

官網 👉 https://school.appworks.tw/

Facebook 👉 https://www.facebook.com/AppWorksSchool

Instagram 👉 https://www.instagram.com/appworksschool/

--

--

chenghan
Aiworks
Writer for

Software Engineer at TrendMicro LinkedIn:www.linkedin.com/in/chenghan-lin-905a6b202