前言
最近我發起了「冴羽答讀者問」活動,如果你也有想要提問的問題,歡迎留言,我會按照順序依此回答。
正文
這是原問題:
算是一個前端的時間也有五年了,今年也剛好滿 30 歲了,感覺自己一直忙著完成業務,為了保持競爭力、不落伍等原因而學習新的框架、工具;回想起來年少輕狂浪費了不少時間,有了老婆孩子之後學習的時間也越來越少;知曉基礎不好,反覆地在看但感覺提升也不是很明顯,估計是因為練習不夠;待在一家尚能養家餬口的公司,說實話,要是能在這家公司幹到退休,寫一輩子程式碼,對我來說也能接受,只是無法去預見未來。平時看到一些很高階的技術比如低程式碼、D2C 或者其他大廠已經在廣泛應用的東西,總有一種不知道這輩子自己有沒有一點點成為很厲害的程式設計師的機會。想問的是:如何學習更有計劃性、提升更穩更快,如何處理技術迭代越來越快伴隨而來的心急和焦慮。
這應該是很多人的困擾了,本篇我們就聊聊學習這件事情。
關於學習,我們最大的三個困惑是:學習是為了什麼?我該學什麼?我該怎麼學?對應到 6W 分析法中,分別是 Why?What?How?我們一個一個聊。
我們為什麼要學習呢?這個問題聽起來很簡單,但深究一下,也沒有那麼簡單。
是為了回應父母的期待嗎?是為了拿到 offer,獲得一份高薪的工作嗎?為了打敗他人,享受人上人的感覺嗎?
亦或者是為了中華崛起,實現中華民族偉大復興嗎?是為了離開當下的環境,看到更高的風景嗎?是為了實現自己的理想,實現個人價值嗎?再或者是為了幫助他人獲得幸福快樂嗎?
在我們上學的很長一段時間裡,我們並不需要給出自己的答案,父母、老師、同學、甚至社會、國家都給了我們答案,我們甚至不需要認可這些答案,只用按部就班、學習考試就行。
但也正是因為這樣的環境,我覺得很多人失去了對這個問題的思考,以至於不知不覺間,將學習本身當成了目的。遇到困難,我去學習就好了,等我學完,這些困難一定就能解決了吧?父母對我的成績不滿意,我去學習就好了,我把所有的時間都用來學習上,這下他們不能再傷心了吧?學來學去就是沒有什麼進展,哪還能有什麼辦法,我只有更刻苦自律,把每分每秒都用到學習才行。
而學習的終點是考試,是 offer,是……,所以當到達終點時,很多人也就不再學習,這也就是為什麼高考結束後,有那麼多的學生都會撕書以示“慶祝”。
你可能想,我都已經畢業了,才不會犯這樣的錯誤。可是你回想下過往的學習經歷,你是否經常破釜沉舟般的推掉所有事情,把時間砸到學習上,但實際學習的效率卻很低,一天到頭也沒幹成啥事?也許有一兩天學習效率很高,但大部分的時間是不是在分神、發呆、休息、精神渙散中度過?
如果是這樣,也許你就是在“假裝學習”。 這像極了小時候的我們,父母管教嚴格,去幹學習之外的事情都會被說教禁止,於是我們形成了“不管學什麼,學的怎麼樣,我只用表面是在看書就行了”的潛意識,而我們在面對低下的學習成果的時候,我們也容易安慰自己,“我並沒有把時間花在其他的地方,我可一直在努力學習,至少我要比那些去玩耍的人強吧……”
所以你看,我們並沒有追求真的學到什麼,我們追求的是學習這個行為本身,是自己學習的姿態,是為這樣的姿態而感到的心理滿足和迷戀。
那麼你可能問我,你認為學習的目的是什麼?說真的,前面說的那麼多目的其實都可以成立,因人而異。但我想說的是,倒也不需要想那麼遠,學習的目的不就應該是為了解決問題嗎?
你可能會說,你這不是廢話嗎?難道我現在的學習不是為了解決問題嗎?
那還真不一定。
我認為中國的傳統教育中,特別強調輸入,讓大家死記硬背,期望通過疊加閱讀量,量變達成質變,而所謂知識的實踐則體現為考試中的各種變種題目。至於我們用學到的知識解決了什麼實際的問題,其實並不重要。
這種重輸入輕實踐的教育傾向,也讓學習的我們,過分看重知識的學到,而不是知識的應用。
但是問題在於,如果一個人只是坐著,即便他的思緒已經破濤洶湧,但對於這個世界而言,他只是在那裡坐著,其影響只是零而已。因為你對於世界的影響是靠行動做出來的,而不是單純的思考,就算你在腦海中解出了哥德巴赫猜想,你也要寫出論文發在期刊上,這才算是對世界產生了影響不是?所以你什麼也不做,亦或者只是思考,寫了一堆筆記日記,也只是對自己有益,你對於這個世界、對於他人依然沒有什麼影響,你也不會產生任何價值。
但我們就是如此,學習一個知識學到了 50 分,感覺不夠,通過刻苦的學習將其提高了 100 分,但到這裡也只是滿足個人的精神潔癖而言,無論學到了多少分,你只是在那裡坐著,對於這個世界的影響依然是 0,依然不會產生任何價值,只有當你輸出了東西,才可能會產生價值,但很多人如此輕視輸出這件事情,以至於即便學到了 100 分,最終對於世界的影響依然停留在了 50 分,那這刻苦學習提高到 100 分的意義是什麼呢?
我們經常看到這樣的評論 ——“收藏即學會”,我知道這是戲謔,大家也都知道這是假的,但學到即學會,大家卻實在的認可這是真的,並且真的這樣做。
其實古人就說過“學以致用”,我們已經不是學生了,不需要再去參加紙面上的考試,更需要的是實踐上的應用。但太多的人還停留在上學時的學習習慣,知道強迫自己學習,但疏於讓自己實踐輸出,最後時光流逝,刻苦學習卻什麼也沒有改變。
所以有個段子叫:“你每天看耶魯公開課,上 3W 咖啡聽創業講座,知乎果殼關注無數,36氪每日必讀,對馬雲的創業史瞭如指掌,對張小龍的貪嗔痴如數家珍,喜歡羅振宇勝過賈伯斯,逢人便談網際網路思維……但你還在每天擠地鐵。”
智慧可以讓我們在某些方面做得出色,但知識本身並不會產生價值。
接下來我們說說學什麼,對於大部分同學而言,學習前端知識,選擇的是所謂的“系統學習”,於是各種去找資料,網上正好有一大堆所謂的“前端學習路線”、“前端知識圖譜”,我在很早以前也寫過系統學習前端的知乎回答:怎樣系統地自學前端?,至今還有同學點贊。
放到現在的我看來,我對於這個問題本身就有些疑惑,我們為什麼要追求系統的學習呢?
其實如果是剛開始要學習前端的同學,我覺得跟著一門看似系統的課程學習倒沒有什麼問題,你什麼都沒有學過,跟著系統教程走可以避免一些彎路。但如果是已經做前端一段時間了,工作都能做上手了,再跟著所謂的系統教程走,多少有點捨近求遠了。
我們之所以想要系統學習,我認為這跟我們一直以來的教育習慣有關係。無論是小學、初中、高中、乃至大學,都是在固定的知識範圍裡學習、出題,以至於讓大家以為我們學習的內容是有邊界的,只要我們系統完整的學習完內容,我們就可以考一個高分,拿一個好成績。
但前端的學習並不是這樣的,它涉及的知識範圍非常廣,並且可以無限延伸,就算完整的學習了所有內容,受制於當下的公司、環境,能用到的知識,其範圍也是有限的。大部分的知識只是學過就忘記而已,這樣看來,所謂“系統完整的學習”其本質就是一個給自己找自信的過程,以為自己“系統學習”了就能抗得了所有專案中遇到的難題。
如果我們學習的目標是為了解決我們實際中遇到的問題,所謂的“系統學習”就更像是讓我們全部學習一遍後,然後根據實際遇到的問題再發揮我們學到的知識,就像我們上學的時候,把知識都學習了一遍再去考試,但這是低效的做法,因為我們實際遇到的問題已經遇到了,就相當於我們已經拿到了考卷,為什麼不認真的答題,卻非要去完整學習一遍再來答題呢?
在我剛開始工作的時候,我雖然已經能夠應付工作,但當我接觸的東西越多,我就越覺得自己只是學了一堆 API,所謂基礎、底層、原始碼層面的東西也想看懂,但學來學去,就是摸不到門道。終於有一天,在煎熬之下,我認真的思索了,目前想要掌握的知識點。不是一個具體的方向,比如 React,而是具體的知識點,如原型、作用鏈、diff 演算法等。
我寫了上百個我認為需要掌握的知識點,寫滿了一張紙,然後又將其分類,去除掉一些覺得用不到相對價值小的內容,最終劃分為了四類,JavaScript 底層,JavaScrit 功能(防抖、節流這些)、ES6、React。
後面我就按照這些知識點,一個一個去查資料去學習,將這些知識點一個個劃去。實際上,在學習的時候還會產生新的點,那就再加入其中就好了。可能你要說了,你這不還是“知識圖譜”、“系統學習路線”嗎?確實如此,我們學習是一定要有一個路線規劃的,這很正常,你能搜到的那些圖譜最大的問題是,他們總是求大而全,而你壓根就跟不下來,當然你也沒有必要跟下來,你要做的是,結合自己的目標和實際工作,確定自己的學習方向,在打實基礎之外,學習有可能應用到你工作中的知識點。
也許你會反駁,但是面試需要我全能全知呀。這很明顯是一個對面試的誤解,如果你去搜面試題,那真的是什麼問題都問過,為什麼會這樣呢,我想這應該是面試者的背景截然不同,所以才根據簡歷,問了各種各樣的問題。
如果你去面試淘寶,雖然淘寶的主技術棧是類 React,但這並不是說只會 Vue 的同學就不行,實際上,如果你能對 Vue 的底層非常瞭解,這依然體現出了你的能力。越是大廠的面試,對於通用能力即學習、實踐、思維、溝通等能力的要求就會越看重,如果你能把專案做好,遠比你迎合對方的技術棧要加分的多。
而關於具體學習的技巧,費曼學習法就是一個很好的方法,其實回過頭來,我當時每一個知識點都寫了一篇文章,無形中也是實踐了費曼學習法。
作為一個非常知名、備受推崇的學習法,非常有必要了解和學習一下。哪怕你沒有用上,但是很多理念也許就在無形中改變了你的學習方式。
作為一名物理學家,費曼因自己獨特的教學方式廣為人知,深受推崇。他總是能深入淺出地將複雜的專業理論講得通俗易懂,深受學生喜愛,後來,越來越多的人便採用他的這種方法學習,最終形成了人們眾所周知的“費曼學習法”。所以費曼本身並沒有將這些內容理論化,這些原則是由無數的追隨者和思維學家整理而成。
所以不像“番茄工作法”,你可以閱讀番茄工作法的作者親自寫的說明書,關於費曼學習法,雖然有很多文章,但還是推薦更系統全面的書籍,就比如微信讀書上的《費曼學習法》,儘管這本書很多人吐槽將幾千字的內容擴充套件成一本書,以及還是不知道怎麼實踐,但我還是閱讀了 2 遍。
我們閱讀的很多書籍,其核心觀點不過幾百字而已,但如果你只看這幾百字,你不會有什麼大的認知改變,只有將這些觀點不斷地擴充,在你閱讀的時候,反覆提及、論證、擴充,你才有可能真的理解或者頓悟這些觀點,所以我覺得這本書依然值得閱讀。很多文章雖然寫的也好,但相比起來還是單薄了些。
而所謂的費曼學習法其實很簡單,它的核心是——當你準備學習一門新知識時,必須站在傳授者的立場,假設自己要向別人講解這門知識。那麼你一定要用最簡潔、清晰和易於理解的語言表達出來,才能讓行外的人也能聽懂。費曼說:“最好是幾歲的小孩也能明白你在說什麼。”
再簡單來說,費曼學習法強調輸出,當你學習完一遍的時候,嘗試向別人講解你學習到的知識。再說白了,以教為學,雖然表面是在教別人,其實你也是在以教的方式逼迫自己查漏補缺。
我們都知道有這樣一個學習效率金字塔:如果只是聽別人講,內容留存率只有 5%,如果是自己閱讀,則為 10%,視覺 + 聽覺,則為 20%,與別人討論,則為 50%,講知識用於實踐,則為 75%,講知識教授給他人,則為 90%。
這個資料是否準確倒不重要,重要的是,它說明了,如果你能教授他人學會,說明你才是真的學會了。所以費曼學習法格外重視“輸出”的作用,而輸出就是複述你所學到並理解到的知識並讓聽者理解。
輸出落實到具體的形式,則可能有多種,給自己講解、給他人講解、寫部落格、做視訊等等都是,很多人採用的是寫部落格的形式,這很不錯,也是我採取的方法。
但我發現很多同學雖然也寫了,但只是寫在筆記軟體裡,並不願意分享出來,理由也很簡單,覺得寫的簡單,大量珠玉在前,害怕獻醜,想著等以後厲害了再發出來。
通常害怕分為三個層次,一是害怕事情,二是害怕事情帶來的後果,三是害怕自己無力承擔事情帶來的後果。 以寫作發文為例,一是害怕發文,二是害怕發文被冷嘲熱諷,三是害怕自己無力承擔自己發的文章被冷嘲熱諷。再或者是,一是害怕發文,二是害怕發文後無人問津,三是害怕自己無法接受自己如此失敗的事實。
其實冷嘲熱諷倒還好,實際上我寫的第一個系列是被冷嘲熱諷最多的一個系列,但時間會為你洗刷掉這些,最糟糕的可能是無人問津吧,但我是認為,如果你遇到了一個問題或者阻塞的難點,你將其寫出並分享,終有一天會幫助到其他遇到相同問題的同學,儘管可能不是在當下。
寫作這種東西呢,也不要有完美主義傾向,好的文筆是練出來的,好文章是改出來的。當下可能確實有點差,但隨著你不斷地寫作,收到大家的反饋,你會寫的越來越好。如果只是放在自己的草稿箱裡,你並不會有什麼長進。“等我厲害了,準備好了”只是一個給自己逃避不做的理由而已。
最一開始寫作,也不用寫太多,可以從講清一個知識點,闡明一個觀點開始。
也有同學跟我說,有些文章寫的太好了,感覺無法超越。實際上,你寫文章首先是為了幫助自己梳理知識,其次,這也是一種完美主義傾向,潛意識裡不就是“如果寫得不好,超越不了別人,那不如不寫”嘛,完全沒有必要,再者,感覺無法超越,多是因為自己對這個問題的理解已經被這篇文章帶著走了,你可以再閱讀一些其他相關的文章,等積累的多了,也許你就有自己的切入點了。
以上是我認為的,關於學習的第一個要點 —— 以教為學,而學習的第二個要點,我認為是 —— 困難的地方就是你彎道超車的地方。
稻盛和夫說過:“你不會的東西,覺得難的東西,一定不要躲,先搞明白,後精湛,你就比別人優秀了。因為大部分人都不捨得花力氣去鑽研,自動淘汰,所以你執著的努力,就佔了大便宜”。 所以學習時,遇到困難的地方,不要很本能的就去逃避、跳過,在困難的地方淺嘗輒止,在簡單的地方反覆橫跳,最終荒廢的只有你的時光。
遇到難點,你應該感到興奮,如同發現了一條可以快速超越的彎道,並且下定決心、不惜一切攻克它。這樣劈荊斬棘的學習姿態反而是最為高效的學習方法。很多東西就是很難的,就比如讀原始碼,沒有什麼簡單高效的方式,你啃得下來就顯得厲害一分,啃不下來就只能仰望他人。
如果這個過程中還有什麼技巧的話,那就是找尋自己的拉伸區不斷訓練。很多人總想著一蹴而就,直接就選了困難區的東西,結果學不懂,最後鎩羽而歸。如果牽涉到的概念太多,看不懂也學不下去,說明是困難區,那就換種簡單的方式。想學編譯原理,然後就去啃龍書、虎書,那不如從看簡單的文章做一個簡單的編譯器開始。看書看文件看不下去,那就去看看視訊教程。很多事情做不下來,那就思考下有什麼簡單一點、更能接受的方式去開始,退一步不是認慫,反而是智慧的表現。也不要總是強求自己去做下來,最糟糕的是,時間浪費了,熱情也消磨了,最後還產生了逆反心理。
學習的第三個要點 —— 以慢為快。我們經常會追求高效學習,但高效學習並不應該指幾個小時就看完一本書,或者能夠 2 倍速刷完一個視訊。學習是學習者在已有認知的基礎上,接納新的知識,鞏固或者改變原有的認知,形成新的認知的過程。 很多知識它就是需要時間來消化理解的,過快的速度只會破壞這個過程,沒有對於概念的深度考究和思考,就只是記住一些概念而已,所以對於所謂“學的快的”同學,也不用羨慕,我們比的從來不是多快能學完一個課程,而是大家對於這個課程的理解程度。
而在學習過程中,一開始的學習一定要慢,換句話說,一定要紮實,因為如果前面的學習有很多漏洞和盲區,後面所有建立在這些基礎之上的知識就會搖搖欲墜。之前的漏洞和盲區若是得不到徹底的解決,之後就會一直受此影響,學習上的新問題和新漏洞也會越來越多,最後人只能在焦躁、失望、消沉中選擇放棄。
以上三點,是我認為學習過程中應有的認知,換句話說,我認為這是學習之道。但在具體的學習中,依然有一些想法可以討論,我想再講 4 點:
第一點是所謂“堅定的信念”。我在很長的一段時間裡都在思考人生的意義,人生的目標(當然現在我也會思考),我之所以會這樣想,是因為我潛意識裡覺得,如果我能找到人生的目標,我就能看清方向,擁有無限熱情,刻苦努力、嚴格自律、專注高效,學習更是綽綽有餘,甚至會湧現一種使命感。
儘管我的理智很容易辯駁這個想法,但我潛意識裡還是禁不住這樣想。你說這個想法正確嗎?對我個人而言,我完全無法證偽,因為連第一步,找到目標我都沒有做到,怎麼證明我在擁有目標就會如此呢?
但我依然願意這樣想,並覺得應該建立起一個“堅定的信念”,於是看書思考,研究前人智慧,思考古往今來,深刻剖析自己,發掘天賦興趣,你說這些有幫助嗎?我不能否認,它確實有一些幫助,但最終落到具體的學習的時候,我依然會拖延、懈怠,分神,禁不住誘惑,會挫敗、失落、低沉、惶恐不安。
我希望“堅定的信念”能讓我順勢而下,勢如破竹的解決所有問題,我也總想把遇到的所有問題都推到“堅定的信念”上。然而學習就是學習,信念目標可以一定程度上解決內驅的問題,但學習就是會講究方法、技巧、環境、能力等等,信念帶來的“意志力”並不是取之不竭的,如果學習是一個系統,“信念”只是一環而已,單靠“意志力”是做不到的。我們真正要做的是,建立起一個學習的系統,引匯出自己做事的興趣、熱情和成就感,這樣你才會越做越起勁,最後不斷地運轉下去。
第二點是學習的“反人性”問題。你覺得學習“反人性”嗎?很多人認為,自律、學習都是“反人性”,所以“你越逆人性,你就越厲害”。這樣的看法不可置否,但我個人並不持這樣的觀點,因為在我看來,人性是複雜的,毛姆的《月亮與六便士》中:“卑鄙與高尚,邪惡與善良,仇恨與熱愛,可以並存於同一顆心靈中”,馬斯洛也有需求層次理論,從生理安全到自我實現,皆為人性。
所以人是有趨利避害、短視懶惰的一面,但人也有好奇求知、知羞恥榮辱的一面,所以學不下去,貪圖享受是你的人性,但好奇求知,為了理想也是你的人性,刷一天抖音是你的人性,刷完後的空虛和悔恨也是你的人性。我們要做的並不是在痛苦的時候再壓自己一把,這樣只會徹底的引起心理反感,我們要做的是,發揮和引導人性中積極的一面,向著陽光走,陰影自然就會留在身後。
第三點是即時反饋。為什麼打遊戲刷短視訊會很爽,一刷就停不下來呢?因為遊戲有即時反饋,你每一個操作都會讓你知道自己在變強變弱,從而立刻調整,看到成效,而短視訊因為時長比較短,十幾秒一個,而且易操作,只要手指不停滑動,感興趣的內容就會源源不斷的推送到眼前,即時反饋,及時滿足,而短視訊背後的演算法還會根據你的每一個行為推測你的喜好,最終比你還要了解你自己,視訊帶來的滿足感就會更強烈。
但學習不是這樣,它的反饋週期長,而且從反饋的程度來看,也會弱很多。舉個例子,如果你想通過認真的學習,然後做一個小專案,整個過程因為時間週期太長,你中間看不到任何反饋,你很容易就放棄了,而過程中你實現了某個小目標,雖然感受到了自己的“優秀”,但這種反饋又比較溫和,一個東西花時間又久又看不到什麼大的成效,出於人趨利避害的本性,人自然就會去逃避放棄。
反過來,知道了即時反饋的原理,我們也可以調整學習的方式。一方面是縮短學習週期,就像做產品也是從 MVP 開始,學習的時候也應該明確的建立起小目標,採用小步快走的方式,及時獲得反饋。以寫書為例,如果成就感只來自於最後的出版,因為週期太長,做著做著就沒了興致,所以可以從平時的寫作做起,感受每一個小目標的完成、每一篇文章帶來的外部反饋。另一方面則是增加反饋感,在每一個目標或小目標完成的時候,不僅僅是感受完成的滿足感,更要給自己帶來更多的獎勵,或者是發條朋友圈,或者是送自己想要的一個東西,無論是什麼,都是為了讓你的大腦增加目標完成時的多巴胺,這才會增加大腦上癮的機率。
個人成長的時候,最容易出現的就是沒有明確的完結時間點,然後一門心思的往前跑。我們經常把人生想象成一場馬拉松,彷彿只有衝過終點才算完結,但其實我們也可以把人生想象成一場一場的短跑,每場短跑都有一個明確的完結點,都有一個明確的結束儀式,都有一個明確的獎勵,都有一個明確的休息,這樣你反而能更有活力的完成旅程。如果只是在心中守著永遠在未來的成就節點,只會在實現的路途上,心力交瘁,半途而廢。
第四個是關於合適的環境和氛圍。先說環境,正如圖書館比寢室更適合專注,乾淨整潔的地方比雜亂無章的地方更容易專注,作用單一的地方比作用多樣的地方更容易專注。最後這個,舉個例子,如果你堅持床是用來睡覺和睡覺的地方,那麼你的大腦就不會對床和玩手機產生聯絡,你就更容易早點睡覺。
而關於氛圍,有一句非常經典的話,叫做“一個人走的快,但一群人走的更遠”。在群體的作用下,因為彼此有共同語言,加上相互肯定,人們就容易堅持住一個習慣。當我們看到他人的努力時,我們也會受到感染,堅定信心,所以找一些志同道合的朋友,加入一些好的社群都是不錯的選擇。我經常以我社群的一些活動為例,舉得太多了,就不多講了。
最後總結一下,我們學習是為了自己,是為了真正的解決問題,切忌“假裝學習”。雖然系統學習看起來很不錯,但從自己的興趣和工作出發,是更好的學習方向。在具體的學習中,應強調輸出,以教為學,每一個困難的地方都是超車的機會,以慢為快,踏實的打牢基礎知識點。
學習是一個系統,我們不能總是依賴意志力,要講究方法、技巧、環境等,引導自己做事的興趣、熱情和成就感,這樣你才會越做越起勁,最後不斷地運轉下去。
系列文章
冴羽答讀者問全目錄:https://github.com/mqyqingfen...
如果喜歡或者有所啟發,歡迎 star,對作者也是一種鼓勵。