「プログラミングを確実に習得する」ためのオンライン・マンツーマンレッスンCodeCampでは、エンジニア講師がどのようにプログラミング初心者を指導しているのか?
この特集では『CodeCamp人気講師インタビュー』として特にレッスンの評価が高い講師を「人気講師」としてご紹介していきます。今回はフロントエンドやAndroidアプリ開発、Python、Javaなどのカリキュラムでレッスンを担当しているフリーランスエンジニアの高橋先生に、プログラミングを習得することのメリットや学習方法などについてお話を伺いました。
【受講生からの声】
・授業後の指導まで丁寧にご対応いただきありがとうございました!
細かいところにも誠実に教えてくださって助かりました。
・たくさんの先生のお世話になっていますが、最も丁寧な先生だと感じています。
基礎の理解もあやしい中、ひとつひとつ確認して頂けてとてもありがたいです。
※CodeCampでは毎日、受講生のみなさんから
レッスンの満足度や感想をフィードバックしていただいています。
苦手意識を克服し、プログラミングを武器に独立
——まずは簡単に、これまでの経歴を教えてください。
僕が初めてプログラミングに触れたのは、大学1年生のときに受けた情報の授業でした。Rubyを学習していたのですが、じつは難しさのあまり一度挫折してしまったんです。
ところが、大学3年生のときに再度プログラミングを学習したところ、なぜかすんなり学習できたんです。それから、プログラミングのおもしろさをどんどん感じていきました。
そのまま、ゲームAI*を学ぶ研究室に所属して、大学3年生から修士2年生までの4年間、C++を勉強していました。同時期には、Javaでアンドロイドアプリを開発するアルバイトも手がけていました。
大学卒業後は、大手電子機器メーカーのSEとして、ウェブアプリケーションの開発や社内用のAI開発に向けた技術調査をしていました。昨年7月から受託開発や講師業を行う会社を起業して、今に至ります。
*囲碁や将棋を行うAIのこと。
——現在は、どのようなお仕事に携わっているのでしょうか?
今は事業としてフリーランスで仕事を受けながら、プログラミングを中心とした講師業を行なっています。中高生向けに基礎科目を教えたり、社会人に向けたプログラミングやAI領域のセミナーなどを行なっています。
最近では、ビッグデータ分析のプログラミング言語として用いられるPythonの講座も担当するようになりました。
生徒からの「ありがとう」の声を聞くために
——自分で手を動かすのではなく、誰かに教えることを仕事にしたきっかけはありますか?
新卒で入社した電子機器メーカーでの経験がきっかけですね。
入社後に行われる新人研修の際に、みんなでプログラミングを学ぶ時間があったんです。ところが、同期入社したメンバーは文系学部や美術大学出身者などプログラミングを知らない人が多かったので、僕は同期たちにプログラミングを教えていました。
その時に、「教え方がわかりやすい」「ありがとう」など、感謝の言葉を受けました。
僕が覚えたことをそのまま伝えているだけでも、喜んでくれる人がいるのだと知ったことで、「教える」ということに対する興味が湧きました。
それに、僕自身もくもくと開発してばかりいるのはあまり得意ではないんです。自分で手を動かして開発するよりも、誰かに知識を伝えてあげるほうが向いているような気がして、講師業を選びました。
——講師として働く上でのやりがいは、どんなところにありますか?
生徒が抱えている疑問点や悩みを解決したときにもらえる「ありがとう」や「よくわかりました」などの言葉ですね。
講師の仕事は教えることです。相手に知識を教えてお金をいただいているのですから、丁寧に相手にわかるように教えることはいわば当たり前なんですよね。
それなのに、さらに感謝の言葉までかけてもらえるのは、この上ないやりがいだと感じています。生徒からの「ありがとう」を聞くために、日々頑張っています。
めんどくさがりだからこそ、本質を追求したい
——講師としてプログラミングを教える上で、大切にしていることはありますか?
表面的な知識でなく、本質を理解してもらうことです。プログラミングの勉強は、学ぶことがゴールではなく、つくりたいものや実現したいことを叶えるための方法でしかありません。
たとえば、サービスやアプリをつくりたいと思ったときは、基礎的な勉強だけではなく、インターネットや書籍などから得られる新しい情報を取り込んで、自分の知識として落とし込むプロセスが必要です。そうしなければ、イチからなにかを作ることはできません。
インターネット上には優秀なエンジニアが残した情報があるし、コピー&ペーストできるソースコードもたくさんあります。しかし、それらの情報を読み解いて理解することが、プログラミングを学ぶ上では大切です。「エンジニアの仕事の半分は、調べることだ」と言う人もいるほどです。
——本質を理解してもらうためには、どのように指導していくのでしょうか?
僕がレッスンの中で意識しているのは、授業中に登場したサンプルコードを自分なりにアレンジしてもらうことです。
例えば、「ここを変えるとどうなると思いますか?」と投げかけて、まずは考えてもらうんです。結果を予測して、実行して確認するということで理解が深まると思っています。
実際にプログラムを実行してみて、予想と結果が異なったら「なにが違ったのだろう?」と一緒に解き明かしていきます。
仮説を立てて検証することを繰り返すことで、ソースコードの丸暗記ではない学習を提供できるように心がけています。
それに、コードをひとつずつ覚えるのって、めんどくさいじゃないですか(笑)本質さえ捉えていれば暗記も少ない数で済むのに、新しいソースコードをひとつずつ暗記するのはかなり大変です。
本質を掴めたら、暗記することも少ない上に応用することもできるので、習得スピードが早められると思います。
「プログラミングの学び方」を教えるのも講師の役割
——初心者がプログラミングを習得するときに、つまずきやすいポイントを教えてください。
正直なところ、全部です。笑
なので、プログラミングを学ぶ上でもっとも重要なポイントは「学習スタイルをどう築くか」だと思っています。
プログラミングの参考書や教科書のほとんどは、最初にコードの説明を書いて、次にサンプルコード、そして実行後の結果といった流れで展開されています。
そこで、教科書の説明をじっくり読まずに中途半端に理解しているままだと、いつまでたっても内容が定着しないんです。教科書的には先へ先へ進んでも、自分の知識はまだ追いついていないという状態になってしまいます。
CodeCampを受講している生徒には、せっかく高いお金を払って学んでいるのだからしっかりと知識を身につけてほしいですし、そのための方法論をできるだけたくさん伝えるようにしています。
そういった意味で考えると、じつは講師の仕事はプログラミングを教えることなのではなく、学び方や視野を広げて理解するためのヒントを与えることなのかもしれませんね。