程序員必會的十步快速學習法(附書單)

本文對《軟技能:代碼以外的生存指南》書中的「十步學習法」展開討論,該書做者是John Z. Sonmez,一名程序員,書中有不少面試、專業等建議。有一些建議相見恨晚。某天在喵哥羣裏看到了本書的推薦,很是感謝推薦。程序員

本文末尾附上了John Z. Sonme推薦的書單(自我提高、軟件開發、投資類),感興趣的能夠看一下。面試

雖然本書說的是「程序員必備的軟技能」,但我認爲這是全部職業都通用的軟技能。該書中總共分紅七個部分,分別是:職業、自我營銷、學習、生產力、理財、健身、精神。我作了下面的思惟導圖,能夠歸納個大概,能夠根據須要隨意讀取某個章節:
編程

本書總共71篇文章,能夠把每一篇都當作一篇高質量的博客,也就是說若是你可以寫出71篇高質量的博客,你也就可以出書了(手動狗頭)。json

這位做者老哥很會玩,他有本身的youtube頻道,網址youtube.com/jsonmez 我點進他的油管主頁看了一下,好傢伙,做者本人仍是個猛男:
設計模式

十步學習法

你是否是和我同樣,學習知識的時候就喜歡拿着一本書「從封面到封底」仔細閱讀,這樣能夠學到東西,可是效率很低。由於咱們每每只會用到書中的一部份內容而已,沒用到的內容會迅速忘記。這是關鍵,沒用到的內容會迅速忘記……經過不一樣的方法,對於知識的掌握程度也不一樣,能夠參考下面這張圖:
網絡

僅僅經過閱讀,學習信息的留存度只有10%。由於咱們並無掌握那些沒被用到的知識。學到了某個知識,叫懂得;練習過學到了的知識,這叫掌握。掌握了的,不容易忘。編程語言

懂得不少道理,可是依然過很差這一輩子。——由於這些道理只是頭腦上的懂得,但並無身體力行的掌握……學習

學習二字,學——頭腦上的懂得,習——頭腦和身體上的練習。練習中的體驗,極大加深了該知識的記憶。咱們都有背單詞的經歷,但真正掌握這個單詞的時候,仍是和這個單詞在某個地方不期而遇時,好比某一天下午你在看國外新聞時,看到了這個單詞,這個時候才發現這個單詞還有這個用法。咱們學會了使用它,直接用它,也就記得了它。設計

十步學習法以下:
3d

不要被這麼多步驟給嚇到了哈,總共分紅兩個部分:

第一步到第六步:學習前的準備部分,即爲前期調研以及設定目標。

第七步到第十步:學習過程部分,即這四步:學習-實踐-學習-分享教授(Learning, Doing, Learning, and Teaching)

第1步,瞭解全局

這些年有個很流行的認知的四個階段:不知道本身不知道什麼、知道本身不知道什麼、知道本身知道什麼、不知道本身知道什麼。

「瞭解全局」就是從第一階段到達第二階段的過程。若是想要學習一門編程語言,那麼首先得知道計算機的編程語言均可以作些什麼,市面上有哪些編程語言,這些編程語言之間又有什麼關係等等。關於這些咱們能夠在網上搜索一些文章,或者請教相關的人,瞭解個全局。

等到咱們瞭解個差很少的時候,咱們終於知道了這些東西大概是個什麼,可是具體是啥咱們是不知道的。這就進入了「知道本身不知道什麼」的狀態。

瞭解全局是必要的,以下面:

若是咱們按照圖的上半部分,在沒有了解全局,就開始精細地學,這樣恐怕不會持久。

可是像下半部分那三張圖同樣,先了解一個模糊的大局,再逐漸精細地瞭解,這樣的效果會更好

第2步:肯定範圍

咱們大體瞭解全局以後,須要肯定範圍。由於計算機知識浩如煙海,咱們沒法掌握所有——窮盡一輩子也不可能。甚至就算單是學習一門編程語言,好比若是想要精通C++,那沒個好幾年是不可能的。可是我如今的學習時間只有一兩週,那隻能把範圍縮小,這樣的範圍能夠是,使用學習某個編程語言中的:

  • 圖形界面相關的編程。
  • 文件操做相關的編程。
  • 網絡通訊相關的編程。

短期內咱們能夠聚焦在以上三個主題中的一個。一個主題就是一個聚焦範圍。

爲何要聚焦,咱們啃知識的過程就想打怪。還記得《灌籃高手》裏面,宮城良田是怎麼把三井壽的門牙打掉的嗎?其實三井壽是帶兄弟圍毆的,若是宮城不聚焦地去打三井,那麼他就會被圍毆的毫無還手之力。

咱們打知識也要聚焦,否則會被知識圍毆地毫無還手之力。

第3步:定義目標

肯定一個小範圍以後能夠定一個小目標,好比下面的任意一個都是小目標:

  • 寫出一個圖形界面
  • 用程序操做文件
  • 用程序進行PC之間的通訊。

第4步:尋找資源(學習材料)

學習一個知識點的時候,最好不要就只用一本書,能夠參考不一樣各個書上的指定的章節,由於不少時候不一樣的書都在描述同一個東西,可是描述的角度不同。

當咱們從A角度看某個東西的時候,可能會消除在B角度看相同東西時產生的那個疑惑。儘量尋找更多資源。

信息來源:

  • 圖書
  • 博客文章
  • 在線視頻,公開課
  • 詢問這方面的專家
  • 播客
  • 源代碼
  • 示例項目
  • 在線文檔
  • 各類網頁
  • 付費視頻、課程

第5步:建立學習計劃

建立學習計劃,就算咱們已經在第2步裏面縮小了學習範圍,可能這個範圍內還有好比六個如A,B,C,D,E,F個知識點,而有些知識點是最基本的,好比知識點A,全部其餘知識點B、C、D都依賴於A。這個時候咱們確定要學最基礎的A,再學其餘不那麼基礎的點。

就像上圖中的螺旋上升的階梯,往上的階梯須要穩固的基礎,也就是一個起點。

不少時候能夠直接參考書的目錄,基礎的點都在前面,進階的內容都在後頭。

第6步:篩選資源

由於咱們在第4步的時候已經尋找了不少資源,那麼這個時候能夠進行篩選,去掉重複性比較多的,或者不太適合本身的那些書,找出最物超所值的那幾本——能夠看看網絡上對該書的評價。

第7步:開始學習,淺嘗輒止

以上學習前的準備過程就差很少了,接下來就是學習過程,學習-實踐-學習-分享教授(Learning, Doing, Learning, and Teaching)。

這一步的學習是爲了下一步的「動手操做」。

這個時候咱們就要清楚地知道,爲了下一步的操做,咱們須要的「最小量的啓動知識」有多少。度很關鍵,學太多或者學太少都影響效率。

第8步:動手操做,邊玩邊學

若是是學習代碼,這一步能夠按照示例代碼本身試一遍,或者本身改一遍。
若是是學習英語單詞,就使用這個單詞造句、練習發音,並根據不一樣的釋義想象能夠在什麼場景下可使用。

以上過程也是根據不一樣的例子來強化本身的記憶。我知道有一個挺有名的程序員章亦春,他喜歡在學習的時候,手抄代碼。第一次聽到這事的時候,我震驚了,手抄,那效率得有多低?後來我在刷leetcode的時候,遇到看不懂的那些題解代碼,複製粘貼後上程序跑一遍仍是不懂。而後我就在紙上手抄這些代碼,抄着抄着的過程,居然真的慢慢懂了,真香!

第9步:全面掌握,學以至用

咱們可能會在上一步的操做過程當中遇到問題,這個時候能夠回到資料裏面,去尋找答案。又或者這個時候咱們再看以前看過的內容,也會有不一樣的體會。

第10步:樂爲人師、融會貫通

原書中是這樣寫的:

你能夠用多種方式將本身所學教給他人。你能夠寫博客,也能夠製做YouTube視頻。你也能夠跟本身的愛人探討,將本身所學解釋給他/她。重點在於,你要花時間將本身學到的東西從大腦中提取出來,以別人可以理解的方式組織起來。在經歷了整個這個過程以後你會發現,有不少你覺得本身明白了的知識點,其實並無摸透。因而你會將那些之前本身沒太明白的東西聯繫起來,而且簡化本身大腦中已有的信息,將它們濃縮並常常複習。

費曼學習法也大概是這個意思,諾貝爾物理獎得主費曼說:「若是你沒有辦法用簡單的語言表述你所學的知識,你就沒有真正學會它。」著名的費曼學習法,推崇以教爲學。

這段視頻解釋得至關透徹:爲何費曼技巧被稱爲終極學習法

首先咱們經過練習大量的例子,從而總結出這些例子的通用規律。而後將這些例子以他人聽得懂的方式表述給他人,在這個過程當中你再一次對這個通用規律進行了總結——或者說壓縮。同時在表述的過程當中,進行了邏輯上的驗證。

有時候,邏輯驗證會出現卡殼,會發現有不少你覺得本身明白了的知識點,其實並無摸透。

這還沒完,在表述給別人的時候,別人會產生疑問,這時候能夠將別人的例子,套用在你已經總結出的規律中,進一步驗證這個規律的準確性。

分享知識的途徑:

  • 寫博客文章
  • 建立視頻教程
  • 發表演講
  • 與朋友或愛人進行對話探討
  • 線上或者線下回答他人的問題

只要善於總結,就超越了不少人。當年RTS遊戲盛行的時代,WAR3(魔獸爭霸3)遊戲的王者,中國人皇SKY李曉峯。他當年在網吧接受採訪的時候,秀出了他一個記滿技術要點的小本子,這是他對很不少場對戰的關鍵總結。說實話,字寫得真的醜,寫的句子也和「文筆」兩字絲絕不沾邊,但這並不能阻止他成爲世界人皇。

最後,祝各位前程似錦。

最後的最後附書單

文末附上原書《軟技能:代碼以外的生存指南》做者推薦的書籍彙總。各位也能夠參考以上學習方法,選擇某一主題的書,進行學習哈。

自我提高和勵志類圖書

  • Steven Pressfield的The War of Art [Black Irish Books, 2002]
  • Dale Camegie的《人性的弱點》(How to Win Friends and Influence People)[Gallery Books, 1998再版] 沒錯就是卡耐基的書,英文名直譯有點意思:若是得到朋友和有影響力的人
  • Napoleon Hill的《思考致富》(Think and Grow Rich)[Wilder Publications, 2007]
  • Maxwell Maltz的《心理控制方法》(PsychoCybemetics)[Pocket Books, 1989再版]
  • Norman Vincent Peale的《積極思考就是力量》(The Power of Positive Thinking)[Touchstone 2003再版]
  • Ayn Rand的《阿特拉斯聳聳肩》(Atlas Shrugged)[Signet, 2005再版]

軟件開發類圖書

  • Steve McConnell的《代碼大全》
  • Robert Martin的 《代碼整潔之道》
  • Eric Freeman, Elisabeth Robson, Bert Bates和Kathy Sierra的《Head First設計模式》

投資類圖書

  • Gary Keller的The Millionaire Real Estate Investor [McGraw-Hill, 2005]
  • Robert Kiyosaki的《富爸爸,窮爸爸》
  • Kerry Given的No-Hype Options Trading: Myths, Realities, and Strategies That Really Work [Wiley, 2011]

相關文章
相關標籤/搜索