iT邦幫忙

0

自學時應該看破“無緒”

上一篇文章 軟體開發中的“無緒” 介紹了無緒的概念,講的是軟體開發的過程中,應該思考如何讓程式的使用者可以無緒。

這篇則是延伸無緒的概念,講解開發人員自學的時候,如何找出新技術背後的知識,並且堆疊知識。

正文開始

軟體技術的發展都是基於無緒的,每個無緒的新技術中總會埋藏一些知識。如果每一項新技術都是新的知識,那我們就只能把每項技術都試過一遍,才能將技術轉化成知識。這樣的學習方法使我們沒辦法用過去的經驗來學習新技術,導致較低的學習效率。

幸好人類的大腦有傑出的 抽象能力,也就是我們常說的推理、歸納、一般化、舉一反三等等,意思都差不多。

學習一項新技術時,試著將技術抽象一下,排除不相關的細節,找出技術背後的知識。

通常可以透過下列三個問題來找出技術背後的知識:

  1. 技術的本質是什麼?
  2. 想解決什麼問題?
  3. 前置知識是什麼?

知識總是會和無關緊要的細節糾纏在一起,當知識和細節糾纏在一起時,知識只能被應用在狹窄的情境。若歸納出技術背後的知識,就會發現有許多技術的知識本質是相同的。這幫助你在學習新技術時,能夠看透新技術無緒的表面,推理出新技術內部的原理。只要理解內部的原理,新技術也只剩下外面一層皮,學習速度自然加快許多。

學習新知識時也要盡量學習作者的思維。去了解作者為什麼要這樣設計,以及學習作者如何設計;學會這些思維層面的知識,會幫助「未來的你」進行思考。遇到新技術或問題時,會有更多推測與決策的能力。

重視知識的本質

對一個開發人員來說非常重要,海量的新技術總是不斷的成長,讓很多人感嘆跟不上新技術。新技術數量的不斷成長的對策,就是 抓住不變的知識。大量的新技術其實只是一層皮,支撐在背後的技術跟知識都是數十年來不變的東西。演算法及資料結構不會過時;程式設計理論不會過時[^1];開發論及方法論不會過時[^2];良好的編寫程式習慣永遠不會過時[^3];分析問題與決策的能力不會過時[^4]...

因此在學習新技術的同時,也別忘了閱讀軟體界大神們的 經典書籍 以及上述 不變的知識。因為這些和思維相關的知識,能夠幫助我們進行更好的決策、學習、判斷與知識堆疊。

文章內容整理自以下書籍並加以歸納與簡化:

註腳

[^1]: 程式設計理論: OOP、OOAD
[^2]: 開發論及方法論: CI/CD、DDD、Clean Architecture、BBD、TDD、ATDD、Specification By Example
[^3]: 良好的編寫程式習慣: Clean Code、易讀程式之美學、單元測試
[^4]: 分析問題與決策: 重構、SOLID 原則、Design Pattern


尚未有邦友留言

立即登入留言