「教える」こと、そしてジレンマ

毎年春先には「出稼ぎ」の現場にいる。もちろん本当に家を出てどこかに住み込みで働き詰めになっているわけではなく、単に家から出てリモートではない現場に行く(ことが多くなる)ことをヨメが揶揄して言っているだけなのだが。

現場はいわゆる新人研修の会場で、私はその研修のプログラミング担当講師として従事している。ゴールデンウィークのはざまで*1少し思うことを書いておきたい。

教えることが夢だった頃

子供の頃の夢は教師になることだった。小学校低学年の頃の担任の先生に憧れたのか、小学校に入ってからはずっと「先生になりたい」と思い続けてきた*2

具体的に英語を教えたいと考えたのも、やはり中学校に入ってすぐに学んだ英語担当教師の影響だ。その先生は講義をしていない時にはずっと、英語ではない何か別の言語の教科書を手に何かを学んでおり、それがロシア語だったというのも先生から聞いて知ったことだったのだが、「言語」を学ぶという楽しさを教えてくれた。

結局大学を卒業することなく、つまり日本において教師になるための資格を取得することができなかったため、「教師になる」という夢は潰えたものの、その時点までの「英語学習」の蓄積はいろんなところで今の生活に活きている*3

趣味:コンピュータ

小学校の高学年の頃に我が家に「マイコン」がやってきて*4、プログラミングなどのいわゆるコンピュータサイエンスにどっぷりハマっていたが、中学校に入ってから以降は学校では部活に打ち込んでいたし、家に帰れば疲れて寝る、という日々だったので、基本的にゲーム機の延長としてしかコンピュータを見ていなかった。

それでも大学に通っていた頃は自宅にパソコン(Win)を持っていたし、夜中に「インターネット」やチャットをやっていたり*5ゲームで遊んでいたりしたが、どちらかと言うと小学校の頃を懐かしむというか、趣味レベルでパソコンライフを楽しんでいた気がする。

社会人になって初めての仕事は印刷屋さんの営業で、デザイン(DTP)もやる会社であったこともあり、職場にはWindowsMacも(なんならワークステーションも)あり、当時は「コンピュータが仕事につながる」と漠然とだが思っていた。その会社を辞め地元に戻り、システムエンジニア募集をしていた会社に転職したのがエンジニア人生の始まりである。

プログラミングを「教える」こと

「教師への夢」と「ITエンジニア」という人生の道が交錯し、いろいろなご縁もあって『ITエンジニアとしてプログラミングを教える』という仕事をしているわけだが*6、今年でもう4年目である。正直言って、難しい。

誤解を恐れずに言えば、教えることは夢ではあったけれど今の本職ではないし、まともに教育者としての教育を受けたわけでもないし、プログラミングにしても体系的な学びをしてきたわけでもなく、現場で覚えてきただけの知識である。

もちろん、講師の仕事を引き受けるにあたって、それなりに研修も受け、「教える」と言うこともプログラミングも体系的に学んだうえで臨んでいるわけだけれども、やっぱり普段やっていることとは違うことをしている、という感覚はずっと持っている。違和感ではないけれど、教えることよりは現場にいる方がやっぱり楽しいと感じる。

だからなのか、生徒には「現場」の感覚を味わってほしい、と思っているし、プログラムの書き方を教えつつも、現場に出た後のことを考えてアレコレと余計な情報を盛り込んでいる。「新人」が感じている今後の不安を少しでも払拭できたらいいな、と思うから。

新人研修はあくまでも社会人生活の第一歩であり、今までの教育機関での学びの延長ではない、という意識は持ってほしいし、「体系的に学ぶ」機会はほぼなくなるからこそ、最後のチャンスとして研修の場を活かしてほしいし、講師はその手助けをするべきだ、と思う。

(教える側の)難しさと楽しさ

私が最近(今年に入ってから)Flutter/Dartの教育系コンテンツを作り始めたのも*7コンテンツとしてと言うよりは自分自身が体系的に学ぶことができなかったプログラミング言語をどうやって体系化して教えるのか、というチャレンジの要素が大きいし、そういう意味ではまだ試行錯誤の途中だったりする。

教える側の立場で考えると、体系的に知識が理解できていて、それを生徒に「伝える*8」ことができさえすれば、表面的には「教えた」と言うことになるような気もするのだが、私が憧れた教師たちはそうではなかった。今となってはうっすらとした記憶でしかないが。

体系化した知識を得ることとそれを「伝える」ことは、私にとっては簡単なことではないし、むしろかなりチャレンジングな行為ではある。言語化することは可能だし簡単なのだ*9。が、それを伝えることが難しい。

この投稿を書き終わった後にFlutter/Dartの3回目の講義投稿を作るが、例えば「Null-Safety」という概念をどうやって伝えるのか、と言うことを考えると、とても「Null安全です」だけで済ませられるとは思えないし、何をもって「Null」の「Safe(安全)」なのか、ということを言うことができ、それを相手に「伝わる」ように話ができるのか、と言うことが難しいのだ。

だが、それがチャレンジングである以上、私にとっては楽しみである。

(教えられる側の)難しさと楽しさ

また、教えられる側の立場になって考えてみると、ただ知識を得るだけであれば、今はググったりAIに聞いたり、YouTubeに至っては倍速再生もできるし、研修を受けるより圧倒的に大量の情報が得られるのだから、同じ時間ずっと会議室みたいなところに閉じ込められてのんびりと講義を受けるよりも効率がいいはずなのだ。

と言うことは、YouTubeでは得られない情報、ネットでも得にくい情報が欲しいのではないのだろうか、と仮説が立てられるし、そもそも新入社員という立場上、「現役エンジニア」の生の声は役立つかどうかは別にしても気になる事柄なのではないだろうか。特に失敗を恐れがちな若者≒Z世代であればなおさらであろう。

いわゆる「社会人として持っていたい知識」であったり、「現場ですぐに使える知識」であったりを得たいはずなのだ。あえて『若者』だの『Z世代』だのという言葉を使ったが、では自分が新入社員の頃は違ったのか、と言えば決してそうではなかったはずだ。

もちろん、例えば私自身で言えば平成初期に社会人になり*10、ネットも今ほど充実しておらず、知識を得るためには学校に通うかOJTで学ぶかのいずれかしか選択肢がなかったけれど、知りたかったことは同じであったはずだ。

そう考えれば、もちろん研修においてのテーマである事柄、今の業務で言えばプログラミングを教えることは第一義だし、それを教えてもらうことは生徒にとってのメインプライオリティだが、それ以外の「知識」も知りたいことだろうし、それらを知ることは楽しみであるに違いない。

が、すでに知っている知識の再定着であったり、知らないことを学ぶということ、そして、プログラミング以外の知識は「覚えておけば大丈夫」なことではなく、実際に実践できなければ意味がないし、それを使うことで定着していくことなのだから、「学び」と「実践」のバランスをどうしていくか、というのは教えられる側にとっては*11難しいことなのだろうと思う。

講師のジレンマ

自分が「教える」という立場にいることに違和感を覚えているのは、先に述べているように普段の業務と異なることをしているから、ではあるのだが、何が違うのか、と言えば、アウトプットの種類だと思っている。

エンジニアという仕事において、アウトプットはすなわち(動く)コードであり、(動く)アプリである。付随するアウトプットももちろんあるが、コードやアプリがすべてと言っても過言ではないだろう。ではプログラミング講師はどうか。

知識の言語化ではなく、その知識をどうやって伝え、理解してもらえるか、という考察(仮説)であり、その実証がアウトプットになる。もっと言えば、動くコードやアプリは講師が作り出すのではなく、生徒自身が自分の実力でアウトプットとして出すものなのだ。

自分自身が作れば簡単にできるレベルのものを、わざわざ他人に作らせ、手をできるだけ加えず*12、コードを書く本人に直させる、というのは、単にアウトプットの質が違う、というレベルではない、ジレンマと言ってもいいくらいの大きな違いである。

また、家庭教師のように生徒に個別に教えているわけではないので、各々に「ここをこうすればできるようになる」というテクニックを伝えることも難しいし*13、みんなで集まって行う研修、という性質柄、そして、新入社員ということも考えれば、「どうやって周りの助けを得るか」と言うことも教えなくてはならないのは腐心するところである*14

そんなジレンマも楽しんではいるのだが。

(最後に)これからプログラミングを学ぶ人たちにひとこと

集合型の研修を受講することは無駄なのでは?と思う人も多いだろう*15。が、会社で研修を「受けさせてくれる」と言うなら積極的に受けてほしい。自主学習においても、双方向性があり、リアルタイム性が高い研修であればおそらくコストに見合った学びを得ることができるだろう。

なによりも自分が次のステップに進むんだ、ということを意識して臨んでほしい。講師もそのつもりで教えている。

私自身は、いずれエンジニアとしての生活が終わってしまうことを考えれば、もっと現場で使えるエンジニアを増やさなければ、という使命感はあり*16、少なくとも私以上に使えるエンジニアを育てるつもりで(期間限定だが)教壇に立っている。

受け身で学ぶのではなく、積極的に学んでほしい。

*1:ブログネタも一時的に途切れているので

*2:小学校に上がる前はスポーツ選手だったような気もするが、当時からスポーツが苦手だったので早々に諦めたのだろう

*3:大学時代はずっと塾講師や家庭教師をしていたけれど、それも夢を実現させるためだったような気はしている

*4:このあたりの話はいずれ...

*5:テレホーダイとかの時代です

*6:あくまでも季節限定で、普段はエンジニア職ですよ

*7:評判はイマイチだがw

*8:言語化

*9:決まった用語があり、その通りに言えばいいのだから、言語化もクソもない

*10:周囲の同世代の人よりは遅く社会人になったとはいえ

*11:教える側にとってもだが

*12:エラーが出ている箇所がだいたいあたりが付いているのにそれを「気付いてもらう」という行為をわざわざする

*13:できないわけではないが

*14:講義中に理解度の確認をするためにどうしても生徒の様子を見るし、気付けばその場で助けるのも講師の仕事ではあるので

*15:前述の通り学びのプラットフォームも多く、効率だけで言えば圧倒的に研修の学習効率は悪いから

*16:一部は自戒も籠めているが