IT未経験者が3か月で開発エンジニアに!4年目を迎えた新卒IT研修の内容をお伝えします

こんにちは、R&D チームの板垣です。月日が経つのは早いもので、2019年に新卒IT研修が始まってから今年で4度目の研修が終わり、職種問わず2019年から計71名のスタッフが現場に配属されていきました。
今回は、2019年に研修の記事を書いたきり更新をしていなかったので、改めて2022年 (今年) のIT研修の内容をお伝えします。
ちなみに、2019年の記事は以下でご覧になれますので、合わせてご覧ください。 tech-blog.optim.co.jp

はじめに

graph LR C("共通研修") P("STEP1-3") E("STEP4") B("ビジネス研修") A1("配属
(週1回のエンジニア研修を実施)") A2("配属") C--"ポテンシャル採用"-->P C--"エンジニア採用"-->A1 subgraph "IT研修" P--"エンジニアサイド"-->E end P--"ビジネスサイド"-->B E-->A2 B-->A2

IT研修の内容紹介の前に、新卒研修全体の流れを紹介します。
まず、IT研修の前にビジネスマナーや各種社内ツールの使い方等を教える共通研修があります。
その後IT研修を行うのですが、例年と異なり、今年からIT研修の途中 (STEP3終了時) でビジネスサイド (営業・企画) とエンジニアサイドに分岐するようになりました。
ビジネスサイドはエンジニアサイドの研修と並行して別途ビジネス研修を行い、ビジネスサイドも早期に活躍できる環境を整えました。
なお、共通研修、ビジネス研修、IT研修はそれぞれ担当を分けて連携しながら進めるようにし、IT研修ではエンジニアサイド向けの教育を集中的に行いました。
また、エンジニア採用の新卒スタッフは共通研修後すぐに現場配属となるのですが、こちらに関してもIT研修の運営陣で、今年から別カリキュラムで週1回のエンジニア研修を数ヶ月行いました。
今回全ての研修をご紹介するとボリューミーになってしまうので、今回はIT研修に絞ってお伝えしようと思います。

運営体制

今年もオプティムに2人しかいない Top Engineer であるエグゼクティブエンジニアの中野を中心にIT研修の運営を行い、実習の技術サポートチーム(通常業務では各サービスの開発をリードしているメンバーで構成)を設置して研修を行いました。私は運営及び技術サポーター兼任で参加しました。

研修概要

基本的には2019年から変わらず、講義による広い知識の獲得、実習によるプログラミングの体得の2軸で実施しました。

  • 講義
    • IT全般の知識インプットのために実施​
    • 全24テーマ
    • 実習の合間に事前に作成した動画を視聴
    • 別途、配属後に視聴する発展動画も今後作成予定
  • 実習
    • プログラミング能力獲得のために実施​
    • 基本的には自己学習​
    • 教材は書籍とネット情報​
    • 約2ヶ月強

講義内容

今年からリアルタイムでの講義はやめ、VOICEPEAKを用いてトークスクリプトから音声を自動生成、講義資料に埋め込むことで事前に動画を作成、実習の合間に各々好きなタイミングで各動画を視聴する形式にしました。
これにより、講義動画のアップデートを効率的に行えるようになりました。
また、各講義テーマごとに更に内容を分割し、各動画の時間を短くすることで動画視聴時の集中を維持できるようにしました。

シラバス

  1. 情報の探し方、追い方、学び方
  2. プログラミングの基本
  3. 業務開発
  4. 人とコンピュータとプログラム
  5. コンピュータアーキテクチャ、OS
  6. オブジェクト指向
  7. 並行・並列処理
  8. UML・ER図
  9. データ構造とアルゴリズム
  10. ネットワーク基礎
  11. IDと認証
  12. データベース
  13. WEB基礎
  14. WEBアプリケーション開発
  15. セキュリティ
  16. SSL/TLS・PKI
  17. 非機能と品質
  18. バグとのつきあいかた
  19. ソフトウェアテスト
  20. ソフトウェアアーキテクチャ
  21. システムアーキテクチャ
  22. インフラ設計
  23. 仮想化技術

実習内容

これまでの変更点

  • 2020〜
    • 難易度を上げて、題材をTODOアプリからチャットアプリに変更
      • 研修期間を延長
  • 2021〜
    • Androidアプリ+WEBアプリ開発から、WEBアプリ開発のみに変更
      • 選択と集中による知識・スキル定着と研修日数の短縮を図る
  • 2022〜
    • 個人開発 (STEP1) とチーム開発 (STEP4) の間に、SQLやBIツールを用いた実習 (STEP2)、NoCodeツールを用いた実習 (STEP3) を設置
      • ビジネスサイドは、STEP2-3の内容を配属後に活かせるようにする
      • エンジニアサイドは、STEP4をより効率的・効果的に進められるようにする

実習の流れ

graph LR S1("STEP1 (個人ワーク)
写経およびチャットアプリの
フロントエンド開発") S2("STEP2 (個人ワーク)
SQLとBIツールによる
データの可視化") S3("STEP3 (個人ワーク)
NoCodeツールを用いた
ToDoアプリ開発") S4("STEP4 (チーム開発)
チャットアプリ開発
(フロントエンド+バックエンド)") S1-->S2 S2-->S3 S3-->S4

STEP1

目的
  • 成功体験を得る
  • プログラミングの考え方を養う​
  • 調べ方、キャッチアップの仕方を学ぶ​
  • 試行錯誤、トライ&エラーの仕方を学ぶ​
内容
  • 写経
  • プログラミングの基礎をインプット
  • チャットアプリのフロントエンド開発
    • 仕様 (機能要件・非機能要件) は運営から提示
    • ユーザー周り(ログイン等)、通信は考えない
    • 発展として永続化を行う

STEP2

目的
  • 職種問わず、配属後の業務でデータを自在に扱えるようにする
内容

STEP3

目的
  • 職種問わず、WEBアプリのUIや機能の名称や挙動の共通認識を持つ
内容
  • NoCodeツールの『Bubble』を用いて、ToDoアプリを開発する
  • 仕様 (機能要件) は運営から提示

STEP4

目的
  • 業務開発・チーム開発をスムーズに行えるようにする
  • ネットワーク・WEB (HTTP) を意識して開発できるようにする
  • (WEBアプリケーション) フレームワークに慣れ親しむ
内容 (前半)
  • 参考図書や講義動画で以下の理解を進める
    • WEB
    • 認証
    • バージョン管理システム
    • プロジェクト管理システム
    • バックエンドの言語・フレームワーク
内容 (後半)
  • 3-4人1チームでチャットアプリを開発する​
  • チームメンバー、チームで使用するバックエンドの言語は運営の方で決定
  • 仕様 (機能要件・非機能要件) は運営から提示
  • 機能
    • ユーザーの作成からログイン、ログアウト他
    • ログイン後、メッセージの登録他​
  • ローカル開発環境イメージの例
graph LR subgraph LAN subgraph PC WB("WEBブラウザ") DS("devServer
(Vue.js)") API("バックエンドAPI
(Rails・Ruby on Rails)") Redis("Redis") DB("PostgreSQL") P("Pgweb") RI("RedisInsight") subgraph "Dockerコンテナ" P end subgraph "Dockerコンテナ" RI end subgraph "Dockerコンテナ" API end subgraph "Dockerコンテナ" Redis end subgraph "Dockerコンテナ" DB end WB-->RI RI-->Redis WB--"/foo … index.html を返す
/css/bar.css
/js/baz.js
/api/qux"-->DS DS--"/qux"-->API API-->Redis API-->DB WB-->P P-->DB end end

研修中の様子

研修は出社+在宅勤務のハイブリッドで行いました。 また、在宅勤務時はTeams会議を常時行い、いつでも同期的なコミュニケーションを取れるようにしました (集中したい時は会議から抜けるのは自由)。 研修中は現場配属後よりも同期的なコミュニケーションを多めに行い、技術サポートチームによるフォローを厚くしました。 スケールを考えると同期的なコミュニケーションの割合が高いというのは悩ましいところではありますが、重要なのはIT未経験者が短期間で現場で業務できるレベルになること、より早く成長することなので、必要コストということで同期的なコミュニケーションの割合を高めました。 この点は、研修を受けているスタッフにも好評でした。 ただし、同期的なコミュニケーションによって分かったこともちゃんと GitLabのIssue/MR等に証左として残す (文字で残して共有する) というのは意識してやってもらいました。 現場配属後は、成長につれて徐々に非同期のコミュニケーションの割合を増やしていけるのではないかと思います。 この辺りのコミュニケーション手段に関しても講義動画を作っているので、状況に応じてより良いコミュニケーション手段を選択できるようになっていただければと思います。

最後に

オプティムでは、世界の人々・各産業に大きく良い影響を与えたい方、身の丈に合わない大きな志を持って楽しみながら挑戦し、自ら己の可能性を広げられる方、そして、あらゆる属性を意識せず思いやりを持ってこれからのオプティムという組織・文化を創っていって頂ける方を新卒・中途問わず通年で募集しています。新卒採用では引き続きエンジニア志望(プログラミング未経験者可)、ビジネスサイド志望ともに募集しています。私たちと一緒に世界を変える大きなことにチャレンジしたいという方、是非以下をご覧になってください。ご応募お待ちしております。2023年度卒の採用も継続中です。

www.optim.co.jp

※なお研修内容は研修を受けるメンバーのスキルや必要な技術トレンドに合わせて毎年ブラッシュアップしておりますので、2023年度以降も同じ内容とは限りません。

※ 2022/11/30 一部内容を修正加筆しました