『帰納的パターン学習法』と『演繹的パターン学習法』

『帰納的パターン学習法』と『演繹的パターン学習法』


XPデザインパターンのような「パターン」を,様々な問題の解決にとても有効な方法として,また効率的に学べるものとして,どんどん新人にも教えていきたいものだと考えているのですが,「パターン」を学ぶのには二つの遣り方が有るような気がするんですね.


先ず,

  1. 色々と実務でプログラムを作りつつ,どう作るのが良いのか悩み,試行錯誤する
  2. 勉強していく中で,モジュールの強度や結合度,"Open-Close Principle" なんていう概念を知る
  3. デザインパターンを知る

という遣り方.それから,

  1. デザインパターンの各パターンについて知る
  2. デザインパターンをより詳しく学ぶ中で,モジュールの強度や結合度,"Open-Close Principle" なんていう概念を知る
  3. 色々と実務でプログラムを作りつつ,パターンをより深く理解する

という遣り方.


長年開発をやっている人は前者,新人の場合は後者が多いような気がします.

どちらの遣り方の場合も,3 まで進んだときに (「オブジェクト脳の芽生え」ではないですけど) 「気付き」が得られるように思います.


もっと一般的な言い方をすると,

  1. 実務をこなしつつ,より良い方法について悩み,試行錯誤する
  2. 必要な理論について学ぶ
  3. パターンを知る

という学習法と,

  1. パターンを知る
  2. パターンの背景にある理論について学ぶ
  3. 実務の中で実体験して理解を深めていく

というのが有ると思うんです.


私は,前者を『帰納的パターン学習法』,後者を『演繹的パターン学習法』と勝手に呼んでいるのですが,これらのどちらかだけでなく,両方が組み合わさった学習方法が効果的ではないかと最近考えております.


# そして「XP のような実践を伴う学習法」がそれを実現するのではないかと.