學習一門技術,看見進度條,從新手到大師
為什麼需要學習如何學習一門技術
在學習一門技術,尤其是再程式領域中的技術,有太多的領域,沒有學習完的一天,而對於一個新手來說,一門技術就要耗費很多的時間,當我們看到什麼都會的大神時,也不免會疑問,「怎麼可能學會這麼多東西」
尤其是像我一樣半路出家,不完全資訊本科科出生(電機系),在面對浩瀚的知識中,也曾經一臉矇,慢慢摸爬捆打下,才站穩腳跟
而在實際工作中,需要快速掌握一門技術,所以總結一個學習方法,才是有效率的做法
新手到大師的路徑
下圖為一門技術當中,成為大師的路徑,看起來像一個漏斗
橫向廣度的表現是對整個技術的整體架構感,這部份不用花很多的時間變可以掌握縱向深度的表現是很多很多的細節,是體現一個工程師水平的地方,越深表示實力越好

1. 了解新技術是要解決怎樣的問題
我們看一下新技術的誕生過程,這可以幫助我們知道為何了解新技術解決了怎樣的問題是重要的
新技術的誕生
- 新的需求,讓我們在開發專案時,要解決一個問題
- 先看看現有技術能否解決問題
- 使用傳統方法,但是不夠好
- 發展出新技術
我們可以看到,新技術之所以出現,源頭是為了要解決新的需求,也就是要解決某個特定的問題,所以在學新技術時的第一步,就是要知道它要解決怎樣的問題,這對於我們學習有打地基一般的作用
在很多課程或書籍的開頭,有時候會提及一些發展歷史,幫助我們了解,而有時候只是累贅
2. 了解新技術的知識
可以快速上手,但這裡不涉及技術細節,在這裡很多人被琳瑯滿目的技術細節弄的眼花撩亂,卻無法真正吸收到知識,在這個階段要
丟棄所有細節,才能最有效率的學習,不耽誤時間
- 運作原理
- 基本語法
- 基本使用方式
對基本知識到一定的了解,會有對技術的
框架感,這在之後研究技術細節時,才會在這個基本框架上往上蓋
3. 研究新技術的細節
體現一個工程師的水平的地方,範圍非常的廣,這也是資深工程師優勢所在
- 怎麼使用更加規範
- 使用陷阱
- 需要使用時,要注意甚麼
…等等更多方面
4. 更多更深的細節,直到有一天成為大師
技術入門的方針
以上路徑,只要順序錯誤,就容易會讓學習卡關,變得緩慢,總結以下方針,提高學習效率
- 先建立一個整體框架,然後才研究細節
- 整體框架是掌握了『2. 了解新技術的知識』,所以要加快學習速度,需要排除掉所有細節
先 know how,在 know why,先知道怎樣用,在知道運作原理,很多 know why 都是在討論技術的細節- 取得通俗易懂的教材,讓學習的過程高效且愉快,如果教材梯難度太高,很容易卡住,影響情緒也效率不高
- 程式語言是做中學的科學,不是會再做,而是做了才會
- 學習程式是在琢磨別人怎麼做,不是我認為應該怎麼做