『21世紀最強の職業 Web系エンジニアになろう AI/DX時代を生き抜くためのキャリアガイドブック』を徹底解説【中編】
今回は、『21世紀最強の職業 Web系エンジニアになろう AI/DX時代を生き抜くためのキャリアガイドブック』の中のWeb系エンジニアになる具体的な方法について解説していこうと思います。
前編では、そもそもWeb系エンジニアの定義は何なのか、どんな職種があるのか、Web系自社開発企業はどんな特徴を持っているのかなどをまとめてきました。
前編についてまだ見ていない人は、この中編以降を見る前に見ておくと、さらにWeb系エンジニア業界の理解が深まると思います。
前編について、簡単におさらいしておくと、まずWeb系エンジニアというのは、Web系自社開発企業で働いているエンジニアの総称のことを言います。
そしてそのWeb系自社開発企業とはどんな企業かというと、
- インターネットを活用して
- 発注元が存在していなくて
- スケールすることを前提としていて
- 要件や仕様が変化し続ける
自社サービスを提供している企業のことと定義されています。
Web系エンジニアの代表的な職種には、
- バックエンドエンジニア
- フロントエンドエンジニア
- インフラエンジニア
- iOSエンジニア
- Androidエンジニア
の5つがあります。
インフラエンジニアに関しては、最近ではAWSやGCPでクラウド上にインフラを構築することが主流なので、クラウドエンジニアと呼ばれているということでした。
Web系自社開発企業の特徴は、10個くらい紹介していてここで話すと長くなるので、詳しくは前編の方を見てください^^
軽く前編のおさらいが終わったところで、ここから中編について入っていこうと思います。
今回の中編では、社会人と学生のそれぞれでWeb系エンジニアになる方法について、具体的にまとめていこうと思います。
ちなみに本書籍の解説は、前編・中編・後編の3つに分けています。
かなり参考になる話ばかりなので、Web系エンジニアに興味がある人は、ぜひ最後までご覧ください^^
Web系エンジニアになる方法
Web系エンジニアになる方法については、社会人がWeb系自社開発企業に転職する方法と、学生が新卒で入社する方法が少し違うので、分けて紹介していきます。
本書では、Web系エンジニアの中でも一番窓口が広いバックエンドエンジニアにジョブチェンジする方法について紹介されています。
社会人がWeb系エンジニアになる方法
まず、社会人がジョブチェンジする方法についてですが、勝又さんが一番おすすめするルートは以下となります。
- MacBook Proを購入する
- QiitaおよびTwitterアカウントを作成する
- Web開発の基礎を学ぶ
- 質の高いポートフォリオサイトを作成する
- 転職活動を行う
この手順についてそれぞれを順番に説明していきます。
①Macbook Proを購入する
まず、Macbook Proを購入するについてですが、多くのweb系エンジニアは開発マシンとしてMacbookを使用しているというのは、前編で話した通りです。
書籍やネット上にある記事のほとんどは、Macbookを使用している前提で書かれているものが多いので、Windowsマシンを購すると、開発環境の違いを調整するために無駄な時間を使うことになりかねません。
そのため、Web系エンジニアを目指すなら、時間を浪費することなく、学習効率を上げるために、初めからMacbookを購入するようにしましょう。
標準スペックのMacbookなら10万円台で購入することができるので、投資だと思って渋らずにすぐに購入するようにしましょう。
Macbook Proを購入する際は、
- 13インチ
- Retina Display
- メモリ8GB
- SSD512GB
というスペックを最低限クリアしておけば問題ないと勝又さんは言っています。
外部ディスプレイは余裕があれば購入すればいいですが、初めのうちは別になくてもそれほど問題ではないです。
②QiitaおよびTwitterアカウントを作成する
Qiitaは、IT業界では有名な技術ブログサービスのことです。
Qiitaに関しては知っている人が多いと思いますが、もし知らないという人がいたらGoogleで検索してみてください。
エンジニアの人の多くは、日々の学びや気づきをQiitaでアウトプットをしています。
採用活動では、応募者が未経験の人であっても、日頃から技術情報を頻繁にアウトプットしているかどうかをチェックしているみたいなので、Web系エンジニアを目指すのであれば、Qiitaに日々の学びをアウトプットしておくといいです。
別に高度な内容じゃなくてもいいので、とにかく学びをアウトプットする習慣があると認識されることが重要です。
また、Qiitaと同様にTwitterでのアウトプットもチェックする企業はあるので、Twitterでも簡単に毎日の学びを書き残しておくといいです。
Twitterはアウトプットするだけでも意味がありますが、フォロワーが増えて数千人レベルになったら、採用活動でもかなり有利に働くので、やっておいて損はないです。
ただ、ここで個人的な補足を加えると、確かにTwitterでのアウトプットは大事ですが、あくまでプログラミングの勉強を中心にして、あまり無意味にTwitterにのめり込まないようにしてください。
普通の人はそんな簡単に数千人まで伸ばせるわけじゃないし、そもそも企業側が全てTwitterをみているということでもないからです。
しかもTwitterを見るにしても、当然そこまで大きな加点になるわけではないので、あくまで空き時間に片手間で発信するくらいで大丈夫です。
ただ、Qiitaは採用活動で積極的にアピールできる材料になるので、こちらは頻繁に投稿しておくといいです。
③Web開発の基礎を学ぶ
次に、Web開発の基礎を学ぶ過程に入ります。
バックエンドエンジニアになるために勉強しなければいけないことは、もうほとんど確立されていて決まっています。
勉強する順番に関しては、多少入れ替えても全然問題ないです。
転職するまでに勉強しなければいけない内容は、以下の通りです。
- コンピュータサイエンスの基礎
- Linux基礎
- HTML/CSSの基礎
- javaScriptの基礎
- Ruby / Ruby on Railsの基礎
- RDBとSQLの基礎
- Git / GitHubの基礎
勉強する順番は多少入れ替えても大丈夫ですが、特にこだわりがなければ、この順番で勉強するのが一番スムーズだと思います。
コンピュータサイエンスの基礎というのは、「コンピュータの動く仕組み」や「OSやアプリケーション」「サーバ」「データベース」などの知識です。
これらの知識を一番初めにインプットしておくと、プログラミング学習の効率はかなり高くなります。
勉強するときは、難しい専門書を読む必要はなくて、基本情報技術者試験の問題集が解けるようにするレベルで大丈夫です。
学習教材としては、『キタミ式イラストIT塾 基本情報技術者 令和02年(情報処理技術者試験)』がオススメされています。
Linuxについては、Web系エンジニアが開発で使用するOSは、基本的にこのLinuxになるので、Linuxの基本コマンドやシェルスクリプトやユーザー管理などは理解しておくといいです。
学習教材としては、『Linux標準教科書』がオススメされています。
MacのOSもUNIX派生OSなので、Linuxの勉強をしておくと、Macで開発を進める上でも、Linuxの知識はかなり役に立ちます。
HTML、CSS、JavaScriptについては、フロントエンド開発で必要となる知識です。
ポートフォリオサイトを作る際には、絶対に必要になる知識であり、なおかつ採用活動においては、ポートフォリオサイトのUIがかなり重要ポイントになってくるので、しっかり勉強して扱えるようになりましょう。
会社に入社してからも、ベンチャー企業の場合は特に、バックエンドだけを担当するということは少ないので、JavaScriptを使ったフロントエンドの開発も難なくこなせるようにしておいたほうがいいです。
HTML/CSS/JavaScriptの学習教材としては、Progateとドットインストールがオススメされています。
次に、RubyとそのフレームワークであるRuby on Railsの基礎について勉強していきます。
別にPHPとLaravelでもいいですが、Rubyの方が日本語の学習リソースが多かったり、未経験者の求人数が多かったり、モダンな開発環境を採用する企業に入社できる可能性が高いという理由で、特にこだわりがなければRubyを選んでおきましょう。
RubyとRuby on Railsの学習教材として、ProgateとRailsチュートリアルがオススメされています。
RDB(Relational Database)とSQLについてですが、バックエンドエンジニアになるならこれらの知識は必須になります。
テーブル設計の基礎や、正規化、トランザクション、デッドロックなどはしっかり理解しておきましょう。
データベースとSQLの学習教材には、Progateとドットインストールがオススメされています。
また、個人的には、SQLドリルを使って勉強しましたが、かなり読みやすくて知識もほぼ網羅できるのでかなりオススメです。
GitとGitHubについては、勉強というよりは、普段からしっかりソースコードを管理したり、Issueを作ってみたり、自分でプルリクエストを出してみたりと積極的に使い倒しておきましょう。
他の知識の同じですが、これらは入社してからは使えて当たり前という認識で始まります。
④質の高いポートフォリオサイトを作成する
ここまでで一通り、基礎の学習を終えたら、次はポートフォリオサイトを作成していきます。
ポートフォリオサイトを作るときは、よほど特殊な事情がない限りは、ゲーム系やECサイト系のようなトリッキーな種類のアプリケーションを作らずに、メディア系のアプリケーションを作るのが無難です。
メディア系というのは、例えばTwitterのようなSNS風だったり、5chのような掲示板風だったりですね。
ポートフォリオサイトで高評価を得るためのポイントとして、勝又さんは次の10個をあげています。
- 問題意識が伝わりやすいテーマ
- アプリの用途や機能が直感的にわかる
- UI/UXが整っていて使いやすい
- レスポンスが高速である
- 機能数が十分である
- テストが十分に書かれている
- 不具合がない
- LinterやFormatterが導入され、最低限DRY原則が適用されている
- GitHubのIssueやプルリクエストが活用されている
- ややレベルが高い技術に挑戦している
パッと見て文章だけでは伝わらなそうな箇所だけ補足します。
まず⑤の「機能数が十分である」についてですが、メディア系サービスを作る場合、「投稿機能」「投稿一覧機能」「コメント機能」「いいね機能」「フォロー機能」はひとまず誰でも作ると思います。
それだけだと、機能面では全く差別化にならないので、色々なサービスを触ってみて、便利だなとか面白いと思った機能をプラスアルファで実装してみるといいということです。
⑥の「テストが十分に書かれている」については、Web系自社開発企業では「単体テスト」や「統合テスト」は普通は書かれるので、このテスト面もチェックされています。
勝又さんは、最低限、「正常系と異常系」「同値分割」「境界値分析」などのソフトウェアの基本的な考えは理解して、単体テストと統合テストもかけるようにした方がいいとのことです。
⑧の「DRY原則が適用されている」については、ポートフォリオサイトはかなりコードサイズが大きくなるので、ツールを使って、出来るだけ無駄なコードを書かずに、コンパクトになるように心がけましょうということです。
⑩の「ややレベルが高い技術に挑戦する」については、①〜⑨までは最低限ポートフォリオに含めるべき内容であって、他者との差別化ができないから、もう少しレベルの高いことにチャレンジすべきという主張です。
勝又さんは、
- Dockerを導入する
- CI/CDパイプラインを導入する
- インフラにAWSを使用する
の3つをオススメしています。
この①〜⑩をみたときに、個人的にはもちろん全部ポートフォリオに組み込んだ上で入社した方が、下地はいい感じかもしれませんが、正直ここまでやらなくてもいいと思います。
オンラインサロンも、スクールも何もやっていない中立的な立場から意見を言わせてもらうと、⑥、⑧、⑩は別にやらなくても、それほど問題ないです。
実際に転職活動をしてみればわかりますが、正直ポートフォリオをがっつりと評価してくる企業は全然多くないことがわかると思います。
過去の動画でも何回も言っていますが、ポートフォリオは基本的な部分だけ押さえてパッと見いい感じに仕上がっていればOKで、それよりも圧倒的に面接の場での受け答えの方が合否を左右します。
⑥、⑧、⑩はひとまず無視してポートフォリオを完成させて、面接対策をして、すぐに転職活動を始めてください。
そして、内定がもらえたら、入社するまでの期間に⑥と⑧と⑩をするという流れが一番効率がいいです。
⑤転職活動を行う
ポートフォリオサイトが完成したら、間髪入れずにすぐに転職活動に移るようにしましょう。
実務未経験者の主なターゲットとなるのは、エンジニアの数が数名から数十名程度のWeb系スタートアップ企業になります。
たまにメガベンチャーに転職できる人がいますが、メガベンチャーの場合は、有名大学の理系大学や理系大学院の新卒でほとんど席が埋まるので普通は難しいです。
実務未経験者がターゲットとする企業に応募しようとすると、WantedlyやGreenが一番求人数が豊富で使いやすいです。
自分も転職活動をしていた時は、Wantedlyだけを使っていました。
応募するときの注意点としては、ポートフォリオサイトをRubyで作ったからといって、Rubyを使っている企業だけに限定しなくてもいいということです。
ぶっちゃけRubyでポートフォリオを作っていれば、PHPを採用している企業でも気にせず応募しちゃっても大丈夫です。
RubyとPHPは片方ができれば、もう片方も確実にできるので、企業側も、Rubyしか無理とかPHPしか無理と頑固になるところはほとんどないです。
また、「実務未経験者歓迎」を前面に出している企業は避けるようにしましょう。
企業としては当然、優秀なエンジニアが欲しいわけなので、未経験者歓迎とかいっている企業は怪しすぎます。
企業選びで注意しなければいけないことに関しては、以下の記事にまとめているので、あわせてご覧ください。
そのほか、未経験者のエンジニア転職について、よく質問されることとその回答の仕方については以下の記事にまとめています。
学生がWeb系エンジニアになる方法
学生が新卒からWeb系エンジニアになる場合、有名大学の情報学系学部や理系学部に在籍していて、ある程度プログラミング経験がある人なら、メガベンチャー企業に新卒で就職できる可能性があります。
この場合は、新卒の完全ポテンシャル採用ということもあって、学生時代の研究内容や活動内容などが重要視されるので、ポートフォリオサイトがいらないことが多いみたいです。
ポートフォリオサイトが必要か必要でないかはそれぞれの会社の求人情報を調べてほしいですが、たとえいらなかったとしてもポートフォリオサイトを作っておくと、かなりでかい差別化要素になるし、コーディングの練習にもなるので、自分なら作っていきます。
一方で、文系の人やあまり有名大学ではない理系学部に在籍していて、プログラミング経験が浅い人は、メガベンチャーは難しいので、中規模以下のWeb系自社開発企業がターゲットになります。
ただ、大学一年生や二年生のような早い時期から、積極的にインターンに参加しておくと、かなり就職活動を有利に進めることができるので、もしかしたらメガベンチャーにも行けるかもしれないです。
メガベンチャーにしても、そうでないにしても、どちらにしても、文系の人や有名大学以外の理系学部の人は、出来るだけインターンに積極的に参加しておいた方がいいです。
大学生の早い段階から、大手の就活サイトやWnatedly、Greenに登録して情報収集しておけば完璧です。
最後に
ここまでで、勝又健太さんの書籍について、Web系エンジニアになる方法を中心にまとめてきました。
前編から引き続き中編も終わり、残すは後編のみとなりました。
後編では、
- フリーランスエンジニアになる方法
- Web系エンジニアのキャリア形成
- Web業界の今後の技術トレンド
のようなWeb系エンジニアのキャリア面を中心にまとめていきます。
前編と後編に関する記事は以下にまとめてありますので、是非ご覧ください^^
本記事の内容は、YouTubeでも解説しているので、動画の方も是非ご覧ください^^
今回もブログをお読みいただきありがとうございます😎 以下のLINE公式では、LINE限定の動画コンテンツやコラム、みなさん一人ひとりにパーソナライズした情報などを配信していますので、ぜひ友だち追加お願いします^^(追加していただいた方だけに配布する限定動画もございます🎁)