AppWorks School 結業心得

2020/06/13閱讀時間約 9 分鐘
一眨眼就結束了四個月在 AppWorks School 的學習,這篇文章主要分成三個部分:AppWorks School 特別之處、IOS個人專案的資源分享以及自己的收穫
關於如何為申請AppWorks School做準備可以參考之前寫的 AppWorks School 入學申請 / 心得。如果你是想了解在AppWorks School 各個階段的分享,你可以參考之前學長寫的 心得:極大化 AppWorks School 學習效益(我們這一屆遠端課程是上 Raywenderlich 中的 Swift 課程)。
Raywenderlich website

特別之處


在申請的一開始,我就覺得 AppWorks School 的名字很「特別」。對我來說畢業後再學一項技能的地方,怎麼想都和 School 不太搭。但在這裡學習結束後,我覺得這個名字再適合不過了,真的是一間很特別的學校。

價值觀

有別於一般的職業培訓,除了教會你技能,還交給你「價值觀」。我還記得開學第一天,校長就告訴你這段時間是一場「個人的馬拉松」,每個人所累積的先備知識和經歷不同,在過程中掌握技能的速度也一定是非常不同的,重點在於專注於自己的成長。同時,也提醒我們在學習過程中要在「伸手牌」和「自幹王」之間拿捏好分寸,不論是遇到問題馬上問人,或完全不和別人討論,都不是好的方式。過程中,導師也不停地告訴我們要有「只要給我時間,一定能學會」的自信。求職階段,也會建議你找一間適合你的公司,而不是給薪最高的公司。這件公司能明白你目前的能力並給予能力所及的任務,同時也願意給你成長的時間。從過程中,你不難體會到學校真的是很關心學員。

學習模式

在 AppWorks School 學習的這段時間,基本上就是以目標導向,培養我們找到適合自己資料並吸收的能力。接著,在已經消化一些內容的基礎上,透過早會討論鞏固前一天的所學。
  • 目標導向 - 拆解目標為每天的任務,專注解決當前任務
  • 搜尋能力 - 根據關鍵字找到適合自己的內容並消化
  • 早會討論 - 給予方向問題討論
AppWorks School 的學習模式和傳統的學習方式 - 老師講同學的方式非常不同,但背後有其意義。通過教案的設計,把專案(目標)切割成每天能執行的具體步驟。過程中,你不需要擔心最後目標能不能實現,而是專注在把每天的具體步驟完成。雖然每日任務是導師評估後,初學者應該能完成的份量。但由於大部分的人都不是相關背景的學生加上需要一點時間去適應這種學習方式,所以其實過程十分(刺激 / 緊張 / 感到壓力 / 有成就感感),就是夾雜那麼多情緒。這種體驗就像是玩遊戲,相較傳統的學習,你更容易獲得成就感,也更有動力去完成每天的任務。結果就是在不知不覺中完成了目標(完成一個電商App)。
相比自學,這裡另一個好處是在你吸收一定內容後,每天早上都會進行討論。這有助於梳理自己前一天所學的內容。前期和後期稍微有點不同,前期比較注重怎麼做而不是為什麼這樣做。前期的進行方式通常是導師提出問題讓我們進行回答。對回答者而言,回答是進行一次知識的重構,有條理地說出自己學到的知識。對其它人來說,則通過聽到其他初學者的答案(程度相似),作為自己答案的補充/改正。
這裡更強調的是你在過程中學習怎麼搜尋到答案,而不是直接給你答案。因此,上網找答案在這裡平常不過。平時你遇到問題,就算查不到答案、想要問同學,也應該多問一個問題 - 你是怎麼下關鍵字的。在無形之中,這會讓我們變成問題解決者,而不是問題製造者。

自己的收穫


獨自開發App的能力

回頭看自己的申請動機,我會說當時自己是處在一個不知道自己不知道的狀態。而在 AppWorks School 學習後,累積了一些IOS程式開發的基礎,至少知道了自己不知道什麼,也能運用這段時間內不斷練習的下關鍵字、找教學和找文件,解決遇到的問題。
舉個例子來說,在申請動機裡我提到想要提供遊戲化場景,想把平時課堂上的互動遊戲以App呈現,要怎麼做呢?我當時的想法是學會IOS自然就能做出這些功能,完全不知道什麼具體的方式才能達成目標。現在的話,同樣的問題,我的腦海中至少會浮現一些想法 - 我的畫面(IOS)要怎麼呈現,要怎麼設計資料庫(firebase)的結構,在什麼地方要抓取資料、處理資料、更新資料,才能呈現出完整的功能。

通過網路資源學習

確切來說應該是學習新領域的搜尋能力,網路搜尋對我們這個時代來說,不是太難的事,但如果是要透過網路查資料來學習,卻不是那麼容易。
初期可以著重在擴展關鍵字模仿(跟著教程做,做多就記得),而後期你可以多看技術文件,理解背後的機制。
  • 找到關鍵字
  • 判斷是否合適
  • 記憶和理解間的平衡
關鍵字 - 踏入新的領域的過程,我們常常透過 Google 找到資訊。最大的問題是不知道要怎麼下關鍵字(專有名詞),解決的辦法可以先看官方技術文件,快速地取得相關的專有名詞。接著,通過這些初步的專有名詞搜尋後,很模糊地找到相關的資料。然後,從多篇資訊裡找到最初關鍵字延伸出的更多關鍵字。隨著你的關鍵字增加,你就越能精準地找到需要的資料。
判斷是否合適 - 沒有足夠關鍵字和還未建立自己的知識架構,你所查詢的內容廣度會受限制,也沒有依據去判斷資料是不是自己所需要的。前期找一位能夠給予你方向或建議的前輩( 教材的設計、AppWorks School 的導師 ),你會更容易上手。你不用擔心是自己少做了哪些步驟,或是其實是資料有錯誤的問題。
記憶和理解間的平衡 - 「記憶」可以讓你依樣畫葫蘆,更快地得到成果(以學習語言來說類似語感)。而「理解」則可以讓你觸類旁通,擴展你的能力。兩種能力都非常重要,但如果你想要快速學習,前期你應該花更多時間在「記憶」,當你「記憶」累積到一定的量,再去「理解」就比較容易。

屬於自己的App(個人專案)

我的個人專案是一款通過字卡、遊戲和題目,幫助新加坡小學生學習華文的 App。App 主要就三個部分:小學以年級、課為單位的字卡成就系統(搜集怪獸圖鑑)、其它(學習數據呈現)。
個人專案對我來說,是想要通過 App 這個媒介作為教材的呈現方式。我可以藉由它提供學生好看的介面、各種音效和紀錄學習進度,這些原本可能需要通過老師或是書面教材無法做到的功能。後來,也確實把 App 通過一些老師和社群網站進行分享,得到一些反饋,也有使用者在使用。
KATI 的下載次數(大多在新加坡)
在家長的社群分享
有興趣的話,下面分別是介紹 App 的網站以及下載連結。

資源分享(IOS)


原本是希望能在學習的過程中就一邊分享,不過學習的強度超乎預期,加上又要照顧小孩,沒時間寫心得。就在這裏簡單的分享在這段期間用到的資源。

中文學習資料來源

第一個月(指定專案)查詢資料時,如果你英文不是非常好,建議先找中文的資料,再找英文的,但不是不要查英文的。英文的資料會更豐富,只是在初期看中文的教學文還是親切一點,你讀的速度也會比較快。中文的教學文可以參考 Appcoda彼得潘法蘭克的IOS世界,這三個網站都出了相當多的教學文。可以從中獲取關鍵字,再去查英文的教學資源。

更快速 & 更好地完成自己的專案

進行專案時,一定會使用到一些圖片,像是在 UITabBarController 使用 Icon 來表示不同分頁,或是成就系統以及各種圖示 。在個人專案使用 Flaticon 應該就足夠,免費、圖片選擇多、有系列圖、能客製顏色......。如果你希望呈現一些簡單的動圖,一定要好好利用 Lottie,用極少的程式碼就可以呈現。
此外,在專案中適當地套用套件,能讓你在時間有限的情況下,讓專案的畫面呈現更加出色,Github 中的 Awesome-ios 已經根據功能篩選出一些不錯的套件。使用套件時,要注意套件擁有者上次維護的時間使用者(星星數)的多寡。擁有者時常維護可以避免套件隨著版本的更新突然壞掉的問題,而使用者多則表示套件在使用上體驗佳而問題少。
最後推薦一個網站 Convert CSV to JSON,如果你的資料到了數百筆,你絕對不會想一個個在Cloud FireStore 輸入。你可以考慮先把資料整理成 Excel 的格式,然後利用 Convert CSV to JSON 把檔案轉成JSON,利用 Realtime Database 提供的匯入功能,把資料存在 Realtime ataBase,接著在 Xcode 裡寫程式從 Realtime Database 抓去資料再上傳到 Cloud FireStore。
  • awesome-ios這個Github按照類別整理了一些好用的套件
  • Lottie:可以快速地為自己的專案加入一些動畫
  • Flaticon:可以使用在專案中的免費Icon(不用找人畫圖)
  • Convert CSV to JSON:將Excel的格式轉換成JSON(資料非常多筆才需要)

我在和資工系的朋友分享學習過程時,他只給了我三個評價 - 實用札實佛心。回到新加坡和老師們分享 App 後,大家都蠻羨慕我能真正落實自己的想法。很多時候大家有很多想法,但礙於沒有技術能力,很難去實行。真的是發自內心地感謝 AppWorks School 提供這種機會給想要學習程式開發的人,給了不管是想從零轉職工程師或是想落實想法的人更多的可能。
每年大概會有兩到三次的招生,有興趣的話可以去 AppWorks School 的網站看看。
為什麼會看到廣告
Mr. Fu
Mr. Fu
喜愛攝影,卻不是攝影師。喜愛剪輯,卻不是剪輯師。想成為一名擁有更多不同經歷的老師。新加坡中文老師 | 教材編寫者 | IOS app學習者
留言0
查看全部
發表第一個留言支持創作者!