本稿は、Mediumのブログ記事を了解を得て日本語翻訳し掲載した記事になります。

本記事は、デザイナー、エンジニア、オンライン講師のJonas Schmedtmann氏によって投稿されました。

最近、私は、私のオンラインコース(UdemyのBuild Responsive Real World Websites with HTML5 and CSS3)の受講生から次のような質問を受けることが増えてきました。

私はUdemyのあなたのHTMLとCSSのコースを修了しました。私はWebエンジニアとしてさらに進歩したいと思っています。私に今後の方向性を教えてもらえますか?
あなたの素晴らしいコースを受講した後、私は何を学ぶべきでしょうか?
私はフロントエンド開発を続けるべきですか、それともバックエンドに移行すべきしょうか?どんな助言でも大歓迎です。

これらの質問は本当に優れた重要なものですので、話をして考えることに時間を費やす価値があります。 Webエンジニアになるには、あなたが学習したいことを明確にして、それに時間を費やすことが重要です。あなたが達成したい目標についての計画です。

こうした計画がなければ、あなたは多くの貴重な時間を失い、そしておそらく挫折してしまうでしょう。それは避けましょう。

これらの質問を分析するために、まずHTML5/CSS3/JavaScriptの共通点を考えてみましょう。その次に、Web開発の基礎を習得したばかりの方にとって、JavaScriptが完璧な言語である5つの理由を紹介します。

準備はできましたか?それでは進めましょう!

フロントエンドとバックエンドのWeb開発

シンプルに言うと、あなたがWebサイト上で見たりやりとりするものは、すべてフロントエンドです。例として、テキスト、画像、ボタン、フォームなどをイメージするといいでしょう。しかしWebサイト上には、スライダー、ポップアップウィンドウ、地図、アニメーションなどの動的要素も含まれています。ユーザーが見ることができるものは、フロントエンドの一部であるといえます。

フロントエンドの基盤は、HTML5/CSS3/JavaScriptの3つの技術に基づいています。HTML/CSS/JavaScriptでコードを書いている開発者は、「フロントエンドエンジニア」と呼ばれています。

あなたがインターネットからWebサイトやWebアプリケーションを読み込むたびに、ブラウザが表示するコードを彼らは書いているのです。

つまり、フロントエンドコードを書くということは、ブラウザのためのコードを書くことといえます。これはおそらく分かりやすい表現だと思います。

もちろん、フロントエンドに加えて、バックエンドもあります。Webサイトのバックエンドは、サーバー、アプリケーション、データベースで構成されています。

これらは、すべてのデータが格納され、Webアプリケーションのロジックが実行される場所です。多くの場合、バックエンドは、最初にフロントエンドを可能にしているものです。PHP/Ruby on Rails/Python/Java/Node.js(これはJavaScriptを使用しますが、後で詳しく説明します。)などの技術は、WebサイトやWebアプリケーションのバックエンドをプログラムするために使用されます。

最後に、いわゆる「フルスタックWebエンジニア」とは、フロントエンドとバックエンドの両方の技術を使って、完全なアプリケーションや複雑なWebサイトを書くことができる、スーパーヒーローのようなエンジニアのことです。

しかし今日では、さまざまな技術、ライブラリ、フレームワークがWeb開発において登場しているため、本当に優秀なフルスタックWebエンジニアになることは、ますます難しくなりつつあります。

さて、以上は簡単な概要でした。これらの用語を正しく定義しておくことは本当に重要です。というのも、あなたがWeb開発に関する情報を読むときによく目にするからです。

また、あなたはいずれどちらの学習に時間(およびお金)を費やすか選択する必要があります。

JavaScriptが次の唯一のステップです

HTML5/CSS3/JavaScriptはすべてフロントエンドのWeb技術であることを見たので、JavaScriptを学習することがあなたの次のステップになることは論理的に考えて妥当ですね?

なぜなら、JavaScriptはあなたがフロントエンドのWebエンジニアになるために必要だからです。あなたがフロントエンドについて学習している最中であるとしたら、JavaScriptを学習することはその仕上げになります。

しかし、理由は他にもあります。これはJavaScriptに今すぐ進むべき最大の理由ではありません。

今日ではWeb開発に多くの技術があり、初心者には選択肢が多すぎます。その選択は難しいのです。Web開発の世界では、新しい優れた技術、フレームワーク、ライブラリが常に登場しています。

多くの受講生はこのことに混乱し学習を完全に諦めてしまいます。何千人もの受講生は次のような状況に至っています。

フロントエンドとバックエンドのどちらに焦点を当てるべきだろう?
Reactが本当に人気が高いと聞いた。だから私はそれを学ぼう。Reactは素晴らしいフロントエンドのフレームワークだという情報を読んだので、これを始めてみようか?それとも、AngularJSが良いだろうか?しかし、バージョン2はバージョン1と全く異なっているようだ。何だが混乱してきた。私はバックエンドの方が好きだと思う。… だからPHPを学ぶべきでは?PHPは簡単らしい。でも、今ではもう誰もPHPを​使用していないようだ?むしろ、クールなスタートアップはどこもRuby on Railsを使用しているようだ。他には何があるだろう?Python?Java?Node.js?結局のところ、Web開発は私に向いていないかもしれない…

そして、この状況はさらに続くでしょう。簡単ではないことが明らかです。しかしそうである必要はありません。なぜなら、JavaScriptが究極の答えだからです。JavaScriptを学ぶとしたら、あなたは今日、そして将来のために備えができることになります。

その理由について見てみましょう。

理由1:JavaScriptはWebサイトやWebアプリに動きを与えます

JavaScriptを使うと本当にすばらしいものを作ることができます。だから、世界中の大手企業がWebサイト上でJavaScriptを使用してユーザーのエクスペリエンスを向上していることも不思議ではありません。

例として、ドラッグ&ドロップなどの多くのユーザーインタラクションを伴うリアルタイムのWebアプリケーションは、本格的なデスクトップアプリの機能性を備えていることを考えてみましょう。あるいは巧みな効果やアニメーションの伴う美しいデザインのLP(ランディングページ)を考えるのもいいでしょう。

具体例を4つご紹介します。

AirBnB

/uploads/picture/asset/83/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2017-03-24_16.14.04.png

検索のインターフェースは完全にJavaScriptで動いています。

Googleスプレッドシート

/uploads/picture/asset/86/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2017-03-27_14.01.49.png”}

スプレッドシートのアプリケーション全体がJavaScriptで書かれたものです。

Blu Homes

/uploads/picture/asset/84/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2017-03-24_16.13.29.png

JavaScriptの効果やインタラクションを数多く含む美しいWebサイトです。(ページ全体をスクロールしてメニューをクリックしてみることをおすすめします)。

St. Louis Browns

/uploads/picture/asset/85/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2017-03-27_12.13.28.png

JavaScriptが使われている豪華なWebサイトです。

さて、これらは本当に発展的な例ですが、JavaScriptがいかに強力であるか、いかに重要な言語であるかを示すには十分であると思います。実際に、JavaScriptは「インターネットの共通言語」と呼ぶことができるでしょう。世界のWebサイトの99%がフロントエンドでJavaScriptを使用していると言っても過言ではありません。

つまり、JavaScriptを学習することは単なる選択肢ではなく、必須です。

しかし、このことはJavaScriptはフロントエンド以外でも使用できるという事実を考慮していません。理由2にそれを示します。

理由2:JavaScriptはバックエンドでも使用できます

私の意見では、これがJavaScriptを学ぶべき最大の理由です。

JavaScriptはブラウザ(フロントエンド)だけでなく、サーバー上でも使用できるため、バックエンド開発にも効果的に使用できます。

これは、JavaScriptをサーバー上で実行するための軽量な開発環境であるNode.jsを使用して行います。 Node.jsはJavaScriptをサーバーに導入することにより、この言語に新しい可能性をもたらしました。

だから、JavaScriptを使用すれば、あなたは効率的にフルスタックエンジニアのスーパーヒーローになることが可能です。Node.jsを実際に使用するためにはいくつかのことを学習する必要がありますが、全く新しい言語を学ぶよりも簡単です。

世界最大の企業の中には、高速でモダンなNode.jsをすでに使用しているところもあります。たとえば、Netflix、Uber、PayPal、LinkedInなどの企業です。これらの企業はすべて、バックエンドでJavaScriptを使用しています。

要するに、あなたのWeb開発のキャリアに最も効果を発揮するのは、他のどの言語よりもJavaScriptであるといえます。

理由3:JavaScriptは始めるのが簡単です

あなたがJavaScriptでコーディングを開始する場合、1分以内に開始できます。これは冗談ではありません。JavaScriptは何もインストールする必要がなく、複雑な実行環境も、セットアップも、設定も、コードのコンパイルも、何も必要ないからです。他の多くのプログラミング言語では、これらのうちのいくつかは必要となりますが、JavaScriptではそうではありません。

あなたが必要なのはすでに持っているブラウザだけです。テキストエディタを使用して、最初のアプリケーションの作成を開始します。

しかし実際に始めることは、ブラウザで開発者ツールを開いて、コンソールに向かい、コードの入力を開始するだけです。これは本当に簡単ですが、同時に強力でもあります。

理由4:JavaScriptエンジニアは需要が高く、報酬も高い

近年、JavaScriptとそのコミュニティは成熟し、JavaScriptは確立した言語となり、真剣に受け止められています。

今ではあなたもご存じのように、世界中のすべての大手ハイテク企業はJavaScriptを多く使用しています。そのため、JavaScriptエンジニアの需要は急上昇し、もちろん、最優良企業はIT業界で最高のエンジニアを引き付けようとしています。

競争が激化すれば、最高の才能を持つ人を獲得するためにこれらの企業が提供する給料も増加します。求人ポータルサイトのgoorooによると、米国のJavaScriptエンジニアの平均給与は約95,000ドル(2015年9月時点)です。

理由5:JavaScriptはインターネットの未来です

JavaScriptはとどまるところを知りません。実際、私はJavaScriptこそインターネットの未来だと考えます。

また、JavaScriptは発展の最終形ではありません。いわゆるシングルページWebアプリケーションの登場によって、React/AngularJS/Emberなどの多くの人気のあるJavaScriptフレームワークが開発されました。これらはすべてJavaScriptに基づいて構築されているため、JavaScriptを最初に(そして十分に)学ぶ必要があります。

だから、現在のすべてのハイテク企業がアプリケーションにJavaScriptを利用しているという事実とともに、これらのフレームワークが世界中を支配しつつあるという事実を考えてみてください。これは、非常に迅速にJavaScriptを世界で最も人気のある言語にしている理由です。実際にはそれ以前からそうであったと主張する人もいるかもしれませんが。

さらに役立つ情報としては、JavaScriptには競争相手になる言語がいないということです。フロントエンドWeb開発の標準的なプログラミング言語として代替言語になるものは、世界中のどこにも存在しません。

もっとも、これは将来的にも他の代替言語が存在しないという意味ではありません。しかし、今日のJavaScriptはその優位性と普及率において無敵であるというのが、私の見解です。

結論:JavaScriptを学ぶこと

以上が、あなたが次にJavaScriptの学習に挑戦するべき最も重要な5つの理由です。これほど説得力のある言語は、世界中に他にありません。

しかし、JavaScriptを学ぶのは簡単ではありません。コーディングは決して簡単ではありません。正直に言って、コーディングが簡単だと言う人は誰も、真実を伝えていません。しかしそれは、あなたや他の誰かがコーディングを学ぶことができないということを意味してはいません。

もちろんJavaScriptのコーディング方法を学ぶことはできますが、正しい方法で学ばなければなりません。