結論
- STEP1:コンピューターサイエンスの基礎知識を学習する
- STEP2:HTML/CSS/JavaScript/Bootstrap/ターミナルの基礎を学習する
- STEP3:MySQL/Git/Ruby/Ruby on Railsを学習する
- STEP4:Railsチュートリアルで学習する
- STEP5:ポートフォリオサイトを2〜3つ制作する
- STEP6:Herokuでサイトを公開する方法を学習する
- STEP7:ポートフォリオサイトを公開できたらすぐさま転職活動に移る
サーバーサイドエンジニアになりたいけど何を勉強したらいいのかが分からない…。
フロントエンドエンジニアはプログラミング初学者でもなりやすく、エンジニア数が溢れかえる可能性が高い一方で、サーバーサイドエンジニアはフロントエンドエンジニアよりも覚えることが多く、またデータベース(DB)やインフラ構築の実践的な知識は現場でしか身につけられないため参入障壁が高いです。
そのため、フロントエンドエンジニア数より、サーバーサイドエンジニア数の方が少なくなり希少性が増すため、単価も高くなります。
また、フロントエンドで使用する言語が比較的限定されるのに対して、サーバーサイドはRubyやPHP、Kotlinなど使用する言語は幅広くなり、色々な実務経験を積むことができます。
このような魅力から、サーバーサイドエンジニアを目指したいという人が多くいると思いますが、ここでぶつかるのが「何をどの順番で学習したらサーバーサイドエンジニアになれるの?」という疑問です。
プログラミングスクールに通わず、独学で勉強している人はこのような悩みを持つ人が多いのではないでしょうか?
副業で稼ぎやすいという理由で、フロントエンドエンジニアになる方法に関してはネット上で溢れています。
しかし、サーバーサイドエンジニアになるための学習ロードマップを具体的に教えてくれる記事は意外と少ないです。
そこで、本記事ではこのような疑問に答えるために、プログラミング知識がゼロの状態から始めて、サーバーサイドエンジニアになるまでの具体的なロードマップを説明していきます。
未経験からサーバーサイドエンジニアになるための具体的なロードマップ
一口にサーバーサイドエンジニアといっても、「初めに勉強する言語はRubyなのか、PHPなのか」「初めに目指すべきは正社員としての採用か、フリーランスとしての採用か」などがあります。
まず前者の「初めに学ぶべき言語」については、PHPではなくRubyをお勧めします。
その理由は以下の記事を参考にしていただければいいですが、簡単にいうと「PHPよりRubyの方が学習教材が圧倒的に多く、また直感的にわかりやすい記法となっているため、エンジニア転職するための手段としては最適だから」です。
また、Ruby(Ruby on Rails)である程度サーバーサイドの大枠を学習してしまえば、「記述方法が少し違うだけなのでPHP(Laravel)やPython(Django)などの学習ハードルはほとんどないから」です。
そして後者の「初めに目指す雇用形態」については、正社員をお勧めします。
その理由は次の通りです。
- フロントエンドと違って、データベースやインフラ構築、クラウドの知識などはやはり現場からしか学ぶことができないから
- サーバーサイドエンジニアは基本的にチームでの開発経験となるため、実績が0の未経験者がフリーランスとして雇われることはほとんどないから
- 未経験者は、正社員としてしっかり教育を受けながら、ひとまず実務経験を1〜2年を積むべきだから
です。
このような前提のもと、本記事では「未経験からRubyを学習して、正社員としてエンジニア転職する」ことを目標にして書いていきます。
STEP1:コンピュータサイエンスの基礎を学習する
Webアプリケーションを作るためには、大前提として基本的なコンピュータサイエンスの知識は押さえておく必要があります。
「そもそもWebアプリケーションって何か」「Webとは何か」「インターネットとは何か」「Webアプリケーションを作るとはどういう意味か」「リクエストとレスポンスとは何か」「HTTPプロトコルとは何か」などです。
これらを現時点で全て答えられる人はいいのですが、わからないと思いますので、基本情報技術試験用の参考書をサクッと読めばいいと思います。
おすすめの参考書を念のために紹介しますと「キタミ式イラストIT塾 基本情報技術者」です。
イラストや漫画が多く、初学者でもとっつきやすい内容となっています。
STEP2:HTML/CSS/JavaScript/Bootstrap/ターミナルを学習する
次にWebアプリケーションの基礎である「HTML&CSS」「JavaScript」「Command Line」をProgateで学びましょう。
サーバーサイドといっても、HTMLの中にRubyやPHPを埋め込んでいく形になるので、フロントエンドの知識はほとんどの人にとって必須であると考えてもいいです。
プログラミング初学者であることを考慮すると、学習教材としては丁寧にかつゲーム形式で学ぶことができるProgateが最も適していると考えています。
Progateを学習し始める前に、以下の記事を読んでより効率的に学ぶことをお勧めします。
Bootstrapに関しては、Progateでは学ぶことができないため、ドットインストールを利用してBootstrapの概要や使い方をざっと押さえておきましょう。
STEP3:MySQL/GitHub/Ruby/Ruby on Railsを学習
フロントエンドの基礎知識を身につけたら、ここでようやく主役であるサーバーサイドに必要な知識を身につけていきましょう。
まず、Progateで「SQLの全5レッスン」「Gitの1レッスン」を学習します。
SQLはデータの操作や定義を行うためのデータベース言語であり、Gitはプログラムのソースコードなどの変更履歴を記録・追跡するための管理システムです。
実際、SQLに関しては後々RailsやLaravelなどのフレームワークを使用すると、記述できる必要はないのですが、どのようにデータベースにアクセスしているのかという理解はしておく必要があるので学んでおきましょう。
次にProgateで「Rubyの全5レッスン」と「Ruby on Railsの全15レッスン」を学んでいきましょう。
サーバーサイドのCRUD(Create・Read・Update・Delete)操作やMVCモデル、オブジェクト指向、1対1関係、多対多関係などの概念を学ぶ必要があり、ここで挫折するわけにはいかないので、やはり初学者に優しいProgateから学習を始めるのがいいでしょう。
Progateの「Ruby on Rails」は量が多く、初めはビビってしまうかもしれませんが、このコースを修了させて、上記の概念を理解しておけば、後の学習ハードルが一気に下がるため、気合いを入れて乗り越えましょう。
STEP4:Railsチュートリアルで学習
Progateの学習が終わったら、次にRailsチュートリアルで本格的に実践を通して学んでいきましょう。
Railsチュートリアルは、一般的に難しいと言われますが、Progateで事前にRailsの全体像を学んでおくと、スムーズに終わらせることができるでしょう。
最後にTwitterの簡易クローンを作成し終わった頃には、かなりRailsの扱いに慣れてきていると思います。
STEP5:ポートフォリオサイトを2つ制作
Railsチュートリアルが終わり勢いに乗っているうちに、自分のポートフォリオサイトを2〜3つ制作してしまいましょう。
ポートフォリオサイトを作る時の注意点としては、後々の転職活動を考慮すると以下があります。
- チュートリアルの最終課題をほとんど横流しするようなクオリティは避ける
- とはいってもクオリティは求めすぎず、面接で話せるようにサービス内容のコンセプトやターゲット、デザインなどの方を重視する
です。
特に二つ目に関しては、誤解しがちな人が多く、転職活動のためにポートフォリオサイトを過剰に作り込もうとする人がいますが、それは時間の無駄なのでやめましょう。
ポートフォリオサイトの効率的な制作方法や、制作時に気をつけるポイントの詳細に関しては以下の記事をご参考にしていただければと思います。
また、制作する数に関しても上記の記事にて言及されていますが、1つは少なすぎであり、3つほどはいらないためというのが理由です。
STEP6:ポートフォリオサイトをHerokuで公開
Herokuは、アプリケーションの開発から実行、運用までのすべてをクラウドで完結できる PaaS(Platform as a Service)です。
簡単に言い換えると、クラウド上のサーバの一種ということです。
Webアプリケーションを公開しようとすると、自身でサーバを契約して設定しないといけませんが、このherokuを利用するとこれらの処理をスキップして、簡単な手続きだけで公開まで行うことがでいます。
herokuは多少のアクセス制限などはありますが、無料で使える点が優れていて、ポートフォリオサイトとして公開するだけなら、大量のトラフィックが発生するなんてこともないので、利用する分には無料プランで十分です。
Herokuでの公開の仕方は、「Heroku 公開の仕方」などと調べればいくらでも出てくるので困らないと思いますが、いくつかリンクを以下に貼っておきます。
STEP7:転職活動に移行する
ポートフォリオサイトの公開までできたら、すぐさま転職活動に移りましょう。
ここで、絶対にやってはいけないことは「まだ不安があるから復習しよう」と言って、またRailsチュートリアルに戻って何周もしたりすることです。
正直、エンジニア転職活動においてポートフォリオサイトさえ準備ができていれば、あとは面接の受け答えで合否が決まります。
プログラミング初学者にそもそも技術力なんて求められていません。
求められているのは、「企業理念に共感してくれているか」「事業を一緒に育てたいと思ってくれているか」「自走力があるかどうか」「やる気はあるか」「一緒に働きたいと思える人柄であるかどうか」です。
エンジニア転職活動において重要なポイントは以下の記事にまとめましたので、参考にしてください。
まとめ
最後にもう一度、結論をまとめておきます。
- STEP1:コンピューターサイエンスの基礎知識を学習する
- STEP2:HTML/CSS/JavaScript/Bootstrap/ターミナルの基礎を学習する
- STEP3:MySQL/Git/Ruby/Ruby on Railsを学習する
- STEP4:Railsチュートリアルで学習する
- STEP5:ポートフォリオサイトを2〜3つ制作する
- STEP6:Herokuでサイトを公開する方法を学習する
- STEP7:ポートフォリオサイトを公開できたらすぐさま転職活動に移る
今回の内容については以下の動画でも解説しているので、ぜひご覧ください^^