<rp id="kbk7q"></rp><th id="kbk7q"><track id="kbk7q"></track></th>
<dd id="kbk7q"></dd><progress id="kbk7q"><pre id="kbk7q"></pre></progress>

  • <th id="kbk7q"><pre id="kbk7q"><sup id="kbk7q"></sup></pre></th>

  • <dd id="kbk7q"><pre id="kbk7q"></pre></dd>

    <rp id="kbk7q"></rp>
  • 您的位置:知識庫 ? 程序人生

    技術的學習與練習

    作者: Phodal Huang  發布時間: 2019-03-22 21:25  閱讀: 2111 次  推薦: 41   原文鏈接   [收藏]  

      隨著工作年限的增長,經驗的不斷豐富,我開始尋找下一階段的個人發展目標。作為一個學習者,在過去的幾年里,成果大抵是卓有成效的。可無論是學習還是應用新的技術,都需要一個短暫的學習與練習,才能獲得相應的經驗。這就造成了一個沖突,日益增長的技能需求,同不足的時間之間的矛盾

      練習不練習?練習的話,又得練習多少?怎么練習?

      在時間限制的情況下,我們要怎么去解決這些問題?

      練習式學習

      我的模式比較固定,一般是就是這么幾步:

    • 實踐一些新的技術和概念(要比其它人快半步)
    • 抽取這些技術和概念,造建一個新的輪子
    • 把造輪子、實踐的過程寫成文章
    • 系統性的把這些文章整理成電子書

      這個模式從我畢業一直玩到現在,不敢說對所有人都適用,但是對我的效果倒是相當的不錯。所以,大可以稱之為 Phodal 學習模式。

      如我最近半年研究的 Serverless 和微前端都是采用同樣的模式,AWS 可以使用 Node.js 來開發 Serverless 應用。

      Serverless。我先實踐用 AWS 玩 Serverless 的一系列玩法,在我的 GitHub 上堆了一堆相關的代碼,然后輸出了一系列的文章:phodal/serverless,方便后人學習和 star(我就是這么雞賊)。本來我打算自己造個 Serverless 的輪子,但是涉及的知識太廣了,一個人短期內造不過來就放棄了。

      微前端。仍然的,我也是找到 Single-SPA 這樣的框架,進行一些嘗試。然后造自己的輪子:phodal/mooa,接著輸出一系列相關的文章:phodal/microfrontends,方便后人學習和 star。于是,我繼續在探索微前端的實踐,最近在造一個新的輪子。

      基本就是:先無腦地輸入,再總結、思考輸出,最后系統性整理。

      整個過程下來,會發現它會不斷地提高我們的抽象思維能力(或者說總結能力)。我們需要不斷的整理現有的知識,然后將它與過去的內容進行對比。一來二去,不但提高了新技能的掌握,還復習了一下舊的知識。

      于是,你是否也發現了問題,這種練習方式特別浪費時間

      練習技巧

      在這個過程中,我掌握了三種還算不錯的練習技巧:直接造新輪子 + 輸出反饋下一個輸入

      直接造新輪子

      實際上,這部分是上面的模式中的一部分。學習,意味著我們掌握再有的輪子。破,即我們在現有的輪子上創新。這并不意味著,我們是在學習新技術之后,再去創造一個新的輪子。即在練習后,再去深入了解相關的知識。

      有很多時候,我們可以直接拿要學習的新框架、新技術,它對于我們理解新的技術來說更有幫助。這種方式可以讓我們有足夠的動力,以讓我們深入了解技術本身的一些實現。

    • 在學習 Virtual DOM 的時候,我寫了測試代碼生成框架 Luffa。在邊實現的過程中,我需要不斷地修改 Virtual DOM 的代碼。
    • 在學習輕量級架構決策記錄的時候,我寫了相應的 Node.js 版本的工具 ADR。是的,我也是在學習相關概念的過程中,造了新的輪子。

      同樣的,這種方式的學習,也會花費大量的練習時間。如果你的時間越來越緊張,那么這種方式可能也不適合你了。

      回顧:輸出反饋下一個輸入

      由于,新的技術一般需要有 1~N 個月左右的學習時間,我們才能掌握得差不多。這里的時間對應的是業余時間的學習,即使我在不加班的情況下,我覺得至少還需要這么長的時間。于是,每次練習的時候,如果我們不能高效的學習,花費的時間就更多。一年下來,我們所能掌握的新技能也是有限的。

      于是,我們需要類似于敏捷的方式來改善自己的學習方法,即回顧。每次練習完,回顧一下這個周期里做得如何。然而,我通常是進入下次練習的時候,才會總結上一次的練習經驗。思考這些經驗,將其用于設計計劃上。

      休息開啟儀式感

      在一個正常人的眼里,工作和生活是分開的。在這之間需要有一個界限的,盡管隨著 Title 的升高,這種界限可能會變得模糊。但是,在未來的一二年里,對于我來說是不會發生這種事情的。所以,在生活與工作之間便是有一個明顯的界限。盡管偶爾會有一二個技術問題困擾我,讓我回家也在思考工作,但是總得來說時間不多。

      晚上六七點回到家里,基本上就是非工作狀態了,我可以吃個飯,看會美劇,然后休息會眼睛,接著在八點左右開始業余技術的生活了。在這段休息時間里基本分開了兩段時間。

      一個儀式性的休息就這么愉快地切換過來了。

      翻譯改善學習

      在一年前,我嘗試過一種新的方式,翻譯技術文章來學習新的知識。而翻譯的時間,則集中在工作時候的午休時間里,大家都在休息、游戲、睡覺,稍微減短一下休息時間。我就獲得了翻譯一篇文章的時間,于是我用這些時間來翻譯一些物聯網相關的文章。累計到今年的三月初,最后大概翻譯了 180 篇文章左右,差不多是半年的跨度。

      在這段時間里,我快速、低成本的獲得了大量物聯網、智能音箱、智能家居領域相關的知識,構建了整個生態的相關索引。并且用這些內容構建了一個網站:玩點什么,我便擁有了一個豐富的知識儲備圖庫,也掌握了豐富的知識。

      唯一的問題是:沒有成就感。是的,翻譯別人的文章是沒有成就感的一件事。盡管在翻譯文章的過程中,我們在不斷以作者的角度來看待問題,但是歸根到最后我們不是作者。我們成了一個為了布道而翻譯的布道者,而不是在寫文章的同時,順便成為了一個布道者。

      寫作驅動學習

      為了提高學習知識的效率,我曾經采用 “寫作驅動學習” 的套路,即以輸出為向導的輸入——以追求學習金字塔的高效留存率。

      它是將實踐作為學習的輔助,而不是以實踐為基礎的輸出。但是這種方式對我的體驗不好,我是在為結果而練習,而不能享受整個過程。但是模式本身是一種好的模式,只是不適合自己罷了。

      如我之前的文章所說,以寫作驅動思考的學習模式,有這么一些優點:

    • 對于我們所要學習的東西,可以掌握得更深入——因為我們需要向別人解釋清楚。
    • 除去收獲所學習的東西,我們還可以有副產品——博客。
    • 我們在以另外一種方式思考問題。
    • 我們在不斷地對自己知識總結,對自己知識的一個強化。

      當然了,它也有一些缺點:

    • 可能會花費更多的時間,在諸如寫作這點事情上
    • 有時學習的結果是為了寫作
    • 付出不一定有相應的回報

      不過,對于只享受結果的童鞋來說,這種方式也是一種不錯的方法。

      未來的學習?

      過去我采用的模式,能解決我遇到的新的問題,并帶來一些額外的知識。

      而在最近幾個項目的里,我發現我不得不在沒有相關經驗的情況下,快速得到一些關于該技術、架構的“應用經驗”。為了得到更準確的結論,只能:快速收集各式各樣的資料,從中整理得出一個相對準備的結論。而作為一個資深的作者,我深知每篇技術文章在寫作的時候,作者的趨向性會影響到文章的內容。與此同時,涉及到兩個事物對比的時候,往往對于另外一個事物不是非常深入。

      因此,在這種情況下,整理資源就變得相當困難。就好比是公司內的八卦,口口相傳導致事情發生了很大的變化——作為最后一個知道的人,你知道的結果是:誰和誰在一起了,可實際上他/她們可能只是一起吃了個飯。

      學習是一種通用的技能,如果我們在 A 領域采用了某種學習方式 ,那么有些方式也能擴展到 B 領域。可是,一旦我們 GET 了一個好的方法來掌握這項技能,那大抵是能改善一下生活的質量的。

      開啟學習開關?

      在我剛結束不久的軟技能培訓里,我發現了一些軟技能是很難練習,但是他們可以觀察到的。那么,我們是否能通過這種方式來學習?

      它依賴于我們能識別對方所用的技能,然后才能學習如何去使用。

      其它方式

      你呢?有什么學習方法?

    41
    0
    標簽:學習

    程序人生熱門文章

      程序人生最新文章

        最新新聞

          熱門新聞

            中文大香蕉在线影院