2022年我利用帶小孩和運動之外的時間,學習了三門CS的課程:哈佛大學CS入門課CS50、Coursera上被數百所高校採用的計算機體系入門課Nand2Tetris(前5章)和伯克利大一學生程式入門課CS61A(跳過SQL部分因為與CS50重疊),下面分享下我為什麼自學程式。
以下內容是我在一整年學習的過程中邊學邊總結寫成的,思考的過程就是找到動力的過程,幫助自己持續學習下去。
內容目錄
1.學習本身就是目的
之前學習會計、統計和估值課程的經驗,讓我養成可以安靜下來學習的習慣。要學什麼呢?我就找MOOC TOP5,然後學了幸福的科學這門課,了解到積極心理學的CSV理論。
積極心理學之父Martin Seligman在Authentic Happiness這本書中說:真實的幸福源於發現自己的優勢和美德,並在每天的生活中充分發揮它們。因為之前有學習一年多的關係,在我做測試時果然發現我的一個特質是愛學習(這就是《原子習慣》裡說的個人認同和習慣會互相強化)。所以,我就發揮我的愛學習的特質,每天學點東西來增加我的幸福感。
去年一年我都在學習投資有關的課程,今年初因為投資和想學完MOOC TOP5,就學了排名第五的Programming for Everybody,然後發現直接學語言太難,於是改學剛好是MOOC TOP3 的CS50。優質的課程果然不一樣,會讓學生產生源源不斷的好奇心。
之後我又接著學習了Nand2Tetris和CS61A,越來越發現學習好的課程真的很享受。
所以,學習本身就是目的,就是樂趣。
現在學點CS,希望未來我可以接著學習高等數學、統計、心理學、腦神經科學、運動解剖學等課程,希望自己可以活到老學到老。
2.鍛鍊自己的學習能力
之前學了一些學習如何學習的書和課程,光學不練沒有用,所以現在通過學習CS來鍛鍊鍛鍊,看看能不能找到適合自己的學習的技巧,提高學習能力。
去年學了投資的一些課程,今年學習了CS的一些入門和基礎課程,從中感受到,學習的能力確實通過鍛鍊而緩慢提高中。比如CS50我花了快6個月才完成,而CS61A只花了3個多月。
分享下很棒的如何學習的資源:
- 《如何閱讀一本書》
- Coursera課程: 學習如何學習
- Marty Lobdell—Study Less Study Smart
不過光知道沒有用,關鍵是要找個想學的學習來實踐。
CS的學習涉及的知識眾多,既要學習一堆的操作細節,又要形成知識框架和找到重點知識,既要有耐心,又要能堅持。還不能靠背書,而是要靠學習原理然後靈活運用。無論從哪個方面來說,對學習者都蠻有挑戰。學習能力在挑戰的過程中必然得到緩慢提升。
學習的能力很難培養,但是它是通用的,可以以後用在學習別的科目上,符合我對自己終身學習者的設定。最棒的是,也可以給培養孩子的學習能力提供一些方法。
3.提高自己的自律能力
我是一個常常半途而廢的人,之前做什麼事情動力不會超過三個月,最羨慕的是可以堅持不懈的人。看了很多提高自制力的書(比如《原子習慣》、《恆毅力》、《自控力》、《刻意練習》等),還是常常會三天打魚兩天曬網。尤其學習費腦費勁又費身體,還要小心不被販賣焦慮的新聞和娛樂至上的影音誘惑,消遣性的內容又進一步降低了意志力。
如果真的可以完成一門又一門的課程,整個過程應該是堅持不懈戰勝懶惰拖延自我的過程,或許可以從中找到提高自己專注力和自制力的方法。
當學習到了一段時間,培養了一點點思維能力後,就會不喜歡一直消費無聊的內容,更享受動腦的感覺。之前我必須把手機遠離自己才能避免被誘惑,現在我拿手機在手上卻不知道要幹嘛。因此,我的自控力也稍微提高了一點。
自控力更是跨領域的,做什麼都需要,連教小孩都非常需要。
4.挑戰自己找點成就感和意義
全職媽媽當久了,會感覺自己越來越廢。
學點東西,挑戰一下自己,完成挑戰,順便增加點成就感。
就像30幾歲的朋友去補習班學英文、40幾歲的瑜珈老師學習日文、60幾歲的阿嬤學習鋼琴和70幾歲的阿公學習電動車知識一樣,每個人的人生旅程都少不了學習,學習也讓人生的每個階段更有意義。
做重訓和瑜珈每次最後突破自己身體的極限,不斷學習也是慢慢突破自己認知上的極限。無論是突破身體上極限,還是突破認知的極限,都會帶來很大的滿足感和成就感。
5.為了孩子
很怕替孩子包辦一切然後孩子變媽寶,還有想給孩子樹立一個榜樣,陪伴孩子一起成長。
一方面是媽媽做自己的事情,重心回到自己,自動培養孩子獨立。
之前深受某明星出軌事件觸動,自己出軌卻要靠爸爸來寫文章跟大眾解釋。當時我就寫了篇文章在思考怎麼避免孩子以後成為媽寶。我覺得媽媽有自己的事情做就不會把所有的精力放在孩子身上,就會更自然的放手讓孩子學習自己為自己負責。
另一方面是做孩子的榜樣。
我問女兒將來想做什麼,她說想和我一樣做媽媽。
我覺得媽媽對孩子的影響比爸爸對孩子的影響要大很多,因為大部分的家庭,媽媽承擔了主要的教育義務。
而最大的教育是身教,想要孩子獲得的美好品格,自己要先做到。
所以,為了孩子,也要重新培養自己。比如想要孩子愛閱讀,自己要先愛閱讀。想讓孩子不挑食,自己先不能挑食。
從另外一方面來說,培養孩子的過程就是重新培養自己的過程。很多人過了30歲就忘記了培養自己,這麼說來,要感謝孩子讓我有機會和他們一起成長。
6.增加技能,培養獨立思考的能力
人無遠慮必有近憂,未來的世界有可能不能像過去一樣歲月靜好。自己能做的就是增加點技能,以面對未來的挑戰;還有培養獨立思考的能力,對事情有自己的判斷力;鍛鍊心智,內心平靜有自己的追求,減少外界對自己的影響。
學CS可以獲得兩種技能:
一種是直接的編程能力。
在當下的社會算是自學可以獲得的一種CP值很高的技能。所以很多人轉職會去補習班學程式。我不以工作為目標,所以現在學的都是很基礎的課程。一來基礎課程很有趣,越學越想學,讓人產生不斷探究下去的好奇心。二來任何系統性的學習,必須先從基礎的課程開始。三是越是基礎性的內容,越接近某種智慧,比如電腦科學最核心的精神就是抽象,而抽象本身就是一種普世智慧。
另一種是間接的思考能力。學CS促進思考,提升思維能力。
“Everyone in this country should learn how to program because it teaches you how to think” – Steve Jobs.
因為程式的本質就是用某種邏輯解決問題。第一步是全面理解定位問題,第二步是用什麼邏輯和方法(演算法)來解決這個問題,第三步寫出笨笨的電腦可以理解的code來幫我們解決問題。想一想把現實世界的各種複雜問題,設計出某種數據結構和算法,讓笨電腦懂然後幫我們執行,這整個過程的都在訓練我們的邏輯思維能力。
就算不解決任何問題,光學習CS本身就是在學一層一層的抽象,怎麼做出電腦靠的是一層一層的抽象,計算機網絡靠的是一層一層的抽象,軟體系統也是靠抽象,整個CS的學習就是一堆的抽象堆疊。這對我們的大腦的邏輯思維能力真的是一種很好的鍛鍊。
日常生活無時無刻不在面臨選擇,比如選擇如何投資、選哪種保養品、選擇怎麼樣的學習路徑、選擇哪一個候選人等等,每個選擇都需要獨立思考的能力。這個世界紛繁複雜,各種消息從四面八方傳來,擁有獨立思考能力也可以幫我們儘量減少外界的干擾,獨立判斷。這一點對投資也很重要,像巴菲特所說的:“別人貪婪我恐懼,別人恐懼我貪婪”,就非常需要獨立思考能力。
獨立思考的能力很難培養,尤其對我這種文科生又從小受應試教育洗腦天天背課本的人,更難。
查理蒙格說養成多元思維模型的方法就是跨領域學習。我想有可能是因為跨領域學習需要不斷的動用我們大腦的系統2,提高大腦的理性程度,克服我們大腦慣性的動用懶惰靠直覺的系統1。
不過這是一個漫長的過程,只能勉勵自己:路漫漫其修遠兮, 吾將上下而求索。
7.利用優質資源
除了CS,很難找到任何一個別的學科有這麼多的學校這麽多的個人如此大方的免費分享課程和心得。
比如就有人總結了:
對於愛學習的人來說,這麽多優質的課程可以免費學習,就像是一個老饕進到餐廳,松露龍蝦都是免費一樣。
書中自有黃金屋。這些免費的資源,不用學完,認真學個幾年後真的可以換成金子。現在卻無償提供,唾手可得,是多麼幸運的一件事。
不過學習的人好像沒有很多,比如CS神課CS61A,看YouTube的播放資料,一年全世界大概也只有數千人會把所有的課程視頻看完。和youtube上其他tutorial類型的視頻動輒數百萬的播放量相比,播放量算是極少了。
8.可以一直進步下去
我的重訓教練練習重訓十幾年,本身在大學教書,常常帶學生出國比賽,自己也常常獲得角力冠軍,但是有次和他提到怪獸訓練的何力安老師時,他說他有去上何力安的課程,我很驚訝,他回答說因為重訓是可以一直提高一直進步的運動項目,所以他自己還要繼續進修。我想也是因為這一點,我從諸多的運動中選擇了重訓。
電腦科學的學習就是不斷深入的過程,優質的資源,永遠都學不完,想學習的話一輩子都還有更進步的空間。
9.順便學習英文
不是學英文,而是用英文學習任何感興趣的內容。
我是沒有辦法靠堅持本身就可以堅持的人,必須有趣才能堅持。所以我之前嘗試很多為了堅持學英文而學英文的方法都辦法堅持。
而通過學習CS,我可以聽課不看字幕,看教材不用查字典,隨便閱讀任何英文技術文章,也順便學習了英文。至於口說和寫作,我真的沒有迫切的需要用,先放一邊。
總結:
《學習如何學習》裡說,對於很難的學科,每天學一點,讓大腦在分散模式時幫我們處理這些理解工作,這就要求長期的學習與慢慢的進步。這和《原子習慣》的建議一樣,重點在創造有利於自己的整個原子習慣系統,然後慢慢來,而不是把重點放在達成某個具體的目標上。
希望學習CS幫我提高學習能力和自控力,並且形成相關的原子習慣系統(包含運動、早睡早起、每天學習等),目標是做一個不斷提高自己的認知能力和獨立思考能力的終身學習者。