關於學習的觀察與練習

投入學習JS前端開發一個多月的時間,不斷在吸收新觀念,練習理解問題與需求,同時向內關注自己的狀態。

在學習內容變得更抽象、實作難度提高的同時,各種時間規劃與落實的變動也是面臨的挑戰。以下我想著重於分享觀察與發現、個人感受與調適,以及正在反覆練習與深化的方法,雖然經驗主要是程式設計,但並不侷限於單一領域。


觀察與發現

首先,沒有正確答案,只有如何能更好地回應需求。

在寫作業和實作的過程中發現,雖然許多的題目與需求期望的結果看起來很簡易(好比找到網頁架構中的某個值/字/表單等等),但背後的邏輯與方法有很多方式可以使用。

特別是在比對範本/同學作業的差異,或者是請教google大神某些功能的作法與原理時。發現「行數」是顯著差別,有更簡潔的寫法可以優化重複、冗長、複雜的作法,然而自己當下不一定會意識到。

作為初學者,雖然還在理解與感受中,但求對問題的拆解,能把每個步驟都說清楚講明白,並看得懂每行程式碼的用意。

慢慢來比較快:讓問題、挑戰,甚至是思緒飛一會兒,它很有可能自己落地。

依據過去的學習經驗,自己其實滿容易啟動埋頭苦幹的模式,時間安排會塞滿數小時,成天跟著學習主題浸泡在一起。但逐漸發現,「量」對於「質」的影響有限,如果想持續提升學習的品質,需要借助更多元的方法,而不是埋頭苦幹,這好比與事物的距離過近,反而無法看清。

這幾週多少都有遇到寫作業卡關、讀教材讀到飄走的情況。飄走屬於注意力的問題,還算有方法應對,但卡關很容易讓人內心產生「沒解決這個問題,我就不吃飯、不睡覺等等等」的執念,結果是熬夜,卻又不一定可以完成原定的目標,有時甚至依然停在原地。

放下對於突破的執著很難,但從小事放下好像會容易些XD

好比先前在寫作業,其實bug是超明顯的括號使用錯誤,以及回傳值寫錯,但一開始卻因為程式無法順利運行,急著找出bug,而來來回回像個無頭蒼蠅,放錯重點。後來舉手投降,暫離筆電一會兒,後續再回過頭來逐行檢查,就順利找到了錯誤的地方。
(內心OS:下次類似情況,就先去喝杯水、吃點零食、聽首歌再回來吧...)

個人感受與調適|對於錯誤的轉念

有鑒於走入職場好一段時間,對於自己犯錯的容忍程度變得更低,因為錯誤本身所產生的影響是連動到所處的環境、單位、關係人等等,然而這樣的觀念其實不只深根於在職場裡的我,也制約跳脫職場的自己。

說真的,對於程式碼跑不動,或是看完題目不曉得如何著手拆解,就開始覺得「嗚嗚嗚我怎麼不會、我怎麽會寫錯」,這樣的情況上演了好多次,起初是在內心上演小劇場,次數多了以後,慢慢感覺到這樣的反應好像也是個議題,於是內心開始多了「錯就錯吧、不會就學啊、去弄懂它、搞定它」諸如此類的語句。

後來的轉念是不斷告訴自己:對於不熟悉的工具或方法需要頻繁練習,允許自己在練習的過程中有犯錯的彈性,而不是追求一次到位。

錯了就恢復上一步再來一次,不需要擔心如果錯了怎麼辦,版型跑掉怎麼辦(雖然當下還是有可能皺眉)。如果因為程式的行數多而眼花,或是弄錯,大不了重開一個撰寫的介面,再操作一次。然而,在腦袋冒出問號時,練習推自己一把,去找找文件、試誤、研究各種寫法和架構,不讓自己停在原地只靠腦袋想,然後被問號給淹沒。


練習與深化

[1] 時間視覺化

  • 延伸工作上使用Google Calendar的習慣,把學習coding的時間排入行程,開始前30 mins,手機就會跳出提醒訊息。藉此除了保留一定時間,也能夠在接收到訊息的同時,強化自己去行動的動力(一周維持三天以上的瑜伽也是類似作法)。
  • 將真正花在學習的時數也視覺化,比對哪些規劃過於理想,哪些時間點是能夠有效學習吸收的。

[2] 讓聲音與對話來引導腦袋

  • 練習把卡住的題目、觀點「用說的」講給身邊的人聽,藉由對方的反應來看看自己的理解程度,以及解方的架構是否清楚,避免把思考脈絡只放在腦袋裡,或是零散的文字記錄中。

[3] 小單位的學習反思

  • 每天結束學習時用10-15分鐘的時間,特別去想想今天哪裡特別順利?哪裡特別卡?當下的情境是什麼?自己做了什麼事情?為什麼會選擇這樣做?也同時作為當天學習收尾,向自己宣告:「不論如何,今天到這邊結束囉,謝謝自己有這些發現與推進!」

[4] 其他

  • 分心時|透過Forest這個app,設定90-120分鐘的專注時間(期間無法使用手機),讓自己避免在分心時就想拿手機,進而變得更加分心。如果真的坐不住,就讓起身去喝點水,走去看看植物,洗個手,再回到電腦前。
  • 向他人學習|遇上解題卡關,在預設時數的25-30%後(例如預計是2 hrs內可完成,大概會抓30 mins),仍然停留在概念拆解,而無法寫出流程圖/虛擬碼,就會直接根據卡住的點,開始搜尋解題討論,以及其他同學已繳交的作業架構,來釐清面對的問題範圍(是方向錯誤?還是使用的方法不夠熟練?又或者是想得太複雜等等),接著一樣「用說的」去練習解說其他人寫code的架構、每一行程式碼的用意。
  • 檢視基礎|嘗試從實作、作業延伸,去思考核心觀念、技巧在應用上有哪些變形,像是找節點過程裡,慢慢發現除了找到一個節點,也可以延伸到找一排節點,處理一個節點,也同理可以處理一排,甚至是特定條件的節點,並在這樣的過程中,釐清自己的基礎是不是足夠扎實,有哪些感覺還是不那麼穩妥。

雖然還在路上走著走著,然而對於學習有更深的體悟後,慢慢變得更能去欣賞在那個過程中的自己,以及一切事物。
學無止境,和自己的相處也是。

最後,分享最近反覆在聽的兩首歌。
先是Imagine Dragons的Believer,每次跟著副歌嘶吼後,能釋出空間去承接更多的感受。

接著是Eninem和Juice WRLD合作的Godzilla,可以跟著立行的音浪一起流動,當然也可以跟著Eninem的rap一起...飆車(?)




留言

這個網誌中的熱門文章

2024 年的 77 本書與 9 套漫畫

岡山、出雲、關西 11 日,久違的遊記

2023 年的 70 本書