CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
ご無沙汰しております、株式会社ゼネットの松永です。
この2年間、アフリカにあるモザンビークという国で青年海外協力隊の活動を行っておりましたが、今年年初にその活動を終え帰国いたしました。
このコラムを最後に執筆したのが2014年12月ですから、実に2年3ヶ月ぶりということになります。いやはや時間がたつのは早いものですね・・・。
さて以前のコラムの中で、「プログラミングと教育」について2回に分けて執筆したことがありました(*1)。実は先月2月、帰国後早々に初級者向けのRuby講座の講師を3日間担当しましたので、今回はその第3弾を書いてみたいと思います。
ちなみに今回の講座は、以下のような方針で3日間行いました(*2)。
この講座の実施を通して、プログラミング教育やRubyについて改めて感じたこと、気づいたことを3つご紹介いたします。
この講座ではプログラミング未経験者を対象に設定しています。しかしいざ開講してみると、同じプログラミング未経験者といっても、エンジニア(を目指す人)とそうではない人とがいることに気づかされました。ここでいうエンジニアでない人とは、プログラミングそのものが仕事の中心であるエンジニアに対して(*3)、プログラミングそのものは主たるものではなく、何かを行うための選択肢の一つとしてプログラミングを利用する人たちのことを指しています。
この差は小さいようで大きく、エンジニアでない人にとってプログラミングはあくまでもツールの一つに過ぎないのですから利用しない、つまり学ぶことを諦めるという事もありえます。勿論きちんとした判断の下で利用しないという選択をすることが間違っているわけではないのですが、プログラミングに興味を持ってもらったのに諦められてしまうとなんだかもったいない気もしますし、何より折角なら好きになってほしいですよね。そのような人が諦めないために大切だと感じたのは、適切な難易度設定と修了後の具体的なイメージを伝えることの2点です。
私たちエンジニアが初級者向けの講座を実施する際、特に気を付けなければならないのはその難易度設定です。講師側は易しく作ったつもりでも受講者は難しく感じているというのは間々ある話で(*4)、期間に対して内容を詰め込み過ぎていたり、説明をしていない新たな情報をベースに内容を進めたり(*5)といったことが原因なるようです。受講者にとってハードルの高すぎるものであると理解が進まないばかりでなく、学ぼうというモチベーションさえも低下させかねません。
また講座を受講し修了することによって、どんなことができるようになるのか具体的なイメージを伝えてあげることも大切です。非エンジニアの人にとって実現したいことがその講座のゴールにあるとモチベーションも持続しやすいのかなと感じています。
今回の講座ではプログラミング未経験者を対象にしていましたが、実際にはプログラミングの経験者も数名いらっしゃいました。つまり受講者のレベルに差がある状態で、一方にレベルを合わせるともう片方は難しすぎる(あるいは易しすぎる)と、全体のバランスをとるのにとても苦慮したのですが、このことは今回に限らず教育を行う上で常についてまわる問題だと思います。
これに対しベストなものではないですが、今研修では一つの緩和策として演習課題を難易度別に3段階に分けそれぞれ数を準備するという方法をとりました(*6)。併せて十分な演習時間を確保することで、経験者にはより難しい課題を解いてもらい、未経験者は易しい課題を解き理解を深めていってもらう。また実際に手を動かす機会を増やすことで、「できた!」というある種の楽しさを感じてもらうためにも演習課題を豊富に準備しておくことは大切だなと実感しました。
モザンビークでの活動中、実はRubyを触ることはほとんどなく別の言語扱うことが多かったのですが、帰国して改めてRubyに触れこの講座の講師を担当して、Rubyはやはり直感的で分かりやすい言語だなと再確認しました。getsメソッドで標準入力を受けられたり、to_iメソッドで数値に変換できたりと、入門の部分でやりたいことが簡単にできることは、未経験者にプログラミング教育を行う上で重要な部分だと思います。
また今回の講座の一番の目標にも挙げている通り、「Enjoy Ruby!」とRubyを楽しんでもらえることが一番です。そしてRubyは未経験者でも楽しんでもらえる言語だと感じています。
以前と被る部分も多々あるかとは思いますが、ここまでプログラミングと教育(と少しRuby)について書いてまいりました。今後教育に携わる方に参考となれば幸いですし、プログラミングやRubyが楽しいと感じてくれる人が増えてくれればなと思います。
それでは、Enjoy Ruby!
(注釈)
*1 : 第10回と第11回
*2 : 実際の講座スライドより抜粋
*3 : 正確にはプログラミング以外のものもありますが、プログラミング教育という視点での話ですので、今回こういう表現をしています。
*4 : 実際に今回の講座でもそうでした...。
*5 : 説明をし忘れるケースもありますが、そもそも説明をする必要がないだろうと思い込んでいるケースもあります。
*6 : 3日間の講座で70題ほど。実際に全部解き終わる人はいませんでしたが、演習問題のストックがあるということは講師の心の安心にもつながる気がします。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes