「完全に理解した」状態の僕が「チョットワカル…」になるまでのとある企業の新人研修  part.1

# 導きのはじまり
部門長「研修の一環として、社内で実際に運用するアプリを作ってもらおうと思う」

僕「え・・・？　研修なのに実際に使うものを作るんすか？ まだ入社して2週間なんですが・・・」

部門長「実際に運用するものを作るから研修になるんだよ😀 多少バグってもいいから動くものを作ろう！」

僕「oh...」

部門長「じゃあ、どんなアプリにするか一緒に考えていこうか」

# 自己紹介

みなさん初めまして。
エンジニア1年目の小林と申します。

この記事を見てくださっている方々の中には、エンジニアに転職しようと悩んでいる方、エンジニアの新人研修って何をするんだろうと思っている方はいませんでしょうか？

ここでは、僕が今の会社にエンジニア転職して、最初の研修で行ったことをご紹介します。
新人研修の一モデルとして参考になれば幸いです。

## ****開発環境****
Ruby on Rails
## ****この記事の対象読者****

・エンジニアに転職しようと考えている方
・エンジニア転職のために勉強中の方

## 入社前 ~勉強編~
### 著者のスペック
・年齢26歳
・社会人歴2年（今年で3年目）
・IT業界未経験
・理系大卒だけどプログラミングにはノータッチ
・前職：電話営業、WEBマーケティング

### プログラミング学習 ~入社までの勉強編~
学習教材：プロゲート、書籍、スクール
平日：1-2時間
休日：5 時間
期間：8ヶ月
合計時間：550時間程度


[プロゲート](https://prog-8.com/)はRuby on Rails, ruby, SQL, HTML/CSS, JavaScript, jQuery, Gitに関するコースは全部やりました。
その結果、気がついた時にはレベル230まで上昇していました。
プロゲートをやった直後は「レベルは四天王クラス！でも、何も作れないし、プログラミング分からない。。😭」そんな状況。
これは勉強あるのみだと考え、書籍学習に移りました。

▼実際に使った参考書は以下です。（当時の理解度は正直20~30%な感じ）
[現場で使える-Ruby-Rails-5速習実践ガイド](https://www.amazon.co.jp/%E7%8F%BE%E5%A0%B4%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B-Ruby-Rails-5%E9%80%9F%E7%BF%92%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89-%E5%A4%A7%E5%A0%B4%E5%AF%A7%E5%AD%90/dp/4839962227)
[ゼロからわかる Ruby 超入門](https://www.amazon.co.jp/%E3%82%BC%E3%83%AD%E3%81%8B%E3%82%89%E3%82%8F%E3%81%8B%E3%82%8B-Ruby-%E8%B6%85%E5%85%A5%E9%96%80-%E3%81%8B%E3%82%93%E3%81%9F%E3%82%93IT%E5%9F%BA%E7%A4%8E%E8%AC%9B%E5%BA%A7-%E4%BA%94%E5%8D%81%E5%B5%90/dp/4297101238/ref=pd_bxgy_img_sccl_1/356-7128678-8778837?pd_rd_w=6BQdv&pf_rd_p=020fee25-8ced-4191-bce3-27e7ce0c0e3b&pf_rd_r=DHVJJ5RWW4B6CBHG3ZFG&pd_rd_r=f0b0bd41-b4de-4600-9381-f666acf80db6&pd_rd_wg=O6Kvg&pd_rd_i=4297101238&psc=1)
[パーフェクト Ruby on Rails](https://www.amazon.co.jp/%E3%83%91%E3%83%BC%E3%83%95%E3%82%A7%E3%82%AF%E3%83%88-Ruby-Rails-%E3%80%90%E5%A2%97%E8%A3%9C%E6%94%B9%E8%A8%82%E7%89%88%E3%80%91-Perfect/dp/4297114623/ref=pd_vtp_sccl_2_4/356-7128678-8778837?pd_rd_w=HH5Jp&pf_rd_p=cbb45385-7b99-44b7-a528-bff5ddaa153d&pf_rd_r=DHVJJ5RWW4B6CBHG3ZFG&pd_rd_r=f0b0bd41-b4de-4600-9381-f666acf80db6&pd_rd_wg=O6Kvg&pd_rd_i=4297114623&psc=1)
[Ruby on Rails 6 実践ガイド](https://www.amazon.co.jp/Ruby-Rails-%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89-impress-gear/dp/4295008052/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=ODH924KXOO92&keywords=Rails+%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89&qid=1651758862&s=books&sprefix=rails+%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89%2Cstripbooks%2C229&sr=1-1)
[Ruby on Rails 6 実践ガイド[機能拡張編]](https://www.amazon.co.jp/%E8%91%97%E8%80%85%E3%81%AE%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AB%E3%81%A6%E3%80%81%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E3%80%81%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E6%83%85%E5%A0%B1%E3%82%92%E6%8F%90%E4%BE%9B-Rails-%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89-%E6%A9%9F%E8%83%BD%E6%8B%A1%E5%BC%B5%E7%B7%A8-impress/dp/4295008877/ref=pd_bxgy_img_sccl_1/356-7128678-8778837?pd_rd_w=3cPs5&pf_rd_p=020fee25-8ced-4191-bce3-27e7ce0c0e3b&pf_rd_r=AQM8DGV718C45XYBSZ82&pd_rd_r=ee107f3d-0423-4d2e-bf42-89f49e6dff3b&pd_rd_wg=dJUL7&pd_rd_i=4295008877&psc=1)


この時点で、無根拠に等しい自信がありました。
「書籍そこそこやったし、ある程度スキルも身についてるやろ！これならエンジニアになれる！！」

**浅はか・・・浅はか也・・・**

なぜか勉強時間をある程度確保した時点で安心しちゃってました。
プログラミングって学校のテストみたいに偏差値で測れず、どれくらい上達したのかが実感しにくいので、勉強していることが安心材料になっていました。
どうしてプログラミング学習をするのか、目的を見つめ直すことも必要だなと感じます。

ちなみに、個人的な感想ですが「現場で使える-Ruby-Rails-5速習実践ガイド」はおすすめです。理由としては、図解が多く、読みやすくて分かりやすいからです。ただ欠点があるとすればバージョンが古いこと。内容が５系のRailsなので新しいバージョンが出ることを首を長くして待っています。
# 転職後 〜研修編〜

## ①参考書での学習

エンジニアの部署に配属されてから最初に行ったのは、教材による学習でした。
[Ruby on Rails 6 超入門](https://www.amazon.co.jp/Ruby-Rails-%E8%B6%85%E5%85%A5%E9%96%80-%E6%8E%8C%E7%94%B0-%E6%B4%A5%E8%80%B6%E4%B9%83/dp/4798059064/ref=mp_s_a_1_2_sspa?crid=3IW0SGR8W2AOW&keywords=ruby+on+rails&qid=1636110559&sprefix=ruby&sr=8-2-spons&psc=1&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUEyQldFMkVKWEgzSjBIJmVuY3J5cHRlZElkPUEwOTM1ODA5MkFVSDJRRFI4QThMJmVuY3J5cHRlZEFkSWQ9QTI3Q1IzNkpMUzE4RkQmd2lkZ2V0TmFtZT1zcF9waG9uZV9zZWFyY2hfYXRmJmFjdGlvbj1jbGlja1JlZGlyZWN0JmRvTm90TG9nQ2xpY2s9dHJ1ZQ==)
[HTML&CSSとWebデザインが 1冊できちんと身につく本](https://www.amazon.co.jp/dp/4774190640?tag=mybest_presses_5643-22)

1~2週間を目安に教材を2冊完了させることで、プログラミングの基礎をざっくり理解しようというものです。
使っていた本は「初めてアプリケーションを作る方」のための参考書でこれからプログラミングを学習する方にぴったりの入門書でした。

少しプログラミングをかじっていたこともあり、苦労することなく完了できました。

## ②仮想プロジェクト
次に行った研修は、その名も「仮想プロジェクト」

**仮想プロジェクトとは**
新入社員の登竜門、簡単に言うと「開発の模擬体験」で、社内で運用することを前提に置いたアプリの開発研修です（お客さんは使わない）。
未経験者にいきなり会社のシステムを任せるのは少々ハードルがあるので、本場に入る前にアプリを作る体験（アプリの設計、開発、リファクタリング、デプロイ後の障害対応など）を一連で体験しようというものです。

研修の説明を受けるまでは、「アプリを実際に作ってみる」程度の内容しか聞いていなかった。

**そして、話は冒頭へ戻る。**

研修の内容を聞いた直後は、3割の「やったるでぇ！」 と7割の「できんの・・？」 


そう思ったのも、部門長とのアプリの設計のディスカッションを行った後、ざっくり以下のような機能が必要だと分かったからです。
・Slack-APIを使ったログインとメッセージ送信機能
・定期実行処理
・よくあるCRUD機能

（めっちゃ面白そうやけど、プログラミング歴2週間向けの研修内容とちゃうで 汗汗）
（自分以外が使うんだから、バグるものは作れない！）
（基本的なCRUDしか触ったことないけど、大丈夫か？）
（開発期間短くね？）
（What is API?）

**部門長 「でも、サポートはあるから安心してね」**

>**仮装プロジェクトのルール**
>
>・どのようなアプリを作るのか、お題は決定済み
・docker などの開発環境やインフラ周りは先輩が用意
・2人1組のペア（新人2人）で実装を進める（３〜４人ペアの場合もある）
・アプリのHTMLデザインは上司から頂き、それに沿ってHTMLを書いていく
・テーブル設計、DB設計はベテランによる修正がガッツリ入る（後半での絶望的な手直しを避けるため）
・コーディングの方法は自由で、アプリ内でやりたいことが実現できればOK
・ググった内容を理解せずにコピペするのはNG
・わからないことを質問するのはOK（いつでも質問Welcom！という温度感なのは本当に救いでした）
・開発期間は約1ヶ月（テスト期間含む）

お題が決定されていて、インフラ周りは偉大な先輩のサポートがある。
これを聞いた時は本当に一安心した。
1ヶ月で社内の課題を発見し、開発、インフラの設定を行うとなると、開発期間1ヶ月はかなりハードモード。

でも実際は、質問できるし、先輩のサポートもある。そして、開発は一人じゃない。

**「なんかいけそう！」**

（やったことのない機能ばかりだけど、1ヶ月後にはスキルアップした自分がいるはずだ）
（社内の問題解決のために作るんだから、貢献できる、モチベーションが高いぞ）
（知らないことはグーグル先生が教えてくれる）


特に、アプリのアイデアを出しているときは本当に楽しかったです。
「あんなことがしたい」「こうなったら最高」というように想像を巡らせるのは、
夢が広がってる感じがして気分が高揚したのを覚えています。



## 最後に
ここまで読んでくださり、ありがとうございます。
今回はざっくりとした研修内容についてご紹介いたしました。
次回は、この仮想プロジェクトで作ったアプリについてご紹介します。

果たして、無事1ヶ月以内に社内アプリのリリースをすることはできるのか。。。

続きのpart.2 は[こちら](https://qiita.com/kobayashimakoto/items/ca131b8fbe8007a18f00)から！

[part.3 はこちら](https://qiita.com/kobayashimakoto/items/628e76e1b61b843b218d)