プログラミングの講師は?
「プログラミングは、現役エンジニアに教わる方が良い」という趣旨のCMを最近目にします。
このキャッチコピーだけでは、どの様な方が講師なのかは分かりませんが、
ちゃんと選考はされた方が講師なのだと思われます。
ただ、このキャッチコピーだけで考えれば、ある意味正解で、ある意味不正解です。
若干誤解される方もいるかと思うので付け加えれば、
現役エンジニアであっても教えるのが上手ではない人はいるという事を忘れてはいけません。
と言うのか、現役エンジニアは、講師ではないという事です。
つまり、技術は持っていても、それを教えることは下手という人は沢山います。
最初に正解の方から解説すると、
プログラミング学習とは、自分で論理的に処理の道筋を考え、
その道筋に沿ってステートメント(言い方が古い?)を入力し、実際にプログラムを動かしてみて、
自分の思った通りに動作した時の感動を味わい習得していくものと理解しています。
本来、プログラミングの勉強とは、「何かプログラムで作りたいものがあり」、
それを作り上げるために新しいことを学び、ひとつひとつプログラムを積み上げていき
最終的に自分の作りたいものが出来上がる感動の繰り返しと考えます。
その作りたいものがゲームでもいいのです。
現に私は、ゲームを作りたくてプログラミングを勉強しました。
1ヶ月でBASICを習得し、直ぐにゲームを制作しました。
しかし、BASICでアクションゲームを制作しても
当時のコンピュータのスペックでは、動作が遅すぎアクションにはなりませんでした。
そこでアッセンブラを1ヶ月で習得し、即、アクションゲームを制作しました。
世の中は移り変わりMS-DOS、Windowsへ。
私もTurboC、BorlandC++、VisualC++と変遷を辿り、ゲームを作り続けました。
その後、システムエンジニアの道に進み現在へ繋がっています。
今思えば、「作りたいものがあり」、それを実現する「バイタリティ」と「根気」が
習得できた理由ではないかと思います。
何も作りたいものもなく、コマンドやステートメントを習い、
テキストに載っているサンプルプログラムを模倣するだけでは、全く身に付きません。
受験英語と同じで、答案用紙に回答するための答えを勉強していても英語がしゃべれないのと一緒です。
お分かりかと思いますが、プログラミングは、プログラムを組む事で学んでいけ、
ステートメントやコマンドを覚える勉強ではないのです。
プログラムを人から教わる場合、
この「何かプログラムで作りたいものがあり」からスタートし、
業務としてプログラミングしている現役エンジニアから教わらないと難しいかもしれません。
パソコン教室や資格取得のための学校の講師では、これは教えられないと考えます。
つまり、CMのキャッチコピーは正解です。
では、不正解の方を解説すると、
最初にも記述しましたが、良いエンジニアは、必ずしも良い講師ではないという事です。
私の知り合いのIT系講師が、プログラミングを教えていますが、
彼は、途中、生徒さんが授業を理解できずにプログラミングの手が止まってしまった時、
生徒さんを差し置いて生徒さんのプログラムに手を入れ、先まで作ってしまう様です。
本人は、「やって見せることで理解してもらえる」と言っていました。
確かに私たちプログラマーには、完成したプログラムを見て理解することができますが、
プログラムにあまり馴染みのない生徒さんが、それで本当に理解できているかは、かなり疑問です。
プログラミングは、論理立てて組み上げていくもので、
我々プログラマーは、それを得意としているはずですが、
論理立てて説明することは苦手な人が多いようです。
つまり、
プログラミングを勉強するなら実際に業務に従事しているシステムエンジニアやプログラマに教わった方が良いが、
教えるのは必ずしも上手ではない可能性があるという事です。
その辺、教えるのが上手か下手かを見極めるのは難しいかもしれません。
体験レッスンやお試し入学などがあるのであれば、それを活用することをお勧めします。
ちなみに余談ですが、
当社でもマイクロソフト社のAccessと言うデータベースソフトを使用し
プログラミング、及び、データベースの学習が行える講座を開いています。
講師は、当然、システムエンジニアですが、カウンセラーの資格も持っており
悩みや相談の解決を得意とし、話し方、説明の仕方に長けた方に担当してもらってます。