こんにちは。現在プログラミングスクールで学習中のAlmontaです。
Webエンジニアについて、インターネット上にはいろんな情報が溢れ、情報の是非判断が業界未経験者には難しくないですか?それらを網羅的、体系的にまとめられた、良い本がありましたので紹介します。私自信、Webエンジニアの働き方、仕事内容に憧れ、Webエンジニアになるためプログラミングスクールに入校したものの、Webエンジニアという職業の全体像や、どのようにキャリアを進めていくべきかぼんやりとしていましたが、この本を読んだことで目指すべき方向性を定めることができました。
『21世紀最強の職業 Webエンジニアになろう AI/DX時代を生き抜くためのキャリアガイドブック』勝又健太 著
本の構成は以下のようになっています。
- Web系企業とWebエンジニア
- IT業界とWeb業界の全体像
- Web系エンジニアの職種
- web系エンジニアが使う言語やテクノロジー
- Web系エンジニアの働き方
- Web系エンジニアになるための方法
- Web系エンジニアのキャリア形成
- Web業界のトレンドと今後の展望
この中で、本記事では、1章、2章、6章についてまとめました。
Web系企業とWeb系エンジニア
WebエンジニアがMacbookを使用する理由
Web業界で標準的に使われているOSはほぼLinuxであることが理由です。
MacのOSはコマンドやツールがこれと共通しており、Linuxのノウハウがそのまま使用できるためMacbookを使用しているエンジニアが圧倒的に多い。
私は、プログラミングスクール入校にあたり、Macbookを新規購入しました。
この業界はMacが主流だから。というわけではないようです。
価値の高いエンジニアとは
価値の高いエンジニアとは、設計とプログラミングができるスキルを持った人のことをいいます。
Web業界は、とにかく動くものを早く作り、リリースしてユーザのフィードバックを得ることを、重要視される。早く作るためにはよい設計をする必要があり、設計ができ、プログラミングをする手を動かせるエンジニアの価値が高くなる。
開発スタイル
ウォーターフォール型:要件定義→基本設計→詳細設計→製造→テスト
発注元顧客が明確に存在するため、後戻りができないのが特徴
アジャイル型:開発からリリースまで。短期間で繰り返すスタイルであり、自社開発企業はアジャイル型
Webエンジニアの職種
Webエンジニアの職種は、大きく以下の5種にわけることができる。
バックエンドエンジニア(サーバサイドエンジニア)
サーバ上で動作するプログラムをつくる。
使用言語:Ruby, PHP, Python, Go, Node.js
Web系エンジニアの中では、最も人数が多く、間口が広い。
未経験からエンジニア転職の場合、ここからキャリアを始めることが多い。
インフラエンジニア(クラウドエンジニア)
バックエンドエンジニアが使用するサーバやデータベースやネットワーク等を構築、管理する。
プログラムを書くことは比較的少ない。
未経験者がいきなり任せてもらえることは少ない。
フロントエンドエンジニア
ブラウザ上で動作するプログラムをつくる
使用言語:JavaScript, TypeScript, HTML,CSS
技術の流行り廃りが他と比較してかなり速いため、新しい技術のキャッチアップ力、情報収集力が必要
これら3種の業務全てを担当できるエンジニアをフルスタックエンジニアという
iOSエンジニア
Apple製品上で動作するプログラムをつくる
使用言語:Swift, Objective-C
Androidエンジニア
Android端末で動作するプログラムをつくる
Kotlin, Java
日本のWeb系エンジニアの中では最も人材不足の職種
IT業界とWeb業界の全体像
IT業界とWeb業界は違う!
業界未経験だとこのあたりの知識もないのではないでしょうか?
恥ずかしながら私は知りませんでした。。
ITの業界は主に以下6種類の業種に分類することができる。
※SESとは・・・SIer企業が結んでいる準委任契約のこと(システムエンジニアリングサービス)
SES企業はエンジニアとしてのキャリアを積むことができず、時間を無駄にしてしまうことが多い。
この本で詳しく解説されているWeb業界については、さらに3種類に分類することができる。
・自社開発(Web開発)
・Web制作
・Web受託 SIer系企業との境目は曖昧
この中の、Web制作は、高い技術力が必要でないため参入障壁が低いと筆者は考えられている。
さらに、自社開発企業の主な職種は以下5種類と説明されている。
・メディア系
・EC系
・アドテク系 Advertising Technology =広告
・ソーシャルゲーム系
・X-tech FinTech, EdTech, FoodTechなど
SIer系企業について説明をすると、以下のような特徴がある。
・多重下請け構造
大規模案件では、元請けの下請けということもあり、末端ほど単価が下がり待遇が悪い
・技術が枯れている
リスクの高い最新技術は使われていない。
そのため、プログラミングができるエンジニアの価値が高くない。
Web系エンジニアになる方法
Web系エンジニアになる方法を、この本では、間口の最も広い、バックエンドエンジニアへのジョブチェンジを例に紹介されている。
基礎知識として身につけるべきは、プログラミングスクールで学べる内容と同じと感じた。
その上で質の高いポートフォリオを作成する必要がある。
作成するジャンルは、筆者は「メディア系」を推奨されている。
企業側のポートフォリオチェックポイント
・問題意識が伝わりやすいか
・アプリの用途や機能が直感的に理解できるか
・UI/UXが整っていて使い勝手が良いこと
・レスポンスが高速であること
Googleの提供している「PageSpeed Insight」を使うとよい
・デモデータが十分登録されていること
投稿、投稿一覧、コメント、いいね、フォロー、これらがあるのは普通
・機能数が多いこと 機能数=熱意と捉えられる
・テストRspecが書かれていること
・不具合が無いこと
・DRY原則が適用されていること
LinterやFormatterが導入されている(RubyではRuboCop)
・GitHubのissueやプルリクエストが活用されていること
👆これらは最低限やるべきこと
・難易度が高めの技術にチャレンジしていること
-インフラにAWSを使用する
-Dockerを導入する
-CI/CDパイプラインを導入する など
転職活動
Web系スタートアップ企業の求人が豊富に掲載されている企業サイトは以下2社の活用をオススメされている。
求人サイト
・Wantedly
・Green
「実務未経験者歓迎」としているところには応募しない!
100社応募して受からないケースも珍しくない
まとめ
本記事で取り上げた上記内容以外にも、著者のエンジニア経験より、ワークスタイル、各種エンジニアになるための必須スキルなどについて概要が述べられており、Webエンジニアのイメージをクリアにすることがでる。
経験豊富な現役エンジニアの方の視点から、キャリアを考えることができ、目指すべき姿から、どの言語を、どれくらいの範囲で、また、プログラミング言語以外に習得すべき知識を明確にすることもできる。
確かに、IT人材の不足ゆえ、プログラミングを学べば、ITのエンジニアになることはできると思う。でも、それは、本当の目的ではなく、ITエンジニアとして何がしたいか。それが大事であることを改めて気づかせてくれました。
みながITエンジニアに対し抱いている希望を実現できるのは”Webエンジニア”であり、狭き門ではあるが、そこに行き着く努力を続けた人だけが、筆者の言う21世紀最強のチート職についくことができるということです。
逆に言うと、筆者の言う”Webエンジニア”に就かないと、前職に不満を抱いてエンジニアを目指した人は、想定外の末路となりかねない。中途半端な気持ちで目指すものではないと強く感じた。
これからプログラミングを始められる方はぜひ一読することをオススメします。
コメント