本文對《軟技能:代碼以外的生存指南》書中的「十步學習法」展開討論,該書做者是John Z. Sonmez,一名程序員,書中有不少面試、專業等建議。有一些建議相見恨晚。某天在喵哥羣裏看到了本書的推薦,很是感謝推薦。程序員
本文末尾附上了John Z. Sonme推薦的書單(自我提高、軟件開發、投資類),感興趣的能夠看一下。面試
雖然本書說的是「程序員必備的軟技能」,但我認爲這是全部職業都通用的軟技能。該書中總共分紅七個部分,分別是:職業、自我營銷、學習、生產力、理財、健身、精神。我作了下面的思惟導圖,能夠歸納個大概,能夠根據須要隨意讀取某個章節:
編程
本書總共71篇文章,能夠把每一篇都當作一篇高質量的博客,也就是說若是你可以寫出71篇高質量的博客,你也就可以出書了(手動狗頭)。json
這位做者老哥很會玩,他有本身的youtube頻道,網址youtube.com/jsonmez 我點進他的油管主頁看了一下,好傢伙,做者本人仍是個猛男:
設計模式
你是否是和我同樣,學習知識的時候就喜歡拿着一本書「從封面到封底」仔細閱讀,這樣能夠學到東西,可是效率很低。由於咱們每每只會用到書中的一部份內容而已,沒用到的內容會迅速忘記。這是關鍵,沒用到的內容會迅速忘記……經過不一樣的方法,對於知識的掌握程度也不一樣,能夠參考下面這張圖:
網絡
僅僅經過閱讀,學習信息的留存度只有10%。由於咱們並無掌握那些沒被用到的知識。學到了某個知識,叫懂得;練習過學到了的知識,這叫掌握。掌握了的,不容易忘。編程語言
懂得不少道理,可是依然過很差這一輩子。——由於這些道理只是頭腦上的懂得,但並無身體力行的掌握……學習
學習二字,學——頭腦上的懂得,習——頭腦和身體上的練習。練習中的體驗,極大加深了該知識的記憶。咱們都有背單詞的經歷,但真正掌握這個單詞的時候,仍是和這個單詞在某個地方不期而遇時,好比某一天下午你在看國外新聞時,看到了這個單詞,這個時候才發現這個單詞還有這個用法。咱們學會了使用它,直接用它,也就記得了它。設計
十步學習法以下:
3d
不要被這麼多步驟給嚇到了哈,總共分紅兩個部分:
第一步到第六步:學習前的準備部分,即爲前期調研以及設定目標。
第七步到第十步:學習過程部分,即這四步:學習-實踐-學習-分享教授(Learning, Doing, Learning, and Teaching)
這些年有個很流行的認知的四個階段:不知道本身不知道什麼、知道本身不知道什麼、知道本身知道什麼、不知道本身知道什麼。
「瞭解全局」就是從第一階段到達第二階段的過程。若是想要學習一門編程語言,那麼首先得知道計算機的編程語言均可以作些什麼,市面上有哪些編程語言,這些編程語言之間又有什麼關係等等。關於這些咱們能夠在網上搜索一些文章,或者請教相關的人,瞭解個全局。
等到咱們瞭解個差很少的時候,咱們終於知道了這些東西大概是個什麼,可是具體是啥咱們是不知道的。這就進入了「知道本身不知道什麼」的狀態。
瞭解全局是必要的,以下面:
若是咱們按照圖的上半部分,在沒有了解全局,就開始精細地學,這樣恐怕不會持久。
可是像下半部分那三張圖同樣,先了解一個模糊的大局,再逐漸精細地瞭解,這樣的效果會更好
咱們大體瞭解全局以後,須要肯定範圍。由於計算機知識浩如煙海,咱們沒法掌握所有——窮盡一輩子也不可能。甚至就算單是學習一門編程語言,好比若是想要精通C++,那沒個好幾年是不可能的。可是我如今的學習時間只有一兩週,那隻能把範圍縮小,這樣的範圍能夠是,使用學習某個編程語言中的:
短期內咱們能夠聚焦在以上三個主題中的一個。一個主題就是一個聚焦範圍。
爲何要聚焦,咱們啃知識的過程就想打怪。還記得《灌籃高手》裏面,宮城良田是怎麼把三井壽的門牙打掉的嗎?其實三井壽是帶兄弟圍毆的,若是宮城不聚焦地去打三井,那麼他就會被圍毆的毫無還手之力。
咱們打知識也要聚焦,否則會被知識圍毆地毫無還手之力。
肯定一個小範圍以後能夠定一個小目標,好比下面的任意一個都是小目標:
學習一個知識點的時候,最好不要就只用一本書,能夠參考不一樣各個書上的指定的章節,由於不少時候不一樣的書都在描述同一個東西,可是描述的角度不同。
當咱們從A角度看某個東西的時候,可能會消除在B角度看相同東西時產生的那個疑惑。儘量尋找更多資源。
信息來源:
建立學習計劃,就算咱們已經在第2步裏面縮小了學習範圍,可能這個範圍內還有好比六個如A,B,C,D,E,F個知識點,而有些知識點是最基本的,好比知識點A,全部其餘知識點B、C、D都依賴於A。這個時候咱們確定要學最基礎的A,再學其餘不那麼基礎的點。
就像上圖中的螺旋上升的階梯,往上的階梯須要穩固的基礎,也就是一個起點。
不少時候能夠直接參考書的目錄,基礎的點都在前面,進階的內容都在後頭。
由於咱們在第4步的時候已經尋找了不少資源,那麼這個時候能夠進行篩選,去掉重複性比較多的,或者不太適合本身的那些書,找出最物超所值的那幾本——能夠看看網絡上對該書的評價。
以上學習前的準備過程就差很少了,接下來就是學習過程,學習-實踐-學習-分享教授(Learning, Doing, Learning, and Teaching)。
這一步的學習是爲了下一步的「動手操做」。
這個時候咱們就要清楚地知道,爲了下一步的操做,咱們須要的「最小量的啓動知識」有多少。度很關鍵,學太多或者學太少都影響效率。
若是是學習代碼,這一步能夠按照示例代碼本身試一遍,或者本身改一遍。
若是是學習英語單詞,就使用這個單詞造句、練習發音,並根據不一樣的釋義想象能夠在什麼場景下可使用。
以上過程也是根據不一樣的例子來強化本身的記憶。我知道有一個挺有名的程序員章亦春,他喜歡在學習的時候,手抄代碼。第一次聽到這事的時候,我震驚了,手抄,那效率得有多低?後來我在刷leetcode的時候,遇到看不懂的那些題解代碼,複製粘貼後上程序跑一遍仍是不懂。而後我就在紙上手抄這些代碼,抄着抄着的過程,居然真的慢慢懂了,真香!
咱們可能會在上一步的操做過程當中遇到問題,這個時候能夠回到資料裏面,去尋找答案。又或者這個時候咱們再看以前看過的內容,也會有不一樣的體會。
原書中是這樣寫的:
你能夠用多種方式將本身所學教給他人。你能夠寫博客,也能夠製做YouTube視頻。你也能夠跟本身的愛人探討,將本身所學解釋給他/她。重點在於,你要花時間將本身學到的東西從大腦中提取出來,以別人可以理解的方式組織起來。在經歷了整個這個過程以後你會發現,有不少你覺得本身明白了的知識點,其實並無摸透。因而你會將那些之前本身沒太明白的東西聯繫起來,而且簡化本身大腦中已有的信息,將它們濃縮並常常複習。
費曼學習法也大概是這個意思,諾貝爾物理獎得主費曼說:「若是你沒有辦法用簡單的語言表述你所學的知識,你就沒有真正學會它。」著名的費曼學習法,推崇以教爲學。
這段視頻解釋得至關透徹:爲何費曼技巧被稱爲終極學習法
首先咱們經過練習大量的例子,從而總結出這些例子的通用規律。而後將這些例子以他人聽得懂的方式表述給他人,在這個過程當中你再一次對這個通用規律進行了總結——或者說壓縮。同時在表述的過程當中,進行了邏輯上的驗證。
有時候,邏輯驗證會出現卡殼,會發現有不少你覺得本身明白了的知識點,其實並無摸透。
這還沒完,在表述給別人的時候,別人會產生疑問,這時候能夠將別人的例子,套用在你已經總結出的規律中,進一步驗證這個規律的準確性。
分享知識的途徑:
只要善於總結,就超越了不少人。當年RTS遊戲盛行的時代,WAR3(魔獸爭霸3)遊戲的王者,中國人皇SKY李曉峯。他當年在網吧接受採訪的時候,秀出了他一個記滿技術要點的小本子,這是他對很不少場對戰的關鍵總結。說實話,字寫得真的醜,寫的句子也和「文筆」兩字絲絕不沾邊,但這並不能阻止他成爲世界人皇。
最後,祝各位前程似錦。
文末附上原書《軟技能:代碼以外的生存指南》做者推薦的書籍彙總。各位也能夠參考以上學習方法,選擇某一主題的書,進行學習哈。