ADZ 學習筆記

Ruby/Rails, Startup, Life

有效率學習一門技術的訣竅 - 讓需求引導學習

| Comments

繼上篇 閱讀:練習 1:9 後,如果大家能認同練習的重要性,接下來遇到的就是怎麼安排學習路徑的問題。

從需求到技術

我們教育最大的問題在於分科制度,在還不知道為什麼的情況下學了國文、數學、計算機概論。這種教育方式設計的目標是希望這些知識最後拼湊起來可以組合出不同領域的人才。這種方式的弊病來自於上篇提到的想法:「這個時代我們更缺乏 能夠掌握的知識 而不是停留在 level 1 的理解」。

所以更好的方式是拋棄以往分科的方式,以需求帶領學習。開始問自己最想做什麼? 想自己寫一個 blog? EC平台? 為解決某某某問題而存在的軟體?

一旦有了需求,心中自然就會產生這個產品的畫面,然後很快就會遇到第一個問題:「我要怎麼在網頁上呈現我要的畫面」,從這個起點開始不要多也不要少的去吸收知識,然後實作。

從需求出發到最後完成一個成品,你會發現做一個簡單的網站會用到各個領域一點點的知識,在過程中得到的成就感也能夠抵銷你的挫折感,讓你能夠持之以恆,甚至最後的成品自己還用得上。

我的另一個觀察是,很多 課本的信眾們 不理解現在常用的架構和 pattern 都是從真實需求經過非常多的取捨演變來的,那只是個基礎模型,不是絕對也無法套用在各種情境。通常這些東西是有非常大的 討論空間,而討論到最後提出解決問題的過程才是真正價值的所在,經歷這段從需求到解決的過程中,等於是你參與了設計、跟所有取捨,價值不只是技術上而已。

氣宗還是劍宗?

起初我認為軟體設計的基礎功非常重要,於是我在 kaohsiung rails meetup 試著教新手資料型態、物件導向 (class, abstract class, instance, method, variables, property, interface, inherit) 和 http protocol/header 瀏覽器怎麼和伺服器溝通、cookie 怎麼建立識別身份、可能存在的風險有什麼 ... etc,但這種教學方式試到最後發現效果非常差。

回頭想想,我當時也不是先打好基礎才開始寫程式,而是需要什麼學什麼,但我現在卻反過來覺得應該要先懂基礎才能開始寫程式好像不太對。我想這個過程是:「當走過基礎學習期會開始覺得 基礎超重要,所以想建議新手打好基礎,但對新手來說,從無趣的基礎學習起實在太難了太容易放棄了」。

所以個人認為最好的方式還是從 需求實作、最後回到 基礎

系列文章

  1. 有效率學習一門技術的訣竅 - 閱讀:練習 (1:9)
  2. 有效率學習一門技術的訣竅 - 讓需求引導學習
  3. 有效率學習一門技術的訣竅 - 避開學習障礙
  4. 有效率學習一門技術的訣竅 - 當個容易被幫助的人
  5. 有效率學習一門技術的訣竅 - 突破靠想像力

Comments

comments powered by Disqus