言いたいことは今日のうちに

ただ書きたいことを書く、それだけ

プログラミングを人に教えるのは難しい 2018-04-16

今日の朝一番に書類を持って人事課に行ったところ、受付場所が違うらしく、教育支援センターに出すように言われ、そっちで出してきた。受け渡す場所が全然違った事にもう少し早く気付けていれば、混乱することはなかったかもしれない。それに、休日でもやっていた可能性があるわけで、誰かに訊けばよかったかもしれない。だが間に合ったと考えて進めよう。

 

さて、その日と火曜日の15:10~17:00から2年のカリキュラムに入っている、プログラミング演習のSAを担当することになった。といっても、部屋の後方に待機して、呼ばれたら来て教える、というパターンである。自分から動くことはない。初回が故に、そこまで呼ばれることがなかった。これが後半になると呼ばれまくるのだろう。

呼ばれることの大抵は、序盤は書き方が読んでも分からないだとか、やってはみたものの、どうやら上手くいかないとか、そういうことが多いようだ。私にとっては何てことなくても、その人にとってはわからないことである。

だが問題は、プログラミングは人に教えるのが難しいということである。

 

プログラミングは情報に関係する学科では普通にある

私の学科は電気電子情報工学科であるので、情報を1割くらい触る。その中にはプログラミングも入っている。理論だけで終わらせないようだ。ただ、プログラミングの理論は演習(実習)より面倒な気がする。記述量で。

また、プログラミングに関しては、そもそもパソコンをあまり扱わない人や、情報分野に興味のない人もいるわけである。ハードウェア方面をしたくてその学科に入った人もいるはずである。私はどっちでもないが。

そのため、工学に関わる学生は殆どの場合、プログラミングをすることになるだろう。化学系も、少しはやる可能性はある。ただし、その内実については知らないので、自力で調べてほしい。

 

才能や環境にも左右される「出来具合」

正直言うと、プログラミングは才能と環境が、「出来具合」を左右するものだと思っている。勿論、努力や独学でも何とかなる場合は多いが、最初の段階では先に挙げた2つが要因として大きいと思う。

まず才能だが、これはその人の頭の中の話であるため、実際どうこう言えるものではない。パソコンを触ると勝手に手が動くとか、実現したいことを考えると自然とコードが浮かんでくるとか、そういう場合である。イレギュラーのようなものと考えればいい。

次の環境は、小さい頃からパソコンがあり、それをある程度自由に扱える状態であったというような場合である。これに関しては所謂「フィルター」という、かけても無駄な子供を有害サイトから守るものを使っていないことを前提とする。ああいうのはネット素人の為のお金巻上げ用システムである。

その上でパソコンの使い方やインターネットの使い方、危険な部分を知り、そこでさらに発展として独学でプログラミングをするということもある。そのまま行けば優秀なエンジニアになれそうだが、一部は間違った方向へ逸れるわけである。本物のブラックハッカーになるか、素人ハッカーとしてニュースで恥をさらすかのどちらかになることもある。これはお勧めしない。

余談は過ぎたが、このように才能や環境でプログラミングの出来具合に差異が出ることがある。だからといって環境を恨むわけにはいかないのだが……。

 

教えてもらうのもいいが、教える側は教え方が難しい

そこで、教授や先生、或いは経験の長い人から教えてもらうのがいいだろう。私の場合は3番目にあたる。直接、分からない事を訊いてその場で解決するようにすると、飲み込みと成長スピードが早くなる、と考えている。

ただ、問題なのは、最初から全てを教えてしまうと何も成長しないが、ヒントが0でも成長しないということである。そのため、教える内容を加減しなければならないのだが、これが絶妙に難しい。

まず、言葉での説明が難しいのである。私の場合のプログラミングは、頭に浮かんだ「コード」を、言葉に変換することなく書く。直接書き込んでいるわけで、だが教える際に私がやってしまっては元も子もない。

そのため、頭で浮かんだことを一度言葉に変換し、整理した上で説明する。だが、言葉にするのがまず難しく、出来たとしても整理が上手く出来ないのである。そのため、説明する側にしても、何が言いたいか自分でも分からなくなってしまう状態に陥るのである。もとより、その思考をまとめるというのが間違っているのかもしれないが。

それ以外に、相手の進捗に合わせて説明する地点を変える、メソッドの意味がよく分かっていない場合の解説、セミコロン忘れ調査、コアダンプ、引数間違い、宣言の不一致……挙げるとキリがない。これだけのことを言葉で分かるように説明しなくてはならないので、これらがプログラミングを人に教えるのが難しいと考えている所以である。

勿論、教える側は手を抜いているわけではないのである。それでもやはり、難しいところはある。教える側の課題である。

 

人にきっちり教えられてようやく1人前か

よって、私もプログラマとしてはまだまだである。なので、一切手を出さずに口だけで、或いは文面だけで教えることが出来たとき、それでようやく1人前になると考えている。

ただ、口下手かつ思考を整理して話すのが苦手な私にとってすれば、1人前にはきっとなることはないと思う。その前に、人に教えるような器の人間ではないと自分で思っている。

だから私は一生、勉強し続けることになると思う。こと、プログラミングにおいては。そして人に教えるのは、私よりも優しく、説明と整理のうまい誰かがやってくれるだろう。人手不足なら、尻を貸そう手を貸すが。だが期待はしないでくれ。

 

教えるのは疲れたので、それじゃあ、また。

 

 

ちなみに、今日の気持ち

実質まだ勉強中だからプロ生ちゃんに教わりたい。