未経験からWebエンジニアになるために学ぶことを20個紹介!【新卒/学生向け】
こんにちは!
現役Webエンジニアの今井(@ima_maru)です。
今回は、未経験からWebエンジニアになるために学ぶことを20個ほど洗い出してみたので、それらを重要度順に紹介していこうと思います。
22卒の新卒Webエンジニアである私が「これは学んでおいてよかったな」「これを学んでおくべきだったな」「これは面接のときに良い評価をもらえたな」という実体験や、エンジニア仲間から得た情報から作成しているので、それなりに良い情報になると思っています。
これをみて、自分の足りないスキルや学びたいスキルが見つかるなど、お役に立てれば幸いです。
それでは見ていきましょう。
未経験からWebエンジニアになるために学習すべきこと一覧!重要度順に20個紹介!
ここからは、Webエンジニアになるために学ぶべきことを重要度順に紹介していきます。
それぞれ以下のようなイメージを持ってもらえればと思います。
項目 | レベル |
---|---|
1~3 | 学んでいて当然のこと、前提知識 |
4~8 | 絶対に学ぶべきこと |
9~12 | ぜひとも学んでおきたいこと |
13~16 | 余裕があれば学んでおくと強いこと |
17~20 | 正直ここまで求められていない or あまり必要ないこと |
また、それぞれの学習項目の中でも「このエンジニアはこれを学んだほうが良い」ということや「さらにこれに関連してここまで学ぶと強い」ということも書いてあるので、適宜解釈して読み進めていただけると幸いです。
1. Webの仕組み
まずWebエンジニアなら絶対に知らなければならないのは「Web」についてです。
Webがどのような技術で、どのような通信を行い、どのように処理されているのか。このWebページがお手元のデバイスで表示されるまでにどんなことが起こっているのか。
Webエンジニアになるためには、このようなことを理解する必要があります。
プログラミングなどはこれらWeb技術を具現化する道具でしかありませんから、核となるWeb技術の知識がなくては話になりません。
2. プログラミング
Webエンジニアを目指すなら、多くの場合でプログラミングスキルが必要になります。
1つのプログラミング言語をある程度自由に使える程度まで勉強できれば良いですね。
最低でも基礎的な四則演算や入出力の処理、変数や関数などの概念についてはしっかりと理解しておきましょう。
3. コーディング(HTMLとCSS)
Webエンジニアなら必ずと言っていいほど見る機会があるHTMLとCSSのコード。
これは、Webページを構成する基本要素のようなもので、どちらも言語です。(プログラミング言語ではない)
特に、サイトの見た目を整えることに使われるので、フロントエンドエンジニアなら絶対に知っておかなくてはならない言語です。
それ以外のエンジニアの方も、教養レベルで知っておかなければならないと思ってください。
4. Webアプリケーションとフレームワーク
Webエンジニアの仕事内容は、WebアプリやWebサーバーなどを設計し開発することがメインとなります。
そこで必要になってくるのが、Webアプリの知識とそれらを開発するためのフレームワークのスキルです。
フレームワークとは、プログラミングにおける便利ツールのようなものです。ほとんどの場合、1からWebアプリを構築するわけではなく、既存のフレームワークをつかって効率的に開発を行います。
そのため、ある程度有名なWebフレームワークのスキルがあると良いでしょう。
プログラミング言語 | 有名なフレームワーク |
---|---|
PHP | Laravel |
Ruby | Ruby on Rails |
JavaScript | Nodejs, ※React, ※Vue.js |
Python | Django |
Java | Spring |
これらのフレームワークを使って、1つ以上の作品を作ってみるのが定石です。俗にこれらの作品のことを「ポートフォリオ」と呼びますが、このポートフォリオは就活の際に非常に役立ちます。
また、フレームワークを使ってWebアプリを作る過程で、Webアプリとは何なのかについての理解も深まるでしょう。
5. GitHubとチーム開発
Webエンジニアに限らず、多くのITエンジニアで必要となるのがこのGitHubのスキルです。
GitHubとは、開発者のためのプラットフォーム・Webサービスであり、数多くの開発プロジェクトで使われているツールです。
このGitHubの基本的な使い方は知っておくべきで、Githubを使った開発経験があるとさらに良いです。
贅沢を言うのであれば、正しいGitHub運用フローのもと、複数人でのチーム開発を経験していると非常に評価が高いです。
6. API
Webエンジニアは、APIという技術を使うことが多くあります。
そのため、APIについての知識は持っておくべきです。また、実際にAPIを用いた開発経験やAPIサーバーの開発経験などがあるとさらに良いです。
7. データベースとSQL
特にサーバーサイドエンジニアやインフラエンジニアが持っておくべきなのが、データベースとSQLについての知識・スキルです。基本的には、RDB(リレーショナルデータベース)と呼ばれる一般的なデータベースのほうで大丈夫です。
そもそもデータベースとは、データを取り扱うために作られた専用のソフトウェアであり、有名なデータベースには「MySQL」「PostgreSQL」「Oracle Database」などがあります。
また、それらを操作する言語がSQLであり、一般的なデータベースを扱うのであれば必ずと言っていいほど使うものなので、ぜひとも持っておきたいスキルです。
さらに少し変わったデータベースとして「NoSQL」と呼ばれるデータベースがあります。このNoSQLについてどういうものなのかを知っておくと良いでしょう。スキルがあればなお良いです。
さらにさらに、データベースの設計方法についても学んでおくとめちゃくちゃいいです。
8. セキュリティ
ITエンジニアなら知っておかなくてはいけない知識「セキュリティ」。
そして、知っているだけではなく、実際にどのような対策をとるのかまでを実装・設計レベルで求められるのがWebエンジニアです。
高度なセキュリティ対策についてはセキュリティエンジニアの方の範囲だとは思いますが、基礎的なセキュリティ対策についてはWebエンジニアの皆が学んでおくべきことだと思います。
9. Dockerとコンテナ仮想化
最近の流行りであるDockerとコンテナ仮想化の技術についても知識やスキルがあると非常に良いでしょう。
しかし、これらは理解するのが難しい技術の1つであり、実際に学ぼうとするとかなり時間がかかると思います。
そのため、ぜひ学んでほしいのですが、就活まで時間がないという場合は知識だけ蓄える程度に抑えてもいいかもしれません。
ざっくりとイメージをつかみたいのであれば以下のサイトなどがわかりやすいです。(わかりやすいといっても技術自体が難しいので注意です)
10. LinuxとVM
サーバーサイドエンジニアやインフラエンジニアなら使う機会が多いOSである「Linux」は、基本的なコマンドを使える程度には学習しておいたほうが良いです。
「そもそもWindowsやMacのPCでどうやってLinuxを学ぶの?」と思った方は、VMの知識やスキルと一緒に身に着けると良いでしょう。
VM(Virtual Machine, 仮想マシン)とは、コンピューター上にコンピューターの環境を仮想的に作り出すソフトウェアであり、例えばWindowsPC上にLinuxOSを起動させることができたりします。
有名なVMには「Virtual Box」「VMware」などが挙げられます。
実際VMなどの技術を使ってローカルPC上でLinuxを起動することがありますし、勉強にもなるので、余裕があれば学習してみると良いと思います。
11. AWSやGCPなどのクラウドインフラ
AWSやGCPといった有名なクラウドインフラについて軽く触れておくとよいでしょう。
サーバーサイドエンジニアとインフラエンジニアはこれらに触れる機会が多いので、何も知らないということはできるだけ避けたいですね。
特に、インフラエンジニアはクラウドインフラについて絶対に知っておくべきです。というよりこれらの技術を扱うことこそが今のインフラエンジニアの仕事といっても過言ではないので、絶対にマスターしておきましょう。
12. システム開発企業の業務形態や開発手法について
これは技術的な話ではありませんが、Webエンジニアとして働くうえで、システム開発企業の業務形態や開発手法については知っておくべきです。
システム開発企業の業務形態には、主に「自社開発」「受託開発」「SES」があります。これらの特徴を抑え、自分がどの企業に合いそうなのか考えておきましょう。
また、開発手法には「ウォーターフォール開発」や「アジャイル開発」などがあります。どのようなものなのかを知っておくと良いでしょう。
13. UI/UX設計やレスポンシブデザイン
これらは、フロントエンドエンジニアに求められるスキルで、どちらもWebページの見た目に関連したスキルです。
まず、UI/UX設計とは、ユーザーにとって使いやすい画面やサービスを考えることです。例えば、「ボタンはどこに置いたら見やすいか」「どのようにページを表示させたらストレスなく閲覧できるか」などを考えることです。
そして、レスポンシブデザインとは、PCやスマホなどの画面サイズが異なるデバイスで表示したときにも対応できるようにWebページの構成や表示の仕方を考えることです。スマホだと見にくいサイトは、スマホユーザーからあまり好まれませんからね。逆もしかり。
基本的なプログラミングやコーディングのスキルが身についたのであれば、スキルアップとしてぜひとも学習しておきたいところですね。
14. CI/CD
「CI/CDとは何ぞや」という方が多いと思いますが、Webエンジニアなら当然知っておかなければならないことの1つなので、学習しておくと良いと思います。
ただ、新卒でここまで学習できる方はなかなか少ないと思いますので、余裕があればぜひ学んでおきたいというレベルだという認識でOKです。学べればかなり強いです。
このCI/CDとは、ビルド・テスト・デプロイを自動的に行うことで、開発者や運用者の負担を大幅に減らしたり、運用をより安全に行ったりすることができる仕組み・技術です。ざっくり言えば、自動化の仕組みです。
例えば、GitHubに変更履歴をプッシュしたときにコードの変更を感知し、自動でビルド&テストが起動し、テストに通ったらなんやかんやで本番環境にデプロイ(≒リリース)されるという感じです。
これも超簡単に言えば、変更したコードが安全かチェックされた後に、自動でサービスに反映されるみたいな感じです。
このCI/CDの仕組みを作るためには、それ専用のツールが必要です。CI/CDを支援するツールとして有名なものでも「Jenkins」「Circle CI」「GitHub Actions」などのほかにも数多く存在するので、このあたりの精査も必要です。
15. DevOps
DevOpsとは、開発者と運用者が協力してシステム開発を行っていくという開発手法のことを指します。
最近はDevOpsがトレンドになっているので、実際にDevOpsではどのようなことが行われるのかなどを知っておくと良いでしょう。
その際に先ほどのDockerやCI/CDなどの知識が必要になるので、それらと一緒に学びましょう。
16. テスト
テストの重要性は意外と甘く見られがちですが、システム開発において非常に重要な工程の1つなので馬鹿にしてはいけません。
実際、製品として世に出すためにはテストを何回も何重にも行う必要があるので、どのように・どのようなテストを行うのかを知っておくことは重要です。
自分でコードを書いてみてテストをしてみるというのが非常にわかりやすく学習できると思います。
17. データ構造とアルゴリズム
最初はデータ構造とアルゴリズムの知識は重要かと思ったんですが、意外にもWebエンジニアをやっていて使わない。
ただ、この知識を持っているおかげで深く理解できたことも少なくないので、前提として持っておいたほうが良いのかなと思います。
あとあまりないですが、アルゴリズムを重要視するWebアプリやWebサーバーの開発を行うならなくていけないスキルですね。
もしアルゴリズムを学びたいのであれば、Paiza(初心者向け)やAtCoder(中級者向け)を試してみてください。
18. アーキテクチャ
Webアプリを開発するうえで、どのようなアーキテクチャで開発していったほうが良いのかという議論はよくされます。(クリーンアーキテクチャがどうとか)
そのうえで様々なアーキテクチャについてのメリットデメリットなどを理解していると、そういった議論ができるようになります。
しかしながら、新卒にここまでは求められることは少ないでしょう。ここがわかっていれば結構強いと思います。
19. Kubernetes
Kubernetesとは、大規模サービス向けの運用支援ツールで、アクセスの量に応じて稼働させるサーバーの個数を増減させたり、障害が発生したときに自動で回復作業を行ったりしてくれる仕組みを作れる優れものです。愛称はk8sです。
ですが、そもそもKubernetesをつかうプロジェクトは結構でかいプロジェクトないので、あまり多くないです。
それに、新卒にここまでのスキルが求められるかと言われたら、求められていないというのが答えだと思います。
なので、重要度は全然高くないです。余裕があれば概要だけでも見てみてください。
20. SEO
SEO(Search Engine Optimization, 検索エンジン最適化)とは、Google検索などの検索順位を上げるための技術のことです。
特にフロントエンドエンジニアは、このSEOについて知っておくべきだとは思います。
それ以外のエンジニアは「ふーん」「いろいろあるんだな」程度でいいと思います。
新卒のWebエンジニア就活におすすめのエージェント
もしこれからエンジニア就活を行うのであれば、私も利用したレバテックルーキーをおすすめしておきます。
ITエンジニア専門の就活エージェントということもあり、エンジニア就活ならガチでおすすめです。
\ カウンセリング~内定まで"全て無料"! /
最後までご覧いただきありがとうございます。