にゃんころもち
WEBエンジニアのにゃんこ®︎もっちです!
エンジニアを目指す上でまずプログラミング言語を勉強すると思います。
プログラムが実際のWEBサービスでどんな役割をしているか?については前回の記事で説明しました!
プログラムはサーバー側で動いており、会員登録やメール送信など、サービスのメイン機能の処理に関わっています!
しかしプログラミング言語はサーバー側だけでなく、ブラウザ側でも動く言語もあります。
様々な言語がある中で、どれを学んでいけばいいのか?自分なりにまとめましたので説明します!
※「WEBアプリケーションの開発を行うエンジニアを目指す」という観点で説明します。
目次
実際のサービスのどこで、どんな言語が使われているか?
WEBアプリケーションの仕組みを元に、ブラウザ側、サーバー側でどんなプログラミング言語が使われているのか?を以下の図に示しました!
ブラウザ側:HTML, CSS, JavaScript
サーバー側:Java, C#, PHP, Ruby, Pythonなど
ブラウザ側では3つの言語が使われています。この中でもHTMLとCSSはプログラミング言語とは呼びませんが、WEBサービスを開発する上では欠かせないものです。HTML,CSS,JavaScriptは現在のどのサービスでも使われていますので、ブラウザ側の言語は3つとも学ぶ必要があります。
一方サーバー側ではたくさんの言語がありますが、実際にはその中の1つの言語を選択して使われているのが一般的です。よってサーバー側言語はどれか1つを習得すれば開発するには充分です。
またブラウザ側、サーバー側という呼び方よりも、ブラウザ側はフロントサイド(フロントエンド)、サーバー側はサーバーサイド(バックエンド)と呼ぶのが一般的です。
にゃんころもち
フロントサイド (フロントエンド)
フロントエンドで使われるHTML, CSS, JavaScriptはどんな特徴があるのか、簡単に説明します!
HTML
WEBページに表示される画面の骨組みを作ります。
段落や見出しや表を記載したり、ページに画像や動画を入れたりします。
CSS
WEBページに表示される画面の装飾を担当します。
背景とフォントに色をつけたり、段落や見出しや表などの位置を中央に配置したり、横並びにするなどができます。
JavaScript
WEBページに表示される画面に動きをつけます。
例えば以下の動画のように、画像が時間と共に切り替わる処理を実装したりできます。
にゃんころもち
サーバーサイド (バックエンド)
バックエンドで使われるプログラミング言語について、それぞれ簡単に説明します!
Java
WebサービスだけでなくAndroidのスマホアプリ開発にも使われる言語です。
記述のルールが厳しいため、リスク対策に重きを置く業務システムの開発でよく使われています。
またJavaはJVM言語と呼ばれ、OSに依存せず幅広い環境で動作することも特徴の一つです。(windows,mac,linuxなど、どのOSのサーバでも動作する。)
※開発されたサービス:Minecraft、Twitterなど
C#
マイクロソフト社が開発した言語で、Javaと同じく記述のルールに厳しい言語です。
Javaと同じくWEBサービスやスマホアプリ、業務システムと幅広く使われています。
またその中でもゲーム開発によく使われています。
記述もJavaに似ているため、Javaを経験している人はとっつきやすい言語です。
※開発されたサービス:Bing、神獄のヴァルハラードなど
PHP
WEBサービス開発に特化した言語で、JavaやC#と比較して記述のルールも厳しくなく、初心者でも習得しやすい言語です。
またWEB業界の中でもシェア率が高い言語です。
さらにWordPressもPHPで開発されているので、個人でWordPressのテーマ開発もでき、副業の幅が広がる言語だと思います。
※開発されたサービス:ぐるなび、schooなど
Ruby
PHPと同じくWEBサービスに特化した言語で、記述のルールも厳しくない習得しやすい言語です。
フレームワークの一つであるRuby on Railsを用いると開発効率がかなり上がることから、スタートアップ企業でよく使われています。
(フレームワークとは開発効率を上げるために用意された、プログラムとかの雛形のようなもの)
※開発されたサービス:クックパッド、クラウドワークスなど
Python
WEBサービス開発に使われていますが、その豊富なライブラリという特徴から機械学習の分野で主に使われています。
(ライブラリとは、多くのアプリケーションで利用するためにまとめられたプログラム集です。)
PythonもPHPやRubyと同じく習得しやすい言語ですので、初心者でも入りやすい言語です。
※開発されたサービス:Youtube、Dropboxなど
他の言語
他にもgoやC++などバックエンド言語はいろいろありますが、主に使われているのは上記5つの言語です。
ただ今後シェアも変わってきますので、他の言語についてもアンテナを張って情報収集する必要はあるかと思います。
にゃんころもち
何を勉強すればいい?
先ほども述べましたが、フロントエンドはHTML,CSS,JavaScriptの3つを、バックエンドはどれか1つの言語を習得すればWEBアプリケーションを開発するスキルは習得できます。
(明確にはDBMSやHTTPなどの知識が必要ですが、言語の観点でいうとこれで充分です。)
その中で、バックエンド言語はたくさんあり、その中でどの言語を学べばいいか?は疑問に思う点だと思います。
どの言語を学ぶか?ですが、それは自分自身がどの業界、どんなサービスの開発に携わりたいか?によると思います。
Javaなら業務システム、C#はゲーム業界、PHPはWEB業界、RubyはWEBの中でもスタートアップ企業、Pythonなら機械学習と、それぞれの得意分野があります。
自分自身がどんなエンジニアになりたいか?どんなものを作って世の中に広めていきたいか?をまず考えて選択していってもらえればといいと思います。
また行きたい企業がどんな言語を使っているか?を調べた上でそれを学ぶのもいいかもしれません。
wantedlyなど就職支援ツールを使用して、市場を調査してみるのもオススメです。
また、SIerとWEB業界の違いについて別途記事を書いていますので、業界の勉強がてら活用してみてください。
まとめ
プログラミング言語は何を学ぶべきか?について以下にまとめました!
- フロントエンドはHTML,CSS,JavaScriptの3つを、バックエンドはどれか1つの言語を学ぶ。
- バックエンド言語の選定は、自分がどの業界、企業で働きたいか?で選択するのがオススメ
私なりの考えで何を選定すべきか?について書いてみました。
これが絶対ではありませんので、いろんな現役のエンジニアの方と交流し、判断していっていただければと思います。
そのきっかけになれば幸いです。
にゃんころもち
コメントを残す