上一篇文章 軟體開發中的“無緒” 介紹了無緒的概念,講的是軟體開發的過程中,應該思考如何讓程式的使用者可以無緒。
這篇則是延伸無緒的概念,講解開發人員自學的時候,如何找出新技術背後的知識,並且堆疊知識。
正文開始
軟體技術的發展都是基於無緒的,每個無緒的新技術中總會埋藏一些知識。如果每一項新技術都是新的知識,那我們就只能把每項技術都試過一遍,才能將技術轉化成知識。這樣的學習方法沒辦法用過去的經驗來學習新技術,導致較低的學習效率。
幸好人類的大腦有傑出的 抽象能力,也就是我們常說的推理、歸納、一般化、舉一反三等等,意思都差不多。
學習一項新技術時,試著將技術「抽象」一下,排除不相關的細節,找出技術背後的知識。
通常可以透過下列三個問題來找出技術背後的知識:
- 技術的本質是什麼?
- 想解決什麼問題?
- 前置知識是什麼?
挖掘技術背後的知識與思維
知識總是會和無關緊要的細節糾纏在一起,當知識和細節糾纏在一起時,知識只能被應用在狹窄的情境。當你從技術歸納出背後的知識時,會發現有許多技術的知識本質是相同的。這幫助你在學習新技術時,能夠看透新技術無緒的表面,推理出新技術內部的原理。理解內部的原理後,新技術也只剩下外面一層皮,學習速度自然加快許多。
學習新知識時也要盡量學習作者的思維。去了解作者為什麼要這樣設計,以及學習作者如何設計;學會這些思維層面的知識,會幫助「未來的你」進行思考。遇到新技術或問題時,會有更多推測與決策的能力。
重視知識的本質
對一個開發人員來說非常重要,海量的新技術總是不斷的成長,讓很多人感嘆跟不上新技術。新技術數量的不斷成長的對策,就是 抓住不變的知識。大量的新技術其實只是一層皮,支撐在背後的技術跟知識都是數十年來不變的東西。演算法及資料結構不會過時;程式設計理論1不會過時;開發論及方法論2不會過時;良好的編寫程式習慣3永遠不會過時;分析問題與決策4的能力不會過時…
因此在學習新技術的同時,也別忘了閱讀軟體界大神們的 經典書籍 以及上述 不變的知識。因為這些和思維相關的知識,能夠幫助我們進行更好的決策、學習、判斷與知識堆疊。
文章內容整理自以下書籍並加以歸納與簡化: