新人研修。。。
前の職場では7年ぐらい新人研修の講師をやってました。
SEなのでプログラミングの基礎みたいなのを教えてました。
そこで思ったことがいくつかあります。
前の職場の経験も交えながら、書こうと思います。
1.プログラミングの勉強とは
そもそも学校と仕事の違いとは何なのか。
色々なところに書かれていると思いますが、やはり1回作って終わりでは無いということだと思います。
仕事なのでお客様がいて、作ったプログラム(以下、アプリと表記します)を使って業務を行います。もちろん、使っていく中で「やっぱりこうして変えて欲しい」とか「こういう機能を追加してほしい」とか出てくるので、お金をいただいて改修を行います。
この際に、最初にアプリを作った人が作業するとは限りません。だからこそ『勉強』が必要なのだと思います。
学ぶ内容は、「そもそもプログラムとは」という内容から始まりプログラミン言語専用のお作法を学んでいきますが、その中で、正しいソースの書き方を学ぶものだと思います。教科書に書かれている内容が一番正しいかと言われれば微妙ですが、すくなこともある程度は読めるものになるかと思います。
2.最初に学ぶべき言語
よく聞く内容ですが、何を最初に学べばよいのか。
私の勉強した言語を端的に書くと、
となります。やりすぎですね(笑)
今の主流はオブジェクト指向(java,C#,VB.net)ですが、経験から言えばまずC言語だと思います。
様々なOSがこの言語でできています。Windowsアプリを考える上では厳密にはOSの挙動を把握しておく必要があります。確かに.net Frameworkが勝手にやってくれるといこともありますが、本来は把握するべきだと思います。
正直に言えば、C言語は非常に複雑です。バッチアプリならともかく画面アプリを作るとなると一気にハードルが上がります。そのそも多くの人が躓くのが「ポインタ」でしょう。この考え方は私のかではプログラミングをする上で根底になっているので、時が経つにつれ説明ができなっている部分です。
それほどに重要だと私は思っています。
3.新人に毎回言ってきたこと
私は新人研修の中で必ず言ってきたことがあります。
➀初めのうちはソースをコピーをするのではなく、必ず打ちなさい
②5分考えてわからなければ、聞きなさい
③1年目の特権で、色々質問をしなさい
わからない内容はGoogle先生に質問すれば答えは返ってきます。それをコピーすれば確かに動きます。しかし、そこには必ず不都合なことがあります。それは、内容を正しく理解しなければ、わからないし修正することもできません。
私が新人の時に言われたのは、『自分で打てばこれは何をしているのか興味がわくはずです。それを調べればどうなっているがすぐに理解できるはずです。それをしないから、テストの時に無駄に時間をかけてしまうのです。』ということでした。確かにそうだと思います。
それでもわからないことはいくら考えてもわからないのですから、無駄なのですぐに聞きに行く。その際には、追加で少し聞いておくことで自分の知識が深まるという構図です。
この3つができるようになれば、徐々に力がついて様々な仕事ができるようになると思います。
4年ほど前に私の下についた新人君はこの3つを実践して、半年でいろいろ任せられるまでに成長しました。もちろん責任というものは、仕事を指示した側に付きますが、それでも前まで抱えてた多くの仕事を任せて自分は追加の仕事をできるようになりました。
新人研修や新人教育というのは大変に難しいと思います。
しかし、これを成功させなければいつまでも自分の仕事が減らず新しいことに挑戦できません。
向き不向きもあると思いますが、成功は自分の自信につながりますから長い目でやっていくといいと思います。
私の中では山本五十六の「やってみせ 言って聞かせて させてみて ほめてやらねば 人は動かじ」が新人教育の中で一番重要ではないと思います。
とらえ方はいろいろあると思いますが。。。
少なくとも「怒らない、叱るより先に褒めてあげる」を実践していけば成長していくのかなと思います。