Upgrade to Pro — share decks privately, control downloads, hide ads and more …

プログラミング未経験の学生をエンジニアにしてきたノウハウを公開

 プログラミング未経験の学生をエンジニアにしてきたノウハウを公開

株式会社ミダスキャピタル主催のVertical SaaS Study「アンドパッド,FiNC,ミクシィの新人若手エンジニア成長戦略」で登壇した資料です
https://midastech.connpass.com/event/246433/
---
FiNCで現在も利用しているエンジニア研修プログラムとプログラム設計の考え方について登壇しました

54699fd8ac6ee0f4a45e632ee7c77a3e?s=128

Shinozuka Fumiya

May 17, 2022
Tweet

More Decks by Shinozuka Fumiya

Other Decks in Technology

Transcript

  1. プログラミング未経験の学生をエ ンジニアにしてきたノウハウを公 開 2022-05-12 Shinozuka Fumiya

  2. 2 自己紹介 篠塚 史弥 @shinofumijp 2014年3月東京大学大学院学際情報学府を卒業 2014年3月に株式会社FiNC Technologiesに入社 サーバーサイドを中心にサービス開発全般に携わる エンジニアチームの採用、教育、マネジメントも行う

    2020年4月、CTOに就任
  3. 3 株式会社FiNC Technologiesについて

  4. 4 本資料は株式会社FiNC Technologiesの許可なく複製・配布しないようお願いいたします。 CONFIDENTIAL © FiNC Technologies Inc. 4

  5. 5 FiNCが解決する課題とその手法 医療 v 予防 医療従事者の領域 生活習慣の乱れ 栄養・運動・休養 FiNCの領域 寝たきり

    重症化 脳卒中 衰弱 関節疾患 認知症 骨折 身体機能の低下 肥満 高血糖 筋力低下 高血圧 骨密度低下 柔軟性低下
  6. 6 本資料は株式会社FiNC Technologiesの許可なく複製・配布しないようお願いいたします。 CONFIDENTIAL 6 Business Model FiNCアプリを軸にしたサービス循環 © FiNC

    Technologies Inc.
  7. 7 組織体制 従業員数:74名(2022年5月1日時点) プロダクト毎に事業部が分かれており開発チームが所属 開発本部が横断で開発標準化と体制作りを行う FiNCアプリ事業 法人事業 OEM事業 開発本部 開発チーム

    開発チーム 開発チーム
  8. 8 開発チーム チーム人数 8名前後 構成人員 クライアントエンジニア:2-3名 サーバーエンジニア:2-3名 QAエンジニア:1名 デザイナー:1名 プランナー:1名

    主な利用技術 クライアント:iOS、Android、Flutter サーバー:Ruby on Rails
  9. 9 FiNCで行っている研修内容について

  10. 10 本発表で参考として持ち帰ってもらえるもの 1. 未経験エンジニアを短期間で現場配属するための研修設計 2. 現場配属時の期待値と開発OJTの進め方 3. 研修期間で確実に成長してもらうために行うこと

  11. 11 研修概観

  12. 12 未経験インターン生向けエンジニア研修を始めたきっかけ 会社の状況 2014年に篠塚が入社 社員数10名でパーソナルジムを展開するベンチャー企業 エンジニアは0名、サービス開発は行っていない 行った採用活動 ・中途採用 => エンジニアのネットワーク、エンジニア採用のノウハウもなく応募が来ず

    ・新卒採用 => 次の入社時期まで1年以上かかる ・経験者向けエンジニアインターン => 弱小ベンチャーが優秀な学生を採用するのは困難 大学を卒業して間もなかったため、後輩学生とのつてはあったので 未経験の学生インターンを採用して研修で即戦力化!を行うことに
  13. 13 FiNCで行っている研修の分類 初期研修 配属後研修 研修内容 サーバー開発基礎 サーバー開発基礎 SRE/モバイル開発な どの技術研修 事業研修

    期間 3ヶ月 3-6ヶ月 1-2ヶ月 1-2日 方法 実践型 OJT 座学 + OJT 座学 ゴール サーバーサイドエンジニアとして自 走できる状態 サーバーサイドエンジ ニアとして独り立ちでき る状態 業務に必要な知識の 獲得 業務に必要な知識の 獲得 対象者 タイミング プログラミング未経験者 他職種からのコンバート時 現場配属後 他職種へのコンバート 時や必要に応じて 現場配属後 今日のメイン
  14. 14 初期研修におけるゴール 「サーバーサイドエンジニアとして自走できる状態」 • 手を動かせる程度の開発の知識を持っている • 「何がわからないのか」がわかる • 調べ方と学び方を知っている

  15. 15 初期研修の内容の一部紹介

  16. 16 マイルストーン 1-2週目 : ローテクでのローカル開発体験 Webの基礎とプログラミングを学ぶ 3-6週目 : 実践に入るための準備 Ruby/Railsの研修

    Git、GitHub、設計も学ぶ 7週目~ : 学んだ知識の総まとめ サービスの開発とデプロイ
  17. 17 1-2週目の具体内容 • Linuxコマンド • PHP • RDBの正規化 • MySQL

    • Webの基礎(クライアント・サーバモデル) • HTML/CSS • セキュリティ • 掲示板作成
  18. 18 Rubyメインの会社なのにPHPを学んでもらう理由 • クライアント・サーバモデルを理解してもらう上でお手頃 • HTMLへの埋め込み、Webサーバからの利用、ルーティングが楽 ◦ WEBRickのサーバ起動や、Rackや、Railsのルーティングってむずくない、、、? • 数日研修が長くなっても先に概念を理解してもらう方が割に合う

  19. 19 研修に使う資料 • 8割くらいはありものを利用している ◦ 動画はドットインストールやProgateなど ◦ インターネット記事でも参考になるものは利用 • RDBの正規化やWebの基礎などはちょど良い資料がなかったため自作

    + 講義を行っている ◦ 難しいものが多い ◦ 逆に書いて欲しいことが書いてなかったり • 資料自体よりもプログラムの進め方を重視している
  20. 20 研修を行う上で大事にしていること

  21. 21 メンターによるサポート • どんなに優秀でも初学者が詰まることはあるもの • 答えを教えるのではなく考え方/調べ方/質問の仕方を教える • メンター向けの指導ガイドラインも用意している

  22. 22 理解度チェックを行うこと • インプットのための学習資料は世の中に溢れている • アウトプットの確認と方向修正をしてもらえる環境に価値を置く • 「研修時点でどこまで理解しておくべきか」の基準としても利用

  23. 23 厳密さよりもわかりやすさ重視 • 「公式ドキュメント読んでおいて」で済ませたいけどそうもいかないので • 手を動かせるレベルに概念をまずは理解してもらう。厳密な理解はその後で。 • 詳細を知りたくなった時の手引きは用意

  24. 24 技術面以外の指導 • 研修と現場配属後に成長するには「マインド」が重要 • コミュニケーション、ロジカルシンキング、仕事の段取りなどのビジネススキルも • 面接でのカルチャーフィット確認は必須

  25. 25 研修プログラムの継続的改善 • 習得が必要な技術が増えている ◦ 自社要因としてはサービス成長に伴う開発・運用の複雑化 ◦ 環境要因としては新技術の登場、技術の抽象化と細分化 • 配属後のOJT負担と現場配属までの研修難度のバランス調整

  26. 26 まとめ • 配属前の初期研修では「自走できること」を目標に研修を行っている • 研修に用いる資料ではなく、資料を使いながら研修をどう進めるかを重要視している • 研修プログラムは継続的な改善が必要

  27. 27 END

  28. 28 We’re hiring ! 採用情報まとめ https://herp.careers/v1/finctech Wantedlyストーリー https://www.wantedly.com/companies/finc/stories エンジニアブログ FiNC

    Tech Blog https://medium.com/finc-engineering