#新人向けの研修をやって思った
目的通りのことを伝えようと思ってもなかなか難しい。
理解したかどうかも個人差があるし、うまく伝えられたかも不安だ。
「伝わっただろう」では独りよがりだし、アンケートは実施したが実際のところはどうだろう?
所属会社はIT系ではないので、新人研修で教える中で比較的難易度が高いのはExcel関数の使い方。
厳密にいえば、複数の組み合わせをするなどの「使いこなし方」と言えるかもしれない。
だけどそんなものが、一日・二日で身につくでもなく、かといってやらないわけにもいかない。
そこで色々考えた結果、コードレビューの考え方は実務的かつ模範解答としてよいのではないかと思った。
そしてこれは、プログラム研修でも同じことではないかなと思ったのでQiitaで書いてみる。
##考えることは重要である
なので、研修では当然ある程度の説明をしたあとは「自分たちで作る」という時間を与える。
という研修を行うところがほとんどではないだろうか。
理由は、
・学んだことを実践できるかの確認
・「考えてみる」ということが重要性によるもの
誰だってそうする、俺もそうする。
##では質はどうだろう?
「じゃー、みんなやってみよう! わからないところがあったら聞いてね」
という感じでやる際、質は度外視で行うことが前提になる。
できるほうが稀と思っておいた方がいいぐらいの感覚でやっていると思う。
初期の段階ではそれも必要ではあると思うのだけど。
でも会社は実戦で使えるレベルまで引き上げることを期待している。
この矛盾をどう埋めたものか。
##銃口を敵に向けて撃て、それで敵は倒せる
実戦とは果たしてそういうものだろうか?
理論・概要を教えたら戦場に放り込む。生きて帰れたら一人前だ。
ふと自分のやり方を振り返ってみたら、そんなことをやっているように思えた。
実際、Excel関数を利用して何かやるとするならば、
①受領データをシステムに登録する(CSVとか?)
②システムに正しく取り込まれているか、出力する
③1と2のデータをぶつけてチェックする
みたいなことは比較的どんな会社でもやることがあるパターンだと思う。
労務だと、一部の社員に手当を払うときなど、
①支払われた社員のチェック
②それ以外の社員に金額のってないかのチェック
の両方が必要になったりするので、1と2の総量には差が生じる。
そうしたときに、VLOOKUPなんか使うと容易に「#N/A」が発生するし、個別以外にも総額があっているか等、目線の変化も必要になる。エラーはどう処理しておくといいのか、突合結果をどう評価する?
そういうのが実戦利用だと考えると、
新卒がすぐにできるかそんなもん
という結論に至ったからだ。
できるのは経験者か、生まれながらの戦闘種族か何かだと思う。
仮にできたとしても、OJTで3~6ヵ月ほどしてからだろう。
##コードレビュー式教育
通常コードレビューは、間違いや不具合といった問題を解消し品質を高めるために行う作業で、レビューアーとなる人はそれなりに知見のある人でなければならない。
それを新卒にやらせるのはどうなのだろうか?という疑問もあると思うが、目的が違うので問題ない。
限りなく模範解答に近い考え方を読み解くという行為は、本人の視野を広げるのに役に立つ。と思う。
少なくとも「こういうところに気を付けて作ってね」と何度も教えるより、「こういうところに気を付けて作るとこうなるのか」を覚えるところにシフトしていったほうが理解は伸びないだろうか。
この工程でも「考える」ということは実践できる。
ならば、作ったものに赤ペンつけるよりは、効果が期待できそうに思える。
逆転の発想。実戦で使えるものを作らせたいなら、実戦で使っているものを見せればいい。
なにもコードの全て、ツールの全ての動きを最初から理解する必要なんてない。
一部でいいので読むことができれば、徐々に全体を掴んでいけるはずだ。
##そういうわけで研修方針を変えて実践する
良くも悪くも、ある程度の結果が出たら、また記事にしたいと思います。