「学生時代や新人のことに勉強したことの多くは10年後には役に立たない」
目の前の仕事のために、その息の短い技術を身に着けなければならない。
では、SEへの教育というのはそんな非効率なものなんだろうか?
思うに、IT技術者育成のために行う教育というのは、
目の前の、そのときのトレンドに沿った技術を教えるとともに、
その中で、「技術の学び方を学ぶ」というエッセンスが含まれてなければならない。
むしろ、
実際に使うかどうかもわからない技術を覚えることよりも、
効率的に新しい技術を吸収するためのコツ
を身につけさせることが重要である。
それも、
仕事をしながら技術を身につける方法を
を学ばねばならない。例えば、PHPを教える授業があったとして、
PHPの文法や膨大な量の関数仕様を覚えさせようというのは無理がある。
基礎文法は当たり前に理解しなければならないが、
あれだけの数の関数仕様を丸暗記しているプログラマなどそうそういるものではない。
実際にはリファレンスマニュアルを参照しながら、
必要な機能を実現する方法を探し出すという形を身につけている。
仕事の中で頻繁に使う関数についてはよく覚え、理解も深まっていくので、
自然と新しい技術が自分に身についていくことになる。
サブクエリを含むような複雑なSQLは文法を理解するだけではかけるようにならない。
エンジニアがSQLを書くときにどのような思考過程をたどるのかを考え、
その考え方の手順をうまく伝える方法を検討する必要がある。
その「思考の過程」を学ぶことで、
新しい技術を用いて開発する必要が出てきたときに、
自分で思考の過程を作り出す技術
を身につけることができれば、鬼に金棒である。
私が受け持っているDBの授業の中でも、
そうした理論上のものではない生のノウハウを教える工夫をしたい。
ちょっとだけ過剰装飾。書捨て御免っ!