プログラミング学習のためにやったこと
まずはプログラミングの基礎的な勉強として、 当然ですが興味のあるプログラミング言語、 そしてWeb フレームワークの勉強から始めました。
言語もフレームワークも Web エンジニアとして一番大事なスキルだからです。
そこで私は高速でアプリを作れる Web フレームワークである Ruby on Rails に興味があったため、 Ruby と Ruby on Rails をセットで学ぶこととしました。
順番としては、最初に無料で公開されている Ruby on Rails チュートリアルをなんとか一通りこなして全体像を掴みました。
次に、細かい仕様を含めて体系的に学ぶために 以下 2 冊の本を 3 周、手を動かしながら読み進めました。
最初は分からないことだらけであまり進まず、焦る日々でしたが ここでなんとか堪え、勉強に専念することで次のステップに進む準備ができました。
プログラミングスクールへの通学
本やチュートリアルでの勉強を終えた後は、 Ruby on Rails でのオリジナルアプリケーション作成を課題とする プログラミングスクールにオンラインで通うことにしました。
通学前の時点で一通り、知識としてのインプットは出来たものの 本やチュートリアルで身に付けたスキルが現場ですぐに役立つかどうかには不安がありました。
そこで、メンターのフォローを受けながら実際に Web アプリケーションを作りつつ、 コードレビューやメンタリングを通し、現場で使えるスキルを身につけることが目的です。
実際、本やチュートリアルの真似だけでは応用が効かず、 いろんなメンターに質問し、レビューしてもらうことで ようやくオリジナルのアプリケーションを作ることがでいました。
スクールはそれなりにお金がかかる大きな出費ではありましたが、 現役のエンジニアから細かくサポートを受けながら アプリケーションを作れたことは、自信に繋がる経験となりました。
AWS (クラウド) 資格の取得
現在、多くの現場で AWS が活用されており、 AWS をはじめ、クラウドは Web エンジニアにとっては必須のスキルであるといえます。
そんな中、プログラミングスクールと同時並行ではありましたが、 転職までに私は以下の AWS 資格をすべて独学で取得しました。
- AWS ソリューションアーキテクト・プロフェッショナル
- AWS DevOps エンジニア・プロフェッショナル
- AWS セキュリティ
ソリューションアーキテクト、デベロッパ+運用系の資格については アーキテクトを取った後、最上位であるプロフェッショナルレベルまで取得しています。
取得までにかなり苦労はしましたが、ここまで力を入れたのは 未経験でありながらスキルを証明するためには資格取得が有効だからです。
資格自体はあくまで体系的な知識を持っていることの証明にしかなりませんが、 それでも資格取得を通して AWS に触れてスキルは身につきますし、 転職活動を行う上でも有利に進めることができました。
実際、現在の会社に入社してから採用担当に聞いたのですが AWS 資格が大きな評価ポイントになっていたそうです。
皆さんそれぞれが目指す方向性は異なるため、 必ずしも AWS 資格を取るべきというわけではありません。
しかし、クラウドも扱える Web エンジニアを目指すのであれば、 まずは関連した資格を取得するのがおすすめです。
ポートフォリオ作成のためにやったこと
ここまでで最低限のスキルを身につけることは出来たため スキルを証明する一つの形であるポートフォリオ(※)を作成することにしました。
※)ここでは、応募先の企業に見せるために公開する Web アプリのことを指しています。
私がポートフォリオ作成にあたり何を考え、どのような準備を進めたかをお伝えします。
コンセプト決め
まず、どのようなアプリを作るかというコンセプトから考えました。
結論からいうと、自宅での筋トレのメニューを自動で作成してくれる ヘルスケア系のアプリを作ることにしました。
これは、コロナ禍でなかなか外で運動する機会が減ってしまったけど 自宅ではどんな筋トレをすればいいか分からない、という自分自身の課題を解決するためです。
このように、目的意識を持ったポートフォリオを作ることは重要です。
なぜなら、転職活動の面接で「なぜ ○○ を作ったか?」といった質問に答えられるようにするのはもちろん、 一つのポートフォリオを辛抱強く作り上げるためのモチベーションにも繋がるからです。
もちろん、自分が作れそうなものからコンセプトを逆算するのもアリですが 何かしらの目的意識を持つことは忘れないようにしましょう。
使う技術(フレームワーク等)の選定
次に、ポートフォリオに組み込む技術を選定することとしました。
これは「自分がどのような技術を使う Web エンジニアになりたいか?」から考えます。
それは、ポートフォリオは自分のスキルを証明するものであるからです。
例えば、あなたのポートフォリオに Ruby on Rails、AWS、他に CircleCI といった自動化の仕組みを使っているとします。
もしあなたが転職したい企業で既にそれらの技術が使われていれば 既にそれらのスキルをある程度は持っている、 つまり最低ラインはクリアしているという評価を受けやすくなります。
参考までに、ポートフォリオに組み込んだ技術を紹介します。
- フレームワーク
- Ruby on Rails
- クラウド
- AWS
- CI/CD(自動テスト・自動デプロイ)
- GitHub Actions
- Slack (通知用)
- その他
- Terraform (Infrastrucre as a Code: インフラのコード化)
- Docker (コンテナ技術)
これらは、私はいくつか興味のあった企業に共通している技術として 共通していたために、これらの技術を選定しました。
実際、現在働いている企業ではまさに上記の技術を使っていたので ポートフォリオにこれらの技術を組み込んだことが、選考での評価ポイントになっているはずです。
さて、ではどのような技術を選定するかですが あなたがどんな Web エンジニアになりたいかに直結します。
しかし、初心者のうちはどんな技術を使えばいいかも分からず、技術選定は難しいですよね。
そんな時は、どこでもいいので興味のある企業の求人情報を見てみましょう。
求人情報では「求める経験」「応募条件」という形で、その企業が求めるスキルが掲載されています。
この情報から逆算的に技術を選定し、 不足していれば学んでポートフォリオに組み込むというのも手です。
説明資料(システム構成図、設計書など)の作成
ポートフォリオを作成しながら、選考時に提出するための説明資料も同時に作成しました。
説明資料といっても大げさなものは必要なく、 ポートフォリオで使っている技術がひと目で分かるもので十分です。
特に、構成を図示した資料をシステム構成図といい、どんなシステムや技術を使っているか?を俯瞰で表した図です。
(いろんなツールがありますが、私はCacoo という無料の描画ツールを使っていました)
「そんなものを作らなくてもポートフォリオそのもので十分」 と思う方もいるかもしれません。
しかし、選考に関わるエンジニアも通常業務と並行して採用活動を行っており、忙しいものです。
ポートフォリオを多少触ってくれたとしても、 あなたが苦労して組み込んだ技術、仕組みには気付かない可能性が高いです。
そんな時、こういった説明資料が一つでもあると、 全体像をひと目で理解でき、あなたのスキルをアピールできるので効果的であると考えています。
もちろん図でなくとも、作ったアプリの仕様を示す簡単な設計書でも有効でしょう。
ただ、せっかく苦労してポートフォリオを作るのですから、 ポートフォリオを全面的に押し出す説明資料はぜひ用意しておくことをおすすめします。
まとめ
いかがでしたでしょうか?
必ずしもこの方法が正解というわけではありませんが、実際にプログラミング未経験から転職に成功した事例をもとにご紹介させていただきました。
今回ご紹介した内容を参考にしていただき、是非今後の学習や転職活動に役立てていただければと思います!
バックエンドエンジニアを目指している方へおすすめの記事
