One minute
ALPHA Camp 學期 2-2 學習心得
OBJECTIVE
學期 2-1 到 2-2 之間,我認為有著飛躍性的成長。很多模糊的觀念在這學期開始變得清晰,也逐漸體會到 JavaScript 這個語言的博大精深,當然坑挖得越深,越是覺得有更多想去理解與學習的。相比於一個月前的自己,現在不僅懂得使用更多的語法,也更能掌控整體寫程式的思考脈絡,比較不容易陷入鑽牛角尖的負面情緒。在寫 code 的過程中,也逐漸培養出要求更精確的命名、排版的一致性與函式的低耦合性。
REFLECTIVE
成功總不是一蹴而就的。進步發生在每一次練習背後找資料的過程。例如遇到新的語法時,除了用教案中的例子來理解,我也會從 Google 中抓取很多資料,把自己會的語言的資料都閱讀過一遍,然後很驚訝地發現原來同一個語法在中文、英文、日文、法文中都有些微相異的解釋方式。我原本就很喜歡日常語言,在學了 JavaScript 之後,我更享受觀察人類語言與電腦語言之間的相關性。
很奇妙的是,我發現閱讀中文資料時會比起閱讀其他語言的資料更難以理解。或許跟語言的特性有關,當英文翻譯成中文時,有時候會顯得有點牽強,但當翻成同有漢字的日文時,卻又沒有這種問題,是否與語言的嚴謹性也有關聯?以上純屬個人意見。
其中我看了一個在講 functional programming 的影片,十分發人省思。裡頭提到純(Pure)與不純的函數、使用高階函數(Higher-order function)而不是用 for、while 來做迴圈、持久化數據結構(Persistent data structure)等等的概念。一個月前我大概影片一開始就直接放棄,但現在我會很有興趣地把它看過一遍又一遍,然後試著梳理出其中的脈絡。我認為這也跟對 JavaScript 有更為深入的認識有關,就像是一開始你不懂到連問問題都沒辦法,一直到你有一些基礎概念而能問出一個問題有異曲同工之妙。問問題也是一門學問。
INTERPRETIVE
無論人類的語言或電腦的語言,若要「持續學習,持續進步」就必須不斷地跳出舒適圈。我們要開口說才能培養出更好的語感,語言的最終目的是完成與其他人的溝通,這是一個絕對雙向的過程,當然閱讀亦是如此,你必須先磨練自己的寫作能力,才能看得懂更深刻晦澀的文章,而每一次練習都在跳出舒適圈。同理可證,學習 JavaScript 的目的是用來與電腦溝通,但是設計這個溝通架構的也是人,所以最終還是在與人溝通。
要是有一個 JavaScript 的語法或者觀念一直無法理解,就好比在現實社會中你不懂為什麼媽媽總是要你如何如何一樣,但若是你不試著跨過你自己的舒適圈與媽媽溝通,情況就會一直僵持下去。試著去讓自己不要陷入這種一直無法理解的負面情緒,打破這個框架去找方法更加認識它,是我認為唯一能持續成長的方法。
就像 Leonard Cohen 在 Anthem 這首歌中的一句歌詞一樣 “There is a crack in everything. That’s how the light gets in.”
DECISIONAL
培養書寫技術文章的能力是我現在想開始進行的。觀摩同學的筆記後發現,唯有自己整理過的,才真正能內化為知識。下一階段要開始學習後端的內容,想必更需要有條理的邏輯與思考力,勉勵自己能將每個章節留下一些紀錄,以供之後需要時能隨時查閱,而不會船過水無痕。