[Career Guide] 如何增強技術能力 How To Develop Technical Skills
平時就會訂閱一些技術大牛的部落格來看,除了可以學到一些技術知識,更重要的是看他們做事情的方法和經驗分享。這些由經驗累積下來觀點非常重要,可以幫助我們避免再犯和他們相同的錯誤,以及學習如何快速掌握到關鍵。
其中Simple Programmer站長John Sonmez 的分享一直都對我滿有幫助的,最近看到他的新系列文章 — The Complete Software Developer’s Career Guide, 邊看忽然有想作筆記的念頭,於是就決定把自己的記錄也放在這裡。
今天看的是這系的的第3篇, 談如何增進技術能力。以下簡單記錄對自己最有啟發的部分。
優先掌握關鍵20%資訊
先找出並掌握最關鍵的那20%資料,因為很可能80%的時間都會用到它們。
作者舉了一個很好的例子:
假設要學習SQL,書上可能用同等篇幅來講selecting, inserting, updating, deleting, indexing等等。但直到實際使用過,才會發現原來大部分時間都在做selecting。
所以selecting其實才是最關鍵的重點,與其傻傻的把每個點都依序讀懂,還不如先把selecting這個點好好弄通再說。
這也是為何作者強調,把一本書從頭到尾一頁一頁K完,並不是個有效的學習方法。拼命三郎的他以前常幹這種事,浪費了好多寶貴時間。應該要先抓出重點,優先把它們弄懂。
那要怎麼樣才能知道這關鍵的20%是什麼?
從做中學!
一旦實際動手操作,就會發現關鍵在哪裡了。
所以不要只是看書,要多動手去做。
這點對我滿有啟發的,因為以前總覺得要學得夠多了,再來動手做,會做得比較好。但這裡讓我明白到,其實我應該在學了一些基本知識後,就先開始動手玩玩看。
在嘗試的過程中,我就能先親身去體驗它是怎麼一回事,從而對它有更進一步的認識,發現它的關鍵點可能落在哪裡。這過程中也會產生一些疑問,而這些疑問給了我更強烈的學習的動機,想要找到這些問題的答案,自然也讓我有了更明確的學習目標。
所以,先把玩一陣後再繼續深入學習,反而更能掌握重點。不再是漫無目的的一行行看,而是帶著想弄懂這些關鍵點,以及想搞清楚心中疑問的確切目標來學習。
站在巨人的肩膀上 — 看看高手怎麼說
看看他們怎麼做事,可以觀察到他們做事的技巧。
聽他們的看法,因為有些洞見是自己怎麼樣都想不到的。
這點我真的很有同感,很多東西自己悶著頭摸索老半天,以自己現在的經驗和能力,可能短期內怎樣也想不到經驗老到的高手所想到的方法。
這也是為什麼Design Pattern這麼有用,因為這些都是常用的模式,所以作者群GoF把它們蒐集羅列起來,方便大家參考使用。而且這些都是由經驗累積而成的,所以也是經過時間的淬煉,比較不會出現低級錯誤。
補充
John Sonmez另有兩個系列,和這裡講的也是互相呼應,也挺值得一讀:
- 5 Learning Mistakes Software Developers Make
這只要填email就可訂閱 - 10 Steps to Learn Anything Quickly
這其實是一套影片教材,如果不想花錢買,光是看看這文章裡的敘述也是有些幫助了。