半年くらい人にプログラミングを教えて感じたこと

とあるプログラミングスクールで、アルバイトを初めて半年ほど。

基本的に、ぼくが教壇に立って教えていく、とかではなく、各自教材を見ながら学習を進めていき、なにかわからないことがあったらその質問に対応する形のスクールです。参加している人たちの多くは、プログラミング経験は全く無く、まれにPC操作もおぼつかないような人もいます。

その人たちに教える中で、教材や一般のプログラミング入門書籍には書いてない/なさそうなことだけど、重要だと思ったことを書きました。

コーディングスタイルについても教えるべき

ここで言うコーディングスタイルは、主に

  • インデント
  • 演算子前後のスペース
  • 変数/メソッド/クラス名

の3つです。特にメンタリングをしていて気になる部分なので、この3つをピックアップします。

前2つはJavaにおいては、インデントはスペース4つ、演算子前後にはスペースを入れる、というのが一般的かと思います。

プログラミングをやったことがある人は、インデントの大切さを知っているし、そもそも改行時にIDEが調節してくれるインデントを崩すこともないでしょう。 はじめのうちはプログラムの書き方がわからず、いろいろ処理を書いて試しているうちにインデントが崩れることも多々あります。 演算子の前後にスペースがなく詰まっている場合も同様です。(x+ yのようになっていたり)

今日日、自動フォーマット機能を備えていないIDEなんてないでしょうし、早めにその機能について教え、基本のスタイルは覚えさせるべきです。 可読性が向上し、自分のミスに気づきやすくなります。 また、kakeruとかwaruとかローマ字で命名している場合を見つけたら、それも早めに指摘しましょう。

これらが改善されていない場合、学習が進み、後半の複雑な課題をこなす段階で、メンターがコードレビューをするのに時間がかかったり、スクールを卒業して就職してから本人が苦労することになるので、早いうちに指導したほうがお互いのためです。

エラーの読み方を教える

初学者の多くはエラーがでても、その文を読みません。英語ででればなおさらです。

少なくとも、

  • 何行目の
  • どの部分で
  • なんて名前のエラーがでているか

の判別方法と調べ方は教えましょう。

IDEを利用していると、多くのエラーはその行に出るので、何行目、どの部分、についてはあまり教える必要がないかもしれません。 NullPointerExceptionIndexOutOfBoundsExceptionのようなメジャーなエラーは、その名前で調べれば比較的にすぐに解決するので、エラー名で検索することを教えましょう。何十分も同じエラーで詰まっているようだったら、解決に導いてあげましょう。

ちなみに、「初学者の多くがエラー文を読まない」ことには日本人であることとはあまり関係がないと思います。

stackoverflowで、「こんなエラー出たけどなにこれ?」とエラーに答えが書いてある質問を、流暢な英語できいている人がたくさんいるんです。 誰だって初めはエラーを読まない。(逆に言えば、こういう質問があるから、エラー名で検索すればわかることに繋がってる)

まとめ

自分がプログラミングはじめたばかりの頃のコードなんて残ってないし、人から言われずともなんとなくこの辺りはできるようになったけど、早めに教えてもらえるといいよね、と思いましたまる。