前書き
- RubyonRailsで開発している企業にサーバーサイドエンジニアとして転職し、一ヶ月間受けた研修で得た学びを雑に分類してまとめました。
- どの言語でもそうですが独学で初心者向け記事やチュートリアルを読み込むだけでは得られない内容が多くあったのでまとめてみた。これまでこういったまとめを作ったことがなく初めてです。
- 完全に自分のメモ書きですが、 Railsやコーディングに初めて取り組む人にとっては役立つこともあるかと思いまとめています
自分の経験とスキル
- 前職で一年間toB向けWebサービスのフロント+バックエンド+インフラ(ちょこっと)に携わっていた
- NuxtJs+NodeJs、DBはCloudSQLとかとか。
- NodeJsで開発したAPIをコンテナ化してCloudRunにデプロイしたりなどの基本的なことはできる
- Railsは半年ほど前に初めて触った。ORM自体の経験もほとんどない
研修概要
- 事前にRailsで自分が開発した簡単なTodoアプリをレビューしてもらい、改善点・問題点を先輩がリストアップ
- 各項目ごとにSTEPとして分けてもらい、順に取り組みPRとしてレビューしてもらう
- 一人メンターの先輩がついてくださり、その先輩中心にサーバーサイドエンジニアの方々にレビューしてもらう
- 毎週1on1を実施しフォロー&常にSlackで質問できる
研修の目的とゴール
メンターの先輩が設定してくださったものを一部改変)
目的
- 入社後1ヶ月以内に企業の開発スタイルに馴染み、一つの案件のサブを任せられるようになる
- モチベーションを維持しながらRailsで開発することに自信を持ってもらえるようにする
GOAL
- 転職先企業の開発環境の基礎知識をつけてもらい、どう動いているかを理解してもらう
- Docker、Linter、CI/CD
- Rails Wayに則ったアプリケーション開発ができるようになる
- ActiveRecord / Routing周りを重点的に
- 転職先企業の開発スタイルについて一通り理解する
- PRの粒度 / PRレビュースタイル / ブランチ運用
研修を受けての感想・取り組み方
-
Railsの経験が
乏しいほぼない自分が、スムーズに実務開発に取り組めるようにとても考えて用意してくださった研修だったと感じています。 -
研修は
「STEP2:開発環境を整えよう」「STEP8: より使いやすいインターフェースに作り変えよう」
のような幾つかのSTEPに分かれており、STEP毎にある程度のやるべきことは書かれている状態のNotionを共有していただきました。
-
それをもとに、自分でまずは考えて取り組みPRを出し、開発メンバーのSlackチャンネルでPRレビューをもらい、自分のアプリの改善をしていく形で進めていきました。
-
「自分で考えて取り組む」ことが主ではありますが、どれだけ考えてもわからなければ開発メンバーがいるSlackで質問するようにしていました。その際の先輩方の物腰はテキストベースでもとても穏やかで、ビビらずにどんどん質問ができていたと思っております。めちゃくちゃレベルの高い先輩からのレビューをバンバンいただき、実際のプロジェクトのコードも時々参照しつつ調べながら進められたので、とても密度の高い一ヶ月でした。
-
純粋にエンジニアとしての経験不足からくるミスや改善点についても、とても丁寧なコメントとソース、オプショナルな知識ともにレビューコメントをくださり非常に取り組みやすくモチベーション高く望むことができたと思っています。
-
めちゃくちゃにお忙しい中でここまで質の高い研修を用意し、サポートしていただけてとても嬉しかったです。ありがとうございます🙇♂️
学びの技術領域など
- RubyonRails, Docker, GithubAction, CircleCIなどが中心です。ざっくり分野ごとに分けてあります
- レビューコメントや自分で調べたことなど、Rails関係なく初歩的な知識不足もあり恥ずかしい…
- 断りがない限り、引用形式の記述は先輩からのPRコメントを一部改変して引用したものです。
Rubyの文法とか基本的なこと
コード品質担保系
Docker・その他
- Rails初級者が一ヶ月研修を受けて得た学びをまとめた~Docker・ほか~ - Qiita (Dockerfileについてや、その他分類しきれなかった項目について)
読んでおくべき書籍
より専門的なスキルを身につけるために、以下の書籍を読んで基礎知識を増やそう
- 安全なウェブサイトの作り方:IPA 独立行政法人 情報処理推進機構
- 現場で使える MySQL (DB Magazine SELECTION) | 松信 嘉範
- Web API: The Good Parts | 水野 貴明
- 体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践 | 徳丸 浩