プログラミングはイメージ先行で
――御社はプログラミング未経験者を雇用し、戦力へと育成しています。プログラミングを教える際、大事にしていることは何ですか。
目的をはっきりさせて、それを実現するためにどうするかということを考えてもらうようにしています。例えば、for文を学ぶとしましょう。for文を理解するには、そもそもなぜfor文を使うのか、for文を使うと何が便利になるのかを知ってもらいます。そのために、「文字列を10回出力してみましょう。これはprint文を10回書けばよいですね。しかし、出力する回数が100回だったら?」というように、for文の必要性を最初に意識してもらうのです。
――プログラミングの未経験者は、プログラムが動くと何ができるのかまったくイメージできません。そういう人に対して実際に動かしてみてイメージを植え付けるところから始めるとよいのですね。
私たちのもとには社会人未経験の人も来ますので、プログラミング教育の前にExcelの使い方も教えています。ただ、その延長線上でVBAでプログラミングの基礎も勉強します。Excel VBAは実行結果がビジュアルなので、プログラムを実行するとどんなことが起こるかがイメージしやすい。まずは、Excel VBAでプログラミングの感覚をつかんでもらってから、Pythonの学習へ入っていきます。また、VBAのプログラムは一から各自で打ち込んでもらいます。そうしてプログラムに馴染んでおくと、Pythonスクリプトを書く時にスムーズに移行できるのです。
また、Pythonを学ぶ前にはLinuxでサーバーの勉強もしています。そのときにプログラムの動かし方などをやっておき、「PythonプログラムというのはPythonスクリプトが書いてあるファイルだから」という持っていき方をします。そうすると、ライブラリの手前くらいまではスムーズに入っていける印象があります。
――Pythonの学習を始める前に、コンピューターの基礎を勉強しているのですね。
システムの下の層からネットワーク、サーバーと順番にやって、その上でプログラミングという流れで教えています。ですので、Pythonプログラミングにもすっと入ることができていると思います。
――ただ、コンピューターの基礎は学んでいて退屈したり、立ち往生したりする人がいるように思います。教えるときに工夫していることはありますか。
実用性がないものに関しては詳しくやらなくてもよいと思っています。CPUの中の演算などは、いったんは「こういうものだよ」というところで終わらせればよいのです。その代わりに、使うときにどうなるかはしっかり学んでもらいます。ハードディスクなら、ハードディスクのRAID構成とか。そちらでしたら実用性があるので興味を引きやすいと思います。
――小テストもけっこうやるのですか。
はい、項目ごとにテストをします。そして前回学習したことを使うときには、こちらからは答えを出さずに探してもらってから進めるので、嫌でも思い出さないといけないようになっています。
――学習者のモチベーションを維持することも大変だと思います。モチベーションはどうやって高めているのですか。
基本的には、自分たちで考える余地のある課題をやってもらうことにしています。また、二人以上で1つの課題をやってもらっています。例えば、プログラミングでは「こういうゲームを作ってください」というお題だけ投げて、その中に入る機能に関してはペアの相手と話し合って決めてもらう形です。また、ネットワーク設計でしたら、「ルーターの設定に関しては話し合って決めてください」という形をとります。この方法だと、やらないとどうにもならないですし、相手もいるので飽きたりもしないのです。やる気が上がらないということにもなりづらいと思います。最初に教えるコンピューターの基礎に関してはどうしようもないのですが、それ以降は極力ペアで学習させるようにしています。