Oct. 17 22:13~22:47
Teddy在北科上課時經常指定學生回家閱讀教科書或技術文章當作家庭作業,隔週上課再討論閱讀內容。大部分的學生並不擅長抓住內容的重點,閱讀經常只停留在字面上的涵義。
Teddy不是什麼閱讀專家,但多年來發覺把握以下三個重點,可以幫助自己在閱讀技術文章時看到不同層次的問題,也可以提升自己的「教學力」。
- 1. 定義:對於重要的名詞或概念,能否用簡潔的字句說出它的定義?例如,試著說出以下名詞的定義:多型(polymorphism)、迭代與增量(IID)、敏捷、Scrum、軟體架構、設計模式。
- 2. 比喻:能否用一般人聽得懂的方式說明重要的名詞或概念?例如,用下圖的磨豆漿來解釋迭代與增量就比較容易讓鄉民們理解。
▲圖片節錄自 https://goo.gl/YgiMyr
- 3. 找問題:名詞或概念通常代表某種產品或解決方案,也就是建築師Alexander所說的Form。學了一堆名詞與解決方案,如果不知道它們用來解決什麼問題,很容易發生吃錯藥的情況。就好像學了一堆design patterns但卻不知道每一個pattern要解決什麼問題,所以就很容易誤用pattern。
有一個很簡單的自問自答練習,可以幫助自己發覺名詞與解決方案背後所要解決的問題是什麼。只要問自己:
If X is the solution, what is the problem?
例如:
- If polymorphism is the solution, what is the problem?
- If IID is the solution, what is the problem?
- If Agile is the solution, what is the problem?
- If Scrum is the solution, what is the problem?
- If software architecture is the solution, what is the problem?
- If the design pattern is the solution, what is the problem?
***
只要把握住這三個簡單的重點,相信可以把技術文章看得比別人更透徹。
***
友藏內心獨白:桌子要解決什麼問題?
沒有留言:
張貼留言