如果覺得技術成長太慢,請看看大神總結的三個祕籍

所有人都會有這樣的共識,通過努力學習就會有收穫。但如果學習方法不當,會造成身心疲憊,卻也沒有真正的回報。高中時,我的同桌是一個漂亮的女同學。她的物理成績很差。雖然她學習很努力,但成績總是不理想。為了鞏固純粹的同學關係,我仔細輔導了她的物理,發現她不知道該學什麼,又該考什麼。其實我們的課本和問題圍繞著考試大綱。當我們看到一個問題時,我們應該首先考慮它測試的是哪個定理和公式。

很多朋友每天都看技術文章,但第二天忘了溫故。工作中的領導和同事能夠通過日常溝通交流清晰地瞭解到你的技術技能。但跳槽面試卻經常碰壁。當面試官問到技術時,他心裡很清楚,但他用嘴卻說不出來。面試官又問基本的算法,你說你看過了,但忘了。他不在乎你看不看。如果你不能通過語言表達出來,就等於零。就像一個男人和一個女人相親時一樣,只有當一個男人說話時髦時,他才能吸引一個女孩。但是男人很緊張,雖然平時能說得很清楚,但在關鍵時刻卻磕磕絆絆,女孩一定認為他沒自信,能力不足。生活中同樣是充滿了考試,有形的和無形的,一般情況下這些考試只有一次機會。

在工作了五年和十年之後,其他人已經成為架構師,而有些人還在基層工作。原因是什麼?在職場上你不能成功升職的原因有很多。肯定有一個非常重要的原因,為什麼你沒有持續學習,為什麼你的學習效果不好,為什麼你無法通過面試進入你最喜歡的公司。

把自己想象成一臺計算機,需要輸入一些信息,然後輸出一些信息,你要根據需要輸出的信息來強制輸入的信息。換句話說,你想成為自己心目中優秀的那個人,你要具備什麼樣的輸出能力,根據這個,倒逼自己去學習,不斷地學習。

如果覺得技術成長太慢,請看看大神總結的三個秘籍

1 學什麼?

請記住:先打好紮實的基礎,才會有華麗的應用。

近幾年誕生了許多新技術,比如最流行的人工智能(仍處於智力遲鈍階段),基於初中時接觸到的概率統計數據。從根本上說,不要對新工具或中間件著迷,盲目追求新的快速發展。基礎知識是所有技術的基石,在未來很長一段時間內不會改變,應該花足夠的時間鞏固基礎。

以數據結構和算法為例,我們閱讀了Java BitSet源代碼,有大量的移位操作,移位運算掌握的好,看並吸收這個源代碼是沒有問題的。Java同步工具類AQS使用雙向鏈接列表,鏈鏈表知識不過關,肯定搞不懂它的原理。互聯網大廠都喜歡考算法,為了通過面試也要精通算法。

以Java工程師應該掌握的知識為例,按重要程度排出六個梯度:

第一梯度:計算機組成原理、數據結構與算法、網絡通信原理、操作系統原理;

第二個梯度:Java基礎、JVM內存模型和GC算法、JVM性能優化、JDK工具、設計模式;

第三梯度:Spring系列、Mybaties、Dubbo等主流框架的應用和原理;

第四個梯度:MySQL(含SQL編程)、Redis、RabbitMQ/RocketMQ/Kafka、ZooKeeper等數據庫或者中間件的運用和原理;

第五梯度:CAP理論、BASE理論、Paxos和Raft算法等其他分佈式理論;

第六梯度:容器化、大數據、AI、區塊鏈等等前沿技術理論;

有朋友認為第五梯度應該在移到第一梯度。其實很多小公司的日常工作猶如古天樂一樣平平無奇,離大型分佈式架構還遠得很。學習框架和中間件的時候,順手掌握分佈式理論,效果更好。

再請記住:在拓展廣度的同時,一定要在某個點上強化深度。

多家公司招聘JD(job description)並沒有為技術人員設定年齡門檻,但有些公司會加上"具備與年齡相當的知識的廣度與深度"這麼一句話。知識的廣度有多廣,深度有多深?這是一個非常主觀的話題,這裡不深入討論。

如何才能變得更廣更深?突破收入增長的瓶頸,發現你真正的興趣所在。

如果覺得技術成長太慢,請看看大神總結的三個秘籍

大多數人只是公司的普通員工,收入增長的瓶頸是晉升和加薪。許多IT公司都會給技術人員打分,如果你的評級不高,試著按照晉升章程進行升級。如果你在一家小公司,收入是平均的,發展前景不明,準備互聯網大廠的面試就是最好的學習過程。在這些過程中,你必然學習更多知識,變得更廣更深。

個人興趣是前進的動力最重要的一環,許多著名的開源項目都來自作者的興趣。個人興趣不僅限於技術領域,還可以是其他學科。我有一位朋友,他喜歡玩山地自行車,並在自行車話題上為一些自我媒體投稿。久而久之,居然能夠寫一手好文章了,我相信他也能寫好技術文檔。

記住:哲學不能餵飽你的胃,但可以充實你的認知。

哲學不是故作高深的學科,它的現實意義就是解決問題。就以追女孩為例,如何才能追到女孩呢?三天兩頭地送鮮花,公開下跪求愛。為什麼這種老套路總是能夠成功呢?鮮花禮物滿足了女孩的物質慾望,公共求愛滿足了女孩的虛榮心,這就是投其所好,也許她們會嘴裡說不要,但心裡是很滿足的。食堂大媽打菜的手越來越抖,辣子雞丁變成辣子辣丁了。為什麼?食堂要控制成本,直接漲價會引起公眾的憤怒。

科學上的哲學,一般指研究事物發展的規律,歸納終極的解決方案。在軟件領域裡面,有許多充滿哲學氣息的著作,例如"人月神話"。例如,當一個軟件系統遇到性能問題時,嘗試以下兩種哲學思想來提高性能:

空間換時間:比如引入緩存,消耗額外的存儲提高響應速度。

時間換空間:比如大文件的分片處理,分段處理後再彙總結果。

設計一個強大且高可用性的系統,可以嘗試從以下三個方面來考慮:

存儲:數據會丟失嗎?如何解決數據的一致性。

計算:計算如何擴展容量,應用程序允許增加任意數量的節點。

傳輸:網絡中斷或擁塞怎麼辦?

從無數的失敗或成功的經驗中,總結出一個高度普遍的解決方案,讓我們下一步能做得更好。

請記住:學習英語不是為了進外企,而是不想吃別人咀嚼過的飯(翻譯過來的技術文章)。

英語是非常重要的基礎。學好英語和掌握編程語言同樣重要。先不說外企對英語的要求,許多著名的博客將英語翻譯成中文,充當知識的搬運工。如果英語足夠好,直接閱讀第一手的英語材料,能避免別人翻譯的謬誤。直接感受作者寫作的真實目的。

2 怎麼學?

記住:學會建立自己的知識體系。

體系化的知識比零散的更容易記憶和理解,就像一部好的電視連續劇,為了吸引觀眾,故事情節交織在一起。我們建議你使用思維腦圖來列出知識點並構建知識架構。

請記住:克服遺忘積累知識的不二法門。

高中是我們知識積累的頂峰時刻,每週一次的測驗和每月一次的考試,教材堆積如山,地獄式的反覆操練強化記憶。複習是戰勝遺忘的唯一途徑。大腦遺忘是規律的,先快後慢。一天後,學到的知識只剩下原來的25%,甚至更低。隨著時間的推移,遺忘的速度減慢,遺忘的數量也就減少。

下圖是隨著時間間隔的長短,知識在我們大腦裡剩餘的記憶量。

如果覺得技術成長太慢,請看看大神總結的三個秘籍

每個人的遺忘程度是不同的。建議在第二天覆習前一天的內容,並在七天內過一遍這段時間學習的所有內容。

記住:請正確使用碎片化閱讀的時間。

不少朋友利用碎片時間學習,比如在公交上看公眾號的推送。事實上,我們都高估了自己的抗干擾能力,如果在嘈雜的環境中,注意力容易被打斷,記憶保持也很低。碎片時間適合學習簡單和孤立的知識點,比如鏈接列表的定義和實現。

學習複雜的知識,需要大段的連續時間。圖書館是一個很好的地方,有著良好的安靜氛圍。把手機放在一邊,無視你的QQ和微信。最好整天閱讀紙質書籍,泡上一整天。有些城市出現了付費自習室,提供格子間、茶水等等,也是非常好的選擇。

3 如何用?

記住:知識分享,你的收穫比聽的人更多。

從下面的圖片中,我們可以看到,教授他人是知識留存率最高的方式。

如果覺得技術成長太慢,請看看大神總結的三個秘籍

準備PPT和演講內容,與你的同事分享技術。不僅複習知識,還練習口才。有一次,有一位同事說得很快,而且很匆忙,有很多口頭禪,比如"對吧、是不是”,別人經常聽不清,但是他本人不以為然。領導要求他多次分享技術,聽眾的反應是很糟糕的,最後他才完全認識到自己的缺點。

堅持寫技術博客,別在意你寫的東西在網上已經重複千百遍。當你自己寫的時候,你會意識到你的眼睛很高,你的手卻很低。讓文章讀得既流暢又清晰,需要仔細刪除。寫作是對大腦的長期考驗。想不到肯定寫不出來,想不清楚也肯定寫不清楚。

請記住:只有自己親自造個輪子,才會領悟比看源碼更多的精髓。

我們常說不要一而再、再而三地重複製造輪子。為了提高效率,你不能重複造輪子,但你必須有製造輪子的能力。有人建議你可以用通訊協議、設計模式、隊列等許多知識來建立一個簡單的MQ。在造輪子的過程中,你會頻繁的翻閱各種手冊或者博客,這也是用輸出倒逼輸入。


分享到:


相關文章: