最近半年由於項目悠閒,作了不少自學計劃,不少都是心血來潮,也並無都堅持下來,好比學習C語言、學習Spring和web基礎知識、學習操做系統等。在這個過程當中,忽然意識到「心態」是學習中一個很重要的部分。程序員大部分是獨自學習的,很容易進入一個懶惰或焦慮的極端狀態,小心態不穩定時,會發現時間眼睜睜地流過,而你卻沒法進步,這是一種很難受的狀態。小心態健康時,不只能保持穩定的學習速度,還能在學習中獲得快樂,進入一個正向循環。程序員
樓主是一個凡人,資質平庸,學習的目的無非是提升競爭力,使本身不至於某天淪爲公司裁人的犧牲品。若是你有更清晰的夢想和目標,說明你比樓主層次高不少,歡迎來指點樓主。web
一開始學習時,樓主看了許多帖子,裏面的Java大神們都在說:要提升技術,就要不停地看源碼,甚至本身造輪子……年輕的樓主深受這種理論影響,不屑於搞業務而日日研究如HashMap源碼這樣枯燥的東西,甚至計劃本身寫一套collection framework,把大神們造過的輪子再造一遍,彷佛只要寫完這一套東西就能立地成佛,能搞定全部的業務和bug。面試
當我開始寫HashMap的時候就發現,爲了寫而寫是一種很蠢的行爲。一個輪子內部的那些看似精巧繁雜的結構,存在的意義是爲了讓輪子更好更長久地運轉,而不是工程師爲了炫技而創造的。若是咱們沒有一個實用的目標,反而會浪費時間,迷失在一些看上去很神祕的細節中。其實,像HashMap這樣的數據結構,只需瞭解它大體的工做原理就能夠了,餘下的代碼細節能夠在使用有疑惑或者出了問題時再去看。算法
再好比,樓主看面經中老是提到JVM調優,所以以爲這是Java程序員進階所必備的知識,因而就買了書和教程去看,可是發現對於調優這個話題看書效率奇低,書上比較多的是一些描述性的內容,如JVM的內存分佈和垃圾處理算法;還有一些實用性的內容,好比調優工具、調優案例。有些內容反覆看了又看,回想起來腦子裏卻不剩什麼,遠沒有看完一個算法後的那種條理清晰的感受。而花在這個問題上的時間卻遠遠超過看算法的時間。編程
這幾個周,同事要作一個自動化測試工具,問你們有什麼好的建議。樓主想到本身一直學調優而無所得,靈機一動,提議在工具中加入調優功能,獲得了同事承認。同事給樓主大概介紹了一些調優思路,推薦了一些資料去看。樓主但願爭取到這個親自實現調優功能的機會,因而幻想本身即將面臨各類性能問題,爲了解決這些問題開始儲備知識,而後驚異地發現學習有了層次,樓主再也不死板地按章節看書了,能夠自動地篩選出重要和不重要的內容,甚至能夠在腦中造成清晰的脈絡了!設計模式
因此計算機是一門實踐科學這句話必定要深入理解。由於偏實踐,因此不可能當王語嫣,由於許多理論是從實踐中來的,比如數學公理,只能從實踐中獲得感性認識,沒法從其餘的理論推測得來,也沒法死記硬背。樓主是一個學院派的人,在這方面吃了很多苦。從中總結出的方法論是:網絡
長時間的學習很容易懈怠,陷入一種被動接受知識的狀態。另外,一我的的思想永遠不可能顧全全部方面。數據結構
好比,樓主的朋友最近想學習Java,因而樓主挺身而出,天天給他介紹二十分鐘Java基礎。當說到垃圾處理時,樓主天然地老生常談:Java內存分爲新生代和老年代,通常的GC只對新生代進行收集,而只有老年代也沒有空間了纔會進行Full GC……朋友眨着天真的眼睛問樓主:爲何要分兩個區進行收集,而不是每次都對全部內存進行垃圾處理呢?樓主驚訝地發現本身答不出來,由於從未想過這個問題……框架
今天樓主複習時無心中發現,書裏其實有介紹這麼作的緣由,即大部分對象都是朝生夕死的,按年齡分代並頻繁地收集新生區比較貼合這個模型,這樣既能照顧到經常使用的內存,也能保證垃圾處理能在比較短的時間內結束。這一段樓主其實看過多遍了,但居然從未將二者聯繫起來,也未思考過度區設計的緣由……工具
又好比,有一次面試時面試官問Java線程池中核心線程數和最大線程數的區別。樓主輕車熟路地說:核心線程數是線程池的初始線程數,最大線程數是線程池能擴展到的最大線程數,只有任務隊列提交滿時纔會擴容。面試官接着問道:「那你想過爲何要這麼設計嗎?」樓主支吾半天也沒答上來……過後一想,其實很簡單,就是爲了既能重用線程,減小線程開銷,又能知足偶爾的大規模請求而已。這麼簡單,爲什麼當時沒想到呢?
……由於平時看書的時候就缺少思考啊……
對於樓主這種口號上的巨人、思考上的矮子,除了常常給別人講東西從而被別人挑戰以外,還有一個好辦法,就是堅持寫博客。
博客是一篇文章,須要有文章結構這種東西,爲了使你的博客顯得比較有邏輯性,你會被逼着去梳理知識點之間的邏輯,以及一門技術的由來、歷史、產生背景等等。在梳理過程當中,你會發現看書時遺漏的點被填滿了。另外,把思路寫出來能進一步強化你對知識的印象。並且,持續寫博客會給你的學習形成一種健康的儀式感,即便一開始沒有太多讀者,你也會愛上這種輸出的感受,反過來督促本身爲了寫出更多博客而堅持學習。
焦慮是自學最大的敵人。有一陣子看到朋友看書很快,本身也想加快腳步,但是卻打亂了本身的一向節奏。又有一陣子,像着了魔同樣四處搜尋名人自傳、大神博客,而後發現本身跟大神的差距要以數十年計,陷入一種無止境的焦慮。
樓主願意相信,焦慮並非徹底很差的狀態,由於它證實一我的想要進步,想跟那些優秀的人比肩。可是,「認識本身」也是一門很是重要的學問。每一個人都是不一樣的,如今跟大神差距很大並不意味着幾年後還會差距很大;可是有一個堅持下去的祕笈,跟跑馬拉松同樣,就是不要看別人,不要看終點。要作到這一點,先要接受本身的平凡,這樣才能平心靜氣地去吸取知識、抵禦外界的影響,而持續的焦慮只能拔苗助長。
若是天天都抱着一個遠大的夢想,正襟危坐地努力學習,會發現很快就累了。之因此看電視劇不容易累,是由於潛意識就告訴本身在玩。若是學習的時候,也能夠調整到一個好玩的心態,把問題看成小樂趣去解,會發現不知不覺就沉浸在解題的樂趣中,而感覺不到時間的流逝,這種狀態是學習的上乘狀態。