![見出し画像](https://assets.st-note.com/production/uploads/images/126897748/rectangle_large_type_2_a6d8145f7c2ad49663a0314ceec3fa4b.jpeg?width=1200)
17. 新人教育
今回は、私たちがどのように新人教育を行っているのかについて書きたいと思います。
どのような人がいい?
弊社がエンジニアとして好むのは以下の方です。
第2新卒
他分野を学んできた人
ITに興味があり独自に勉強し始めている人
コミュニケーションを苦にしない人
アルバイト等で労働による対価を得る事を長く経験されている方
未経験者を中心に採用することが多いです。もちろん、経験者でも問題ありませんが、他の分野で学んできた方々の方が物事を柔軟に考えられる傾向にあると感じています。
「コミュニケーションを苦にしない人」
の見極めは難しいですが、面接の過程で少しでも多くの情報を得て、それに基づいて判断を行います。
教育者の資質
エンジニアの教育を行う場合、まず教える本人がエンジニアについての深い理解が必要です。詳しくは以下を読んでみてください。
まず、これを持ち合わせている事が前提条件となりますが、この時点でかなりの方が教育者として難しい状況になります。
その上で、コーチングについての理解が必要となります。詳しくは以下を読んでみてください。
この時点で、エンジニアとしてコーチングを学んでいる人というのは、非常に稀有な存在です。
なぜなら、一般的に技術に特化したエンジニアというのは、常に新しい技術を研究したり、実際に制作することに時間を費やすためです。
つまり、コーチングを学んでいる時間は無いといえます。私がなぜそれができていたかというと、週末をコーチングに、平日は1日の中で業務を進める時間と学ぶ時間を分けていたからです。
時には自宅に帰ってから学習したり、学ぶために業務を前倒しに進めて空き時間を作る事もありました。
結果的に私の生活はプライベートも仕事も境界がありません。そういった生活のため、子供と遊ぶ時間がほとんどなく、父親としては失格だと感じています。
プライベートと仕事の境界については別の記事で触れたいと思います。エンジニアを極めて行く上でこの事がとても重要になります。
私自身は子供が嫌いではなく、むしろ子供と遊ぶのが好きです。サッカーチームでは低学年の練習が好きで、時には子供たちを肩車しながら走り回ったりもしました。
小さな子供と遊ぶときには自分も小さな子供になったつもりで遊ぶと馴染みやすいです。小さな子供と仲良くするコツみたいなものです。これが
「同じ目線で対等な立場でコミュニケーションを取る」
という事ですね。
話が逸れましたが、このような経験を積むことが、教育者として重要だと感じています。
しかし、全てを若い方に求めるのは難しいと感じます。なぜなら、私が30年かけて学んできたことを、短時間で伝えるのは難しい部分があります。
ですが、技術的な部分については伝えやすいので、まずは業務がこなせるレベルまでの技術を学んで頂き、その後は一緒に業務をこなしながら実務を学んでいく形になります。
相手を知る
教育において重要なことの一つは、教える相手を理解することです。そのために私が新入社員に対して行っていることがあります。それは
「一緒に食事をしながら話をする」
ということです。
入社された方からしたら迷惑なのかもしれません。しかし、相手の性格や考え方を知るためには、まず話すことから始めます。
そのため、私自身が仕事やプライベートの話をし、その後は双方の会話を通じて親睦を深めます。もちろん、この食事会の費用は全て会社負担です。
新入社員が入社して最初の3日間は、この食事会を毎日行います。その後は、1週間に1回程度に減らし、1か月程度経過すると不定期になります。
この食事会がとても重要で、面接では緊張されている方が多いので、なかなか本心を聞き出せないのですが、入社後であればフランクな感じで会話が出来ますので、その人のほんとの姿を知る事ができます。
最近「カジュアル面談」を面接前にされる企業があるようなのですが、双方の思惑が透けて見える感じがして私は否定的です。
どのようなことでも、何かを行うことが企業のブランドイメージを作り出すと思われがちですが、その本質を深く考えることが重要です。
通常、面接ではフォーマルな服装で臨む事になると思いますが、まずはそれを撤廃してカジュアルな服装を許可し、面接も 1 vs 複数(企業側)ではなく、1 vs 1で行う等に変えれば、面接自体がカジュアル面談に近くなります。
ただし、1対1で行う場合は、面接官が相当な経験者でなければ難しいでしょう。
その人の判断に全てを依存することになるためです。時間が許せば、面接官を交代で2人程度設けるのも良いかもしれません。これなら1対1の形になります。
今後、弊社でも「カジュアル面接」については検討していきたいと思います。
話が逸れましたので、元に戻します。教育はまず、相手を深く理解することから始まります。
基礎技術を学んでもらう
基礎技術としては、まずは第一に
「ソフトウェアが作れる事」
これがファーストステップとなります。私は Javaに精通していることもあり、実際の業務でも最も多く利用されることから、 Javaをベースに指導を行います。
方法としては、1つお題を出します。そのお題を自分で調べながら作ってもらう事になります。この時重要な事として
「自分で調べながら」
これが最も大切です。というのもエンジニアの仕事というのは、調べる技術が大きく関係します。
そのため、自分で調べるスキルを身につけなければ、教えられたことしか出来なくなり、エンジニアとして成長出来ません。
もちろん、調べるにあたってヒントとなる HPのリンクと簡単なプログラムを動かすまでの手順については説明し、実際に動かしてもらいます。
この時に、重要な事が以下です
30分以上悩んで答えが出ないなら聞く事
毎日進捗の報告をする事
始めのプログラムを作る場合、期間は設けない
実際の所、30分調べて分からないなら時間を費やしても結果が変わらない可能性が高いです。この時、どのように調べたかも含めヒヤリングしてからサポートをする形を取ります。
とはいえ、本人がどうしても自力での解決を希望すれば、それを見守る場合もあります。
ソフトウェア開発だけではないと思いますが、業務をこなしていく上で重要な要素として時間の概念があります。
決められた期間に決められた結果を出すことが重要となりますので、それを学んでいただく意図があります。
このような形で始めのプログラムを作って頂き、その作ったプログラムに機能を追加してもらいます。
これを何回か繰り返し、始めのプログラムに一通り機能が実装出来れば、ファーストステップは終了です。
この時点で、一度ヒヤリングします。プログラムコードのレビューやどの点が難しかった等ですね。このヒヤリングにより、次に出すお題の難易度を決定します。
恐らく今だと、ChatGPT等を使えば一発で完成しそうなのですが、その場合であればプログラムコードのレビューが出来ないと思いますので、今のやり方でも問題は無いと感じます。
教育を行う上で重要な事
「実際のソフトウェアを作らせる事」
です。よくあるのが、講習等で学校で学ぶ形の教育をされている所がありますが、ソフトウェア開発というのは
「学ぶのではなく慣れる」
これが基本です。その中で出て来た様々な問題に対してサポートし、自身で考え答えを導き出すことに慣れていただきます。そして、問題解決能力について伸ばしていきます。
もし私が新規に学ぶとしても、講義とかの勉強だとつまらないと思います。それより試行錯誤しながら、1つのソフトウェアを作る方がモチベーションもあがりますし、出来た時の嬉しさを知ることにもつながります。
ソフトウェアの制作に必要なこと
「問題解決能力」
です。プログラムの作り方はその流れの中で覚えられます。それよりも、調べ方や聞き方を学ぶ事で、この先の技術の進化にも柔軟に対応することが出来るようになります。
よって、私が重視する教育というのは
「自身で成長できる能力を伸ばす」
ここにフォーカスします。これはサッカーの指導現場でも同様です。基礎は教えますが、それをどのように生かすかは自身で考えていかなければいけません。
指導者は時にはヒントを与えたりしながら、サポートをに徹することが大切です。もちろん、状況によっては答えを教える場合もあるのですが、それは相手の理解度等で調整します。
私の元でこのような形での教育を行うと、2か月程でそれなりにプログラムは組め形になります。
もちろん、それに応えられるだけの能力や努力が本人に備わっている事も重要です。
この段階で、概ねエンジニアとしてやっていけるのか判断出来ますので、難しいと感じた場合は試用期間内でお断りする事もあります。
とはいえ、殆どの方は出来るようになりますので、深刻に考える必要はありません。
ここまでが、新人教育の初期となります。実務教育についてはまた別の記事で書きたいと思います。
いいなと思ったら応援しよう!
![尾川 俊司](https://assets.st-note.com/production/uploads/images/126774333/profile_2d9e1446b5cc8f11c0d30f20fde500aa.png?width=600&crop=1:1,smart)