ITを教えることの難しさ

ITっていうと範囲が広すぎてコンピュータサイエンスなのか、ネットワークテクノロジーか、またはプログラミング全般のかわからないけど。

うまく教えれる人が非常に少ない。

原因

先生にコミュ症が多い(=教えるのが下手)

コンピュータオタクが昇華してプログラマーシステムエンジニアになることが多かったので、当然といえる。(多分)

そうすると、自分の考えをうまく言葉にできなかったり、伝えきれなかったり、相手のわからないところを汲み取るのが難しい。

比率としては今後へっていきそうだけど。とにかく、技術がわかればいい、じゃなくって、教える技術も磨いて欲しいしそういう施設や機会が必要だ。

業界知識を教えない

これは教える側というか、シラバスを作る学校側の問題だと思うけど、IT系における世の中を教える人ってのは少ないんじゃないだろうか。

少なくとも、自分の周りにはそういうことを教える人は一人、二人くらいしかいなかった。

学校の卒業間際になり、そのときにゼネコンのピラミット構造を知ったし。

そういうことを知らないで、ただあこがれを持っている生徒が、孫請けのIT土方になったらどう責任をとるんだろう。

そうなったとしても、学べることもあるし、本人が決めたことならいいんだけど、選択肢を与えてあげるのが教える側の役目かと思う。

"IT系"とひとくくりに言っても、母体も業態も千差万別なのに。

現場知識を教えない

会社に入って知ったんだけど、ソース管理とかテスト手法とか、本当に習わなかった。

コンピュータサイエンスを学ぶ機会を与えるのもいいが、実際に仕事して食っていくために、プロとしてのエンジニアの最低知識を詰め込んでおくと、相当楽になると思う。

だって、情報工学専攻だった人も、実はまともにプロジェクトこなせないレベルだし。プログラムが書けないとかではなくて。

現場から教員になる人がほとんどいないからだろうな、とは思っている。

オブジェクト指向を教えるのが下手

実はこれは、最も言いたくて許せないことなんだけど。オブジェクトをなんでもかんでも現実世界のモノに置き換えるな!!!

動物クラス?そこから継承してネコクラス!?!?!?鳴くプロシージャ?食うプロシージャ????全然いみわかんねえぇよ!

この例えのせいと俺の頭の悪さのせいで、オブジェクト指向を理解するのにすっっっっごい時間がかかった。

これで教える人がいたら、即刻この例え方はやめてほしい。オブジェクトとは現実のものを指すわけでは、絶対にない。

じゃあ、何なのさ?ってことだが、この記事が逸脱で非常に勉強になる→ Part1 オブジェクト指向を正しく理解する | 日経 xTECH(クロステック)

そもそも、学生プログラミングをするときにオブジェクト指向は必要ない、というかむしろ邪魔。

例えば、オブジェクト指向のキモはいくつかあって、その一つに”再利用”があるが、授業で習うレベルであれば再利用しないケースの方がおおい。

カプセル化ポリモーフィズムだってその恩恵を感じることはできない。

だったら、いちいちインスタンスとか考える必要もないし、全て構造化プログラミングに従い、関数なんてオブジェクトで持たなくていい。

なので、そのデメリットがあるにもかかわらず、なぜ”オブジェクト指向を学ぶのか”ということを説明しなければならない。

オブジェクト指向が生まれた背景を、アセンブリ言語から説明し、命令型プログラミング言語を経て進化した構造化プログラミングの、どこに限界があったのか、そこを教えなければほんとに理解できない。

人間、不必要なことは覚えないもの。あと、関数型言語をおしえるとそこで頭角をあらわす生徒もきっと。