心得:極大化 AppWorks School 學習效益

Kuan Hua Chen
Aiworks
Published in
8 min readMay 31, 2017

AppWorks School 提供一個很好的學習環境,透過每天的實戰演練快速累積自己在 iOS 開發上的能力。今天跟大家分享一下我參與 iOS Class#3 三個月間的心得,主要著重在『如何可以做得更好』,以幫助大家在這三個月可以極大化學習效益,希望 School 或個人來說,都能帶來正向的影響。

首先跟大家介紹一下我的背景:

我大學跟研究所是管理相關背景,在學期間並沒有寫過程式,而畢業後在傳產就職。我在加入 AppWorks School 之前有在 Udemy 購買線上課程來上,自學約 3~6個月的時間,期間不斷撞牆,身邊也沒有 Mobile 工程師可以問,才選擇申請加入 AppWorks School。

下面會依照各個階段來描述我的心得。

申請階段

AppWorks 申請時需要回答一些問題,主要是看個人的動機是否夠強以支撐起連續三個月不間斷地學習。其次是看個人的需求,AppWorks School 有沒有辦法提供有效的幫助。舉例來說,如果問題回答中你提到我想針對 UI / UX 設計進行更近一步的學習,因為與 AppWorks School 的方向並不合,所以或許需要再去思考一下自己申請的目的是什麼。

如果大家有興趣申請,建議可以研究 AppWorks School 近期的目標,再衡量自身的情況,才能將兩方的效益都最大化。

遠距預習階段

申請被接受後,會進行為期四週的線上課程預習,以幫助大家在駐點集訓時可以快速接軌。此階段所採用的教材是老牌的線上教學網站 — Tree House 中的 Swift 系列課程。

Tree House Website

以我自身購買線上課程的經驗來說,Tree Hosue 的課程品質相當好,或許不會偏向實作面,但會給你非常好的觀念。再加上 Tree Hosue 的課程是 All you can eat 的,在完成 Swift 指定的課程後,可以是自身情況需求多學其他語言。

完成線上課程後,需要繳交一份作業,來檢視這段時間的成果。

搞懂全部內容是最基本的,並搭配 Apple Documentation 多看幾次。除此之外,在遠距預習階段,我認為如果能做到以下這些事情,在日後學習起來會事半功倍。(P.S. 隨著 AppWorks School 逐漸優化學程,這部分不見得全部適用,請斟酌參考)

  • 觀看 Obejctive C 的課程:Tree House 的課程是 All-you-can-eat的,以pre-course 負擔來說,應該可以抽出時間觀看 Swift 以外的課程。對於 Obejctive C 的重要性會在文末再作討論。
  • 熟悉 git / github 使用:遠距課程中會小篇幅的教我們如何使用 git / github ,但現實情況是我們第一天集訓時操作 git 時還是手忙腳亂,建議可以開個專案實際去測試每個 git 指令。 (養成隨手 commit 的習慣,有一天會拯救你。)
  • 思考自己的專案要做什麼:集訓第二個月會做自己的專案,如果能提前想好自己可以做什麼,在第一個月的學習過程中會更知道自己能夠做什麼。
  • 熟悉作業環境:X Code 有許多好用的功能,在課程開始前熟悉作業環境才能避免未來在做專案時一直卡住。

On-site Phase One

開始集訓的第一階段,會實作 School 指定的專案,iOS Class#3 中實作的是一個 YouBike 站點資訊的 App (聽說自 iOS Class#4 中已經改成電商 App 練習了)

第一階段專案

進行的方式主要是自己閱讀大量文件與資料後,親自動手寫程式碼,若遇到沒辦法解決得問題可以找同學一起討論,或是最後請技術導師指點方向。這段時間主要會熟悉一些主要 UIKit 的元件以及其他基本框架。以上範例圖片是於 Class #3 中所使用的 YouBike 站點資料,從台北市政府資料開放平臺 API 拿取資料。

這個時期最重要的是 iOS 開發基礎能力的養成,其實把問題丟到 StackOverFlow 上也可以很快的就找到答案,但 Copy & Paste 絕對不是好主意,慢慢做,把每行程式碼搞懂在做什麼才是最重要的

On-site Phase Two

第二階段是要進行自己個人的專案,在這個專案內一個人要包含前端 UI / UX 的設計,後端資料庫的架構,如果沒有相關的基礎其實算是滿大的挑戰,不過也是因為有壓力,會促使人快速地學習。

在這一階段不用擔心自己的想法沒有辦法實現, School 會提供各項資源來協助大家完成自己心目中的想法。但以下這些意見,是我在開始進行面試以及找工作後,再回頭看這段過程中所產生的一些想法,或許可以參考看看。

  • 沒有 Idea 要做什麼:可以先上網找一些有興趣的 iOS Developer 職缺,看看她們開了哪些技能是求職者必須的,可以在自己的專案中盡量使用那些技能。
  • 專案進行的方向:一個月左右要把一個專案從無到有設計出來,其中還包含 UI / UX 設計,甚至要設計後端資料庫,其實時間是相當緊迫的。我認為大家應該最先考慮的應該是專案的『完整性』。所謂完整例如:在登入帳號以及個人資料的時候有沒有做 Regular Expression 的檢查,有沒有使用 Behavior Tracking / Analysis 的工具來分析 App 的使用情形或是使用 Crashlytic 來獲取 crash 報告等等。專案的規模可以小,但是完成度一定要提高,在面試時會比較有利。
  • 使用第三方套件:套件可以幫助你更快速的開發自己的專案,但是需要知道『為何而用』,例如可以清楚解釋自己實作某一個功能需要做到哪些事,用套件的好處在哪裡,才不會讓人覺得只是為了用而用。也要去思考如果不用這些套件,自己有沒有辦法把功能做出來。

On-site Phase Three

第三階段會進行 Objective C 語言的學習,Swift 雖然寫起來簡潔方便,但過去市場的主流是 Objective C,因此還是需要具備一定程度的了解。

這個時期應該會有很多事情卡在一起,但這個 Objective C 專案對大家來說會相當重要,因為這將是 School 三個月中唯一有機會寫 Objective C 的時候。

前面提到最好能在遠距的時候就開始接觸一點 Objective C ,第一個原因是很多文件以及參考資料都是 Objective C ,如果至少能讀懂 Objective C ,在搜尋資料上可以節省很多時間,而不是每次一找到 Objective C 的資料就直接關掉分頁。第二個原因是目前台灣的環境有 60% 以上的公司仍使用 Objective C 進行開發,未來在找工作的時候對 Objective C 的熟悉程度將會影響面談的結果。

此外,在這個時期,大家的開發能力應該比剛開始做第一個專案時進步不少,如果能夠盡量提升程式碼的品質,架構也符合 MVC Design Pattern ,將之前遺留下的技術債還一還,未來在面試時也會有相當大的助益。

在這三個月內也會有一些與其他學員合作專案的機會,大家也可以趁這些機會多多練習 co-work。

而在課程結束後,最重要的就是與企業的媒合,以 AppWorks 在網路界的影響力,會來媒合的企業都有相當程度的規模。而且比起自己個人投遞履歷,透過 School 的媒合成功率更高。

其他

除了進行專案之外, School 也會進行以下活動來加強

  • 主題分享:邀請業界的工程師或 AppWorks 內的成員進行各種主題的分享,除了在程式上的 Hard Skill 之外,也會討論到整個產業的環境變化等,來幫助大家站在更高的視野看整個產業的發展。
  • 企業參訪:企業參訪是加入 AppWorks School 相當大的好處,AppWorks 在網路圈的人脈網路相當廣泛,會讓我們有機會實際到各企業去與已經上線的工程師學長姐們或主管們進行交流,看看現在業界實際運作的方式是如何,也給我們對結業之後的一個想像!
  • WWDC 回顧:一般人追美劇,蘋果碼農追 WWDC !每年的 WWDC 會提出許多新的更動,通常是對開發者好的更動。而使用 Apple 所提出的最新方案可以讓你工作起來更順暢(大致上)。
  • WorkShop:Reunion WorkShop 會邀請各屆的學長姐回來與學弟妹交流技術,並且每次 WorkShop 會有不同主題,Class #3 的 WorkShop 主題是使用 Swift 語言進行後端資料庫的設計。

以上討論基於我自身的背景 — 商管學歷、傳產工作經驗、AppWorks School 之前沒有接觸過程式。如果大家進 AppWorks School 之前有相關的經驗,則期許大家可以做的更多更好。

AppWorks School / iOS Class#3 Ian

【AppWorks School Batch #12 限時招生中】
AppWorks School 將開設 Android、iOS、Front-End 與 Backend Class 四個不同技能的訓練班次,全程免費,透過線上學習 4 週,駐點集訓 16 週的專案導向訓練,幫助你成為軟體工程師。
歡迎想成為軟體工程師的朋友,把握機會申請,報名到 7/22 23:59 截止喔! https://bit.ly/2BUQmvn

--

--