エンジニアの新入社員研修について考えてみた

2023.11.03

情報社会に加えて、今年は生成AIの普及もあったことから時代に追随した研修カリキュラムにアップデートしていった方が良いと思ったため、自身の頭にある考えを整理してみたいと思います。

研修の目的

企業にて実施する研修の目的としては、下記の2点を挙げられると考えています

  • チーム配属後に業務のキャッチアップが少しでも速くできるように基礎となる知識をつける
  • 同期の中で気軽に相談などができるようにする(同期がいる場合にはとても貴重な存在になるかと思っています)

研修の進め方

学校のようにテキストに沿って講師が講義していくスタイルが主流ではあるかと思いますが、現代では外部に良質なコンテンツがあるので、それらを上手く活用する進め方にシフトした方が良いのではないかと考えています。

研修のセクションに対して、概要とゴールを定義した上でその内容を伝えた上で事前にセクションに適したコンテンツを各自視聴する方針です。

コンテンツとしては、Udemy、他社様が公開している研修資料、YouTubeなどから選定します。

講師としては、質問対応及び知識の補填を実施し、受講者に対する学びのサポートの役回りを強くすることで、より受講者を俯瞰的に把握して対応できることや講師の負荷軽減にも繋がると考えています。

ただ、視聴したのみにしてしまうと受講者がセクションに対してどの程度理解できているか(定義したゴールに到達しているか)がわからないため、その点は用意すべき内容と思います。

例えば、Udemy Businessであれば、カスタム問題を作ることも有用であると思います。

上記に加えて、セクションごとに受講生が振り返りを実施し、それを基に講師と1on1で対話することでひとりひとりに寄り添った研修ができるかと思いました。

研修のスタイル

以下3点を意識した上で実施します。

  • 研修といっても会社は学校ではないので、その点を講師/受講者(社員)が共通認識を持った上で実施する
  • 研修の内容に応じて、ティーチングとコーチングのバランスを取る
  • 教えた後は、よきメンターとしてあくまで受講生が自身で考えて、自走できるようにサポートする

研修カリキュラム

プログラム言語の選定

企業によっては、研修後に配属先で扱っている技術選定などが異なっていることもあるかと思いますので、基礎研修と主要に学ぶプログラミング言語は私の先輩も言っていましたが、アルゴリズムの理解に重きを置いた選定と研修内容にすべきかなと思います。

毎年研修後に耳にするのは、研修で受講した言語が現場では使用していない言語だったので生かすことができなかったといった意見がありますので、マーケットの需給バランスを見て言語を選定することも大事だと思っていますが、そこを第一にするのではなく、どの言語であっても共通する部分や最初のうちに抑えておきたいポイントに絞った内容にした方が良いと考えています。

具体的には、Java、JavaScript、TypeScriptの言語を選定して、以下についてを理解できるようにしておくと他の言語であってもその内容をベースにキャッチアップできるかと考えています。

  • アルゴリズムの理解
  • オブジェクト指向
    • クラス
    • インターフェース
    • ... etc
  • 関数型
  • 動的型付けと静的型付け
  • DI
  • アーキテクチャー
    • 何らかのアーキテクチャー(レイヤード、オニオン、クリーン)を題材として、アーキテクチャーの思想を伝えた上で密結合、疎結合についての理解

あたりでしょうか。

また、理解を手助けするため、またより深く学ぶための有用な書籍などを共有することも良いと思っています。

ペアワーク

実務ではチームでコミュニケーションを取りながら進めていくことになります。

カリキュラムとして、最後の方にチーム開発をおこなう場合が多いですが、そちらに加えて早い段階から小さなチームを作って、チーム内でコミュニケーションやレビューし合って、セクションの終わりに発表することも有用と考えています。

課題を与えて自分たちでどうやって解決すべきかを考える習慣を早めに作った方が良いと思っているため、そのような仕掛けを入れることも良いと思っています。

AIツールの活用

ChatGPTをはじめとして、有用なツールが一般的になりました。

活用方法や注意事項を伝えた上で、受講生は積極的に活用すべきだと個人的には思っています。

ChatGPTは同じことを何度聞いても叱られたりすることはないので、良いAIメンターにできると考えています。

ただ、活用する上で注意点のひとつとしては、ChatGPTがxxxと言っていますといった自身で思考することを放棄してしまったようなコミュニケーションはNGとするような決まりを作るとか、ある課題に対してはAIツールを使わないでやってみるとかをすると良いかとも思っています。

成果物の提出方法

HOWの部分になりますが、研修の中でも実務を意識した内容として、セクションごとに課題/宿題がある場合には、GitHub上でコミュニケーションと提出をおこなうようにすれば良いと考えています。

Git、GitHubを学ぶセクションを設けますが、日頃から触れる機会を作っておくことで副次的な効果も得られると思っています。

Web開発基礎研修

私は、直近4年くらいはWebエンジニアとして設計、実装の経験を積んでいるのですが、今年の初めに新入社員研修でも活用できるようにWeb開発をする上で必要となる内容を整理してみました。

こちら>のリポジトリにて、講義用の資料と実践編としての利用を想定したクイズアプリの資材を作成しました。

他社様の新入社員研修資料

素晴らしい研修資料が毎年公開されていますので、とても参考になります。

などなど

おわりに

超高齢化社会となり、働き手が減っていくことは現実としてはあるので、少ない人数でもより効率良く社会を回す必要があります。

それを手助けできるのはテクノロジーであり、今後もますます需要が高まると予想されますので、AIツールと上手く共存しながら、自身も1日でも長く活躍していけるよう精進しますが、今後核となる世代の方やこれからITエンジニアを目指す方が活躍できるように自分でもこういった育成部分についても考えて実践できるようにしたいと思っています。

最後までお読みくださりありがとうございました。