初心者こそLintを使わせよう


前提と目的

我々エンジニアは、ある程度の品質のコードが書けても
まだまだ初心者プログラマーという扱いをしてしまいますが、
今回はHello Worldすらあやしいというレベルを想定しています。
ググれば書けるけど、そらで書くのは無理というレベルです。
未経験者を採用するとそういう人もやってきますよね。

Hello Worldが書けないレベルになると
経験うんぬんの前に向いていない気がしてしまいますが、
採用した以上はできるようになってもらう必要があり、
そういう育成の手助けの一つになればよさそう。

結論的なこと

初心者を育てるとき、用意する開発環境にLintも含めておきましょう。
そしてLintでチェックをなるべくやらせて、いい感じに育てていきます。

まず、ルールをゆるくしましょう。

  • Lintのルールのバグは先に把握しておく
  • 経験者からみても厳しいルールもリストアップしておく
  • お好みじゃないルールも明確にしておく
  • そしてそれらのルールを外したLintの設定ファイルをGitHubとかにあげておく

経験者は最高に厳しいルールでやっていくのが良いと思っているしお好みなんですけど、
それを初心者にやらせると結局は投げ出す原因にしかならないので、
最初はゆるくの方が良いでしょう。継続させることが最優先です。

つぎに、Lintを初心者につかわせてみましょう。

  • まずは、コードが動くようになったタイミングでLintを使わせる
  • 使い方くらいは丁寧に教えてあげる
  • 最初の1日は、エラーがでたら直す部分と直し方を教えてあげる
  • Lintのメッセージの見方やググり方も教えてあげよう
  • 60~80%くらい直せたら、もういいんじゃない?って言ってあげよう

なんでもやってあげるのは微妙ですが、上記くらいはやってあげましょう。
あと、強制的に毎回100点を取らせるようなやり方は避けたほうがよい。
初心者は最初にごまかす方法を考え出すので、
ごまかさないほうが良いし、必要もないということを実感させましょう。

つらいこと

初心者にLintを使わせると次のようなことがつらいから、
しばらくしてからでいいんじゃないの?
という話がありますね。

  • 初心者は当然のように英語が読めない
  • 初心者はリテラシがないからメッセージの内容も意味不明
  • ダメなルールなのか、自分がわるいのか、初心者にはわからん
  • 100点がなかなか取れないという気持ち悪さがのこる

しかしこれらはそのまま、初心者が成長すべきポイントでもあり、
こういうことは早い段階で考えてわかったほうがいいので、やらせようという話です。

まずは動くものを作れるようにという方向に行きがちですが、
動くもののレベルがどんどん上がっていき、複雑になってからLintをやらせると、
僕はゆるふわでやっていくからいいや、ってなるのでよくない。

しかもだめかもしれない

Hello Worldが書けない初心者は、技術以外の問題を抱えていることのほうが多く、
そうなってくるとLintで学ばせるとかいう以前に対処すべきことが別にありますね。
優先度的にはそっちのほうが先なんですが、そっちは結構コストがかかりそうです。
きびしい。