如何快速且深刻的學習一門新技術

本文是學習顏羣的《如何快速且深刻的學習一門技術》的一篇記錄文章,對方的不少觀點和讓我很受啓發,雖然本身平時對學習方法有些心得,可是真正去總結本身的學習方法卻不多。缺乏盤點的結果就是任憑本能和生物鐘狀態,顯然這種方法是不可持續的。爲了提高我的或團隊的學習效率,如何摸索一套針對技術類型的學習方法是很是值得每一個技術人員去探索和總結的

  軟件開發正處於快速發展的時代,新技術層出不窮,那麼在這個突飛猛進的互聯網時代做爲軟件開發者,咱們應該如何保證本身的技術競爭力?咱們今天就來聊一聊,如何快速且深刻的學習一門新技術。html

觀其大略

  你們可能都知道,英語考試裏面有一個經典的題目叫"完形填空",老師常常告訴咱們,在作完形填空以前,必定要先花一分鐘的時間,整篇文章快速的閱讀一下,對整篇文章有一個大體的瞭解以後,若是再去作題,準確率就會提升不少,那我認爲這種作完形填空的方法也應該一樣適用於軟件學習。前端

  咱們在學習某一個軟件新技術,也應該先快速的去瀏覽一下這個新技術的主要大體狀況以後,再去研究每一個新技術裏邊到底包含了哪些技術細節,遵循從總體到深刻的過程。算法

找出套路

  各類技術都有本身的模板結構spring

  • HTML:代碼結構固定
  • Netty:代碼流程相似
  • JDBC:實現步驟固定

  不管是前端仍是後端框架,這些技術都有一個共同的特色,就是他們有必定的套路可遵循,所以我認爲一個比較好的學習方法應該是先無論三七二十一,先快速的去了解一下具體的套路究竟是什麼,而後再去深刻研究套路里面的每一步究竟是什麼,那這樣才能高效的學習一門新技術。shell

  那麼如何瞭解套路呢?後端

  在學習新有以前咱們必定得先宏觀的全局性地快速地瞭解一下技術的全貌,那這樣才能清晰的認識一下,技術裏邊哪些是套路,哪些是重點,那麼這是你可能會繼續問,到底應該如何的快速閱讀技術的全貌呢?設計模式

  這實際上是快速閱讀理論知識了,推薦你們能夠以快速的跳躍性的方式來查閱一些資料,來看一下執行流程是怎樣的,具體細節你能夠查閱技術官網,看書看博客或看一些視頻教程的。重點要看這些教程裏邊反覆出現的重複代碼,通常而言那些頻繁出現的重複代碼就是這個新技術的技術代碼結構了。微信

總結

如何快速尋找新技術的代碼結構網絡

  • 快速、跳躍查詢資料(官網,看書,博客,視頻)
  • 出現頻率較多的重複代碼。

這種方法雖然本身瞭解,可是平時應用並很少,沒有刻意練習,更沒有造成本能的習慣。這種方法看似囫圇吞棗,其實從效果來看是很是科學的。高屋建瓴,快速的在腦中建立全景圖,有了模糊的知識樹導航,對後續的深刻學習也好,耗費的時間成本也好,都會有一個初印象,必定程度上能夠消除對新技術的陌生感和恐懼感。數據結構

既然是深刻學習,到後期觀其大略應該是不夠的,腦圖比如地圖,若是不能深入印在腦子裏,實戰必然沒法作到熟練使用,如何能說是深刻學習呢?

因此前期觀其大略,後期必然是爛熟於心。好比學習k8s,你若是不能很清楚的瞭解其中的7個大的組件用途和關聯,那麼在運維和開發過程必然會不自信。

深度學習

  技術初體驗僅僅只能算一個入門程序,要想真正的掌握,必然還得進行深刻的學習,那該怎麼深刻呢?

  我認爲經過案例來倒逼對理論的理解應該是一個比較好的方法,好比Netty案例庫的學習。按照下面步驟搭建完畢以後,我對他的掌握就已經很熟悉了。

  

  • 第1步,經過快速學習兩個小時,瞭解了Netty的總體流程
  • 第2步,從初體驗的hello world開始,逐步積累Netty的案例庫
  • 第3步,當案例搭建完成,大腦已經創建了對Netty的思惟框架圖

深度學習並不容易,這是一個打怪升級的迭代過程,中間必然會由於細節栽倒,從坑裏爬起來返回理論,再返回實踐驗證。這裏與其說是深度學習,不如說是對毅力的考驗,若是在韌勁上能加上一點興趣,遇到問題的心態可以更加放鬆,並樂於挑戰,那麼這個階段,估計會倒下一大批同窗。

強化學習

  相信經過前面的講解,你已經清楚的知道如何快速掌握一門新技術,可是如今還有兩個重要問題須要解決:

  • 一個是對知識的掌握足夠嗎?
  • 另外一個是剛纔學到的新技術會不會很快忘掉?

  這裏我建議一個方式就是作微服務案例,經過案例來滾動整合先前的技術。咱們能夠先用每個技術搭建一個獨立的服務,而後再把由不一樣技術搭建的微服務整合起來。

  

  舉個例子,當你學完ssh的時候,就用ssh搭建一個用戶管理的服務,學完ssm的時候就用ssm搭建一個支付結算的服務,學完spring後搭建一個購物服務,再經過rpc技術和其餘服務整合起來。

  這麼作一方面能夠經過動手開發的方式來作項目,讓咱們對已有的技術進行一個查漏補缺,由於在開發這些微服務案例的同時,你就會清晰的認識到這些技術裏邊哪些是重點,哪些又是本身當初在學習室給遺漏掉的。

  另外一方面,這種微服務項目能夠保持咱們對技術的一個新鮮度,好比說ssh,多是你半年前已經實現好了,如今和spring聯調的過程當中,你天然也會對半年前的ssh進行一次複習了,那能夠解決剛纔的第2個問題就是防止遺漏的問題了。

  到這裏相信你們已經掌握了一種持續學習的方法了,這裏的持續自己包含迭代和複習鞏固在裏面。

強化學習也能夠理解爲整合學習,是一種複習也是一種補漏,交叉螺旋上升,是在深度學習基礎上的進一步鞏固和強化,也是對知識的的一種水平延展。若是說深度學習目的是爲了理解深入,那麼強化學習要達到的是持久化,由於別忘了記憶是有遺忘曲線的。強化得越多,基礎也紮實,可能的創新也會更充分。

技術難點

  最後再給你們討論一下,如何學習技術難點,咱們能夠將技術難點分爲兩類:

  1. 一類是偏理論的
  2. 一個是偏實戰的

偏理論

  像數據結構和算法、設計模式以及架構設計等一些技術,都是較爲難以理解的偏理論型。這些技術也常常是處於開發者在進階路上的絆腳石,那我應該如何才能順利的跨越這些障礙呢?

  我認爲能夠採用先拆解目標在集中消化的方式來學習,舉個例子對於算法設計模式等一些難以理解的技術來講,儘可能不要想着花一週或者一個月就把他們完全搞定了,而應該先計算一下這些知識的數量,而後用碎片化的時間去學習。  

  

  舉個例子,假設你想要學習算法,那首先要先計算一下這些算法一共有幾個,好比說有30個,那就把這些算法再根據難易程度進行排序,有了這些難易排序以後,咱們就能夠用碎片化的時間將30個算法逐個進行攻破。

  好比在上下班的地鐵之上,在晚餐後的半小時,或者說在睡前的一段時間,利用一些碎片化的時間去學習某一個算法,若是能真正的加以高效利用起來,相信你必定可以在不知不覺裏邊克服不少難點,從而減小對難點的爲難情緒。

  若是難點攻克差很少了,那此時就能夠採用一個比較集中的時間,將它完全消化掉。

偏實踐

  接下來咱們再聊一聊,如何學習篇實踐性的難點技術,這裏稱之爲實踐,是由於有些技術必須藉助於開發工具來追蹤代碼或者調試才能掌握的,好比說閱讀一個框架的源代碼,就是學習偏實踐型技術的一個典型表明了。

  對於偏實踐性的技術學習,最主要的就是要在實踐以前,內心邊已經對要實踐的內容有了清晰的基礎理論了,實踐僅僅是一種揭曉謎底的過程。

  這裏給你們換一下我當時學mybatis框架時的一些狀況吧,當時在我閱讀mybatis框架源碼以前,我已經對這個框架應用比較熟悉了,所以我清晰的知道mybatis執行的步驟和流程。

  

  如今僅僅是想經過閱讀源碼,親眼見證一下它的底層究竟是怎麼實現的而已,因而我經過開發工具,經過debug進入的源代碼……

  固然考慮到每一個人對技術的基礎掌握是不同的,每門技術也有很大的不一樣,因此不一樣的人在不學習不一樣的技術可能會存在不少的差別,但我相信這個學習新技術的總體思路是一致的,就能夠先經過快速的總體閱讀,而後逐步積累逐步深刻,能夠說這應該是一個比較不錯的學習方法吧

學習氣氛

線下共同窗習

  在不少時候開發者的學習時間都是比較孤獨的,都是一我的趴在電腦前,必定程度來說,我的學習的氣氛其實是沒有團體好的,你們能夠回想一下是否是在高中的自習室,或在大學的圖書館裏的學習系統就比較好呢?

  因此若是你有不少志同道合的朋友,那麼徹底能夠邀請他們來一同窗習,所謂獨學而無友則孤陋而寡聞。

線上分享學習

  若是不方便,你也能夠註冊一個微信公衆號或者說技術博客,再或者也能夠將本身學習的一些項目部署在雲端,而後開放給你們一同來訪問。

  總之,重點就是要想辦法將本身的學習成果分享出來,讓你們一塊兒來閱讀一塊兒來訪問,一塊兒來監督你的學習,而且你也能夠經過留言功能與你們進行一個互動。

  若是你是講師,也能夠把本身學到一些知識錄成視頻分享出去,我相信若是你堅持這麼作,除了可以營造自學的氣氛之外,還能夠將本身學到的基礎沉澱下來,慢慢的也會爲本身吸引到一批技術愛好者,從而提高本身的影響力,是否是一舉多得呢?

總結

今天的分享到這裏就結束,最後再總結一下:

  • 在學習新技術時咱們能夠先快速的瞭解一下技術的宏觀內容,觀其大略,找到其中的套路和代碼流程或者模板。
  • 而後從hello world開始,逐步搭建一個案例庫,經過案例倒逼本身深刻學習,從而掌握技術的廣度和深度
  • 當案例後搭建完畢之後,再經過微服務技術和其餘服務進行一個整合,從而造成一張更大支持網絡,不斷讓本身長期的能夠接觸到這些技術,防止遺漏
  • 對於一些偏理論性的技術能夠用碎片化的學習時間來逐個攻破,減小本身對難點技術的恐懼心理
  • 對於一些偏實踐性的基礎來講,咱們須要在實踐以前,內心已經對事件的內容有了必定的瞭解
  • 最後建議你們也能夠將本身學到的技術分享出去,作好記錄成長的同時,也能不斷的提升本身的知名度。

  以上顏羣給的更多的是學習方法,另外左耳朵耗子在《如何超過大多數人》中,從更多維度來探討學習內容,包括知識來源,學習方法,具體操做三個維度,寫的也是讓人拍案叫絕。

知識來源

  • 信息渠道
  • 信息質量
  • 信息密度

學習方法

  • 知識樹
  • 知識原因
  • 方法套路
  • 學習金字塔(是一種認知也是一種具體方法)

技能打磨

  • 刻意練習,精益求精
  • 故意犯錯
  • 和高手過招

學習的目的不是爲了尋找答案,而是尋找方法,只有方法纔是事半功倍的。我常想吳軍爲何會那麼多才,在知識的深度和廣度上作到兼得,必定是有過人的學習方法。並經過這種先進的方法持續的學習和積累。從清華畢業後去美國約翰霍普金斯大學留學,而後進入谷歌搜索,成爲一名計算機科學家。作投資的同時,又寫有《數學之美》 、《浪潮之巔》、《文明之光》、《大學之路》、《態度》《全球科技通史》、《硅谷之謎》、《智能時代》、《硅谷來信》等等。

 參考資料

相關文章
相關標籤/搜索