< 返回 Alpha Camp 全學期心得
這是我記錄自學程式,Alpha Camp 學期2-2的期末驗收筆記。
回顧:Alpha Camp 學期 2-2心得,認識API, HTTP, Ajax
學期2-2是Alpha Camp第二學期的第二階段,目標是學會API,透過瀏覽器要資料。
每階段的尾聲都會有期末驗收,學期2-2的驗收有別於以往解程式題目,這次是比較特別的兩個要求:
- 研究還看不懂的內容,搞懂它後並輸出成筆記
- 利用ORID框架回顧自己的進步
本篇內容是「利用ORID框架回顧自己的進步」。
ORID是什麼?
ORID是一套思維框架,透過四個步驟,回顧過程及發現問題的方法。
更詳細說明請參考:AC Ellen的 回顧與發現:用 ORID 進行 Reflection
以往Alpha Camp每周課程的尾聲,都會透過ORID來回顧自己當周的學習。而這次的ORID比較特別,範圍拉大到整個學期2-2,並回顧自己的進步。
OBJECTIVE
經過學期2-2後,我將自己的進步分為外功跟內功。
外功
除了學習更多領域知識(API、AJAX、HTTP…)及JS語法外,最大的收穫是:更能理解函式是如何運作。
以教案中:電影清單 – 加到我的最愛功能為例
function addToFavorite(id) {
const list = JSON.parse(localStorage.getItem('favoriteMovies')) || []
const movie = movies.find((movie) => movie.id === id)
if (list.some((movie) => movie.id === id)) {
return alert('此電影影經在收藏清單中')
}
list.push(movie)
localStorage.setItem('favoriteMovies', JSON.stringify(list))
}
學期2-2前的自己,會不太明白傳入function內的參數id會是什麼,儘管這個觀念在學期2-1就有建立,但每次看到腦袋都要轉好幾下才能理解。
時至今日總算可以比較直觀的理解:
addToFavorite(id)的id,會在呼叫function addToFavorite時,會代入呼叫時括弧內的引數。
e.g, 呼叫addToFavorite(Number(event.target.dataset.id))時,將 id自動轉換成 Number(event.target.dataset.id)
內力
內功進步則是:提升運算思維、開始使用MVC架構、定義程式狀態
- 提升運算思維
花費更多時間在寫程式前的解構題目,並能寫出相較之前更簡潔的程式碼。
e.g, API抓回資料後,若原本資料型態是陣列(有序),可以改成物件(無序)。如此可以直接用ID抓到想要的目標,而不需要用遍歷語法(較囉嗦的寫法)
- 使用MVC架構
將程式分類為 Model(資料)、View(畫面)、Controller(控制) 三個區塊。
透過Global的Controller呼叫包在裡面的Model跟View的功能。如此,程式出問題時,就只需要去對應的區塊查看,而非從頭到尾檢查。
- 定義程式狀態
判斷現在的流程(狀態)在哪裡,並將所有狀態命名在一組變數中,決定程式目前要執行什麼動作。這樣會有3個好處是:
- 將抽象化的流程轉化成具體可控的狀態
- 往後自己再看或是其他人看code時,可更直觀理解程式中總共有幾種「狀態」
- 控制程式跑出來的結果,都會在命名的幾種狀態範圍內
REFLECTIVE
這些進步點是由許多刻意練習累積而成,課程內容與工作坊都提供了許多刻意練習的機會。
這一階段課程內容涵蓋了三個實作專案:電影清單、社群清單及翻牌遊戲。課程設計是幾乎學習新概念、複習舊知識幾乎各佔50%,所以寫作業時處在「熟悉的陌生感」,常常寫著就進入心流狀態。
而每個禮拜的工作坊,除可以更及時的提問/反饋。透過助教的講解,也讓自己一窺更高一階的思考角度。
INTERPRETIVE
根據這次的「成長經驗」,歸結出幾個行得通及行不通的行為/方法:
行得通
- 單次的輸入(閱讀)範圍縮小,以免吸收不良
- 安心地參考(觀摩)同學或Editor’s Choice的答案,重點思考
- 寫筆記!並且是用自己的話重述內容,而非複製貼上教案內容
行不通
- 不要想全部內容都搞懂才往下,費時且容易忘記前面內容
- 不要只看中文資料,有時候英文資料反而更容易理解 (經過翻譯可能會遺漏部分原文想表達的意思)
DECISIONAL
下一階段嘗試:
解不出問題時,不要先看Editor’s Choice (Alpha Camp的精選解答),而是用關鍵字去Google找答案。
畢竟,真槍實彈時通常是沒有整理好的Editor’s Choice參考的…
< 返回 Alpha Camp 全學期心得