非常に汎用性の高い言語としてお馴染みの「JavaScript」ですが、具体的に何から学べば良いのか分からない方も多いと思いますので、今回は初心者におすすめの学習パターンについて解説したいと思います。
初心者がJavaScriptを学ぶ為の3つのステップ
最近では、JavaScriptと言っても出来る事の幅がぐっと広がっていますので、目的に応じた学習方法を選択することも大切だと考えています。
①JavaScriptで実現できる事をチェックしておく
今でこそフロントエンドで大活躍している言語ですが、過去を遡ると、今のように汎用性が高い言語ではなく、寧ろWebページの動きが遅くなる原因としてJavaScriptの機能を利用しないユーザーもたくさんいました。
そんなJavaScriptですが、Ajaxや様々なフレームワークの登場によって活躍する幅を広げています。
便利なライブラリが豊富ですので、より効率よく作業を進められるようになりました。
という訳でまずは、JavaScriptで出来ることについて確認しましょう。自分の作りたいものがその言語で作れなかったら本末転倒になってしまうかもしれませんので。
ブラウザ上で動作するプログラムの作成(Webサイト)
一番身近で分かりやすいのが、ブラウザ上での動作ですね。
普段みなさんが見ているWebページというのは、基本的に「HTML」+「CSS」の組み合わせで出来ているものが多いんですが、ここにJavaScriptを組み合わせることで、ブラウザ上に公開されている画像を拡大したり、アニメーション効果を付けたりすることが出来ます。
これらは、いわゆるインタラクティブ機能と言われるんですけど、最近ではほとんどWebサイトにおいて実装されているでしょうね。
JavaScriptのように、ブラウザ上で動的な対話処理を実装できるスクリプトをクライアントサイドスクリプトと言います。
一方、PHPなどサーバー上で処理されたデータをブラウザ上で表示するスクリプトはサーバーサイドスクリプトと呼ばれます。
それじゃあJavaScriptは、サーバーと通信を行わないの?って思われそうですが、フロントエンドのプログラムの場合、サーバーサイドからデータを取得することが出来るので、サーバーと通信を行う事が出来るわけです。
普段分からないことをネットで検索しますよね。その時に入力したキーワードに関連する単語が横に表示されますが、あの機能なんかがまさにフロントエンドとサーバーサイドの処理になります。
ちなみに、フロントエンドと一緒にバックエンドという言葉も良く聞きますが、ユーザーが文字を入力するような直接目に見える部分をフロントエンドと言い、入力された内容からWebサーバーやデータベースが結果を返す目に見えない部分をバックエンドと言います。
先ほどの例で言うと、直接検索したいキーワードを入力する部分がフロントエンドとなり、関連するキーワードがバックエンドの処理ということですね。
Webアプリケーションの作成
サーバー上のやりとりが行えるということは、当然Webアプリの作成が出来るわけですね。
Webアプリは、何かをインストールして使うアプリとは異なり、ブラウザ上で利用することが可能です。YoutubeなどがWebアプリの代表例ですね。
また、スマホアプリのようにプラットフォームの違いを意識して開発を行う必要がないのも特徴の1つです。全てのアプリがUnityのようなマルチプラットフォームというわけでもないですからね。
最近では、これまた人気のプログラミング言語である「Python」等と一緒に使用される機会が増えてきていますが、JavaScriptならフロントサイド、サーバーサイドどちらでも開発を行うことが出来ます。
サーバーサイドの場合は、「Node.js」などサーバーサイド上で動作するJavaScriptを使用します。
今から約10年ほどに登場したんですけど、Node.jsを使用することで、PHPなどのサーバーサイドスクリプトと同じような使い方が出来るようになっています。
WebアプリもWebサイトと同様に「HTML」と「CSS」が必要になるのではないかと思いがちですが、今では様々なエディタが用意されていますし、APIによってサポートしてくれるので、JavaScriptだけでもWebアプリを作成することが出来るようになっています。
スマホアプリ(スマホゲーム)の作成
私も、Unityブロガーとしてゲームの作り方に関する記事を投稿していますが、JavaScriptでもスマホアプリやスマホゲームを作る事が出来ます。
ただ、100万人以上が使用している有名ゲームエンジンUnityでは、以前JavaScriptを使用してゲーム開発を行うことが出来たんですけど、今はサポート外になっているので、UnityでJavaScriptを使ってゲームアプリを作りたい方は注意が必要です。
もし、Unityでゲーム開発を行うのであれば基本的に「C#」を使用することになるでしょう。
これまで、スマホアプリの開発と言ったら各OSに対応した「Java」や「Swift」が定番でしたが、AndroidとiPhoneどちらにも対応した言語がなく不便な面もありました。
そんな時に登場したのが、React Nativeと言われるアプリ開発をサポートするフレームワークです。
React Nativeを使用することで、Android及びiPhoneどちらでも動作することが出来るアプリの開発を行えるようになりました。
使用する言語はもちろんJavaScriptです。代表的なアプリは「Instagram」や「UberEats」ですね。
いちいちプラットフォームを気にしなくて良いと言う事は、それだけ効率アップが期待出来るという事です。React Nativeで開発を行うと、ソースコードを保存する際に自動でリロードが行われるので、コンパイルを省略することが出来ます。
また、OSによって異なるコードも少ししかなく、それら以外の部分は共通化することも出来ます。
②JavaScriptを学習する目的を明確にする
JavaScriptで出来る事について一通り紹介した所で、JavaScriptを勉強する理由や目的について明確にしておきましょう。
趣味として学びたい
なんとなく趣味として学びたい場合には、入門書やネットにある学習サイトなどを利用すると良いでしょう。
基礎的な内容から勉強を始めることになると思いますので、まずは自分のレベルに適したものを選択するのが無難でしょう。
JavaScriptに関しては、とても有名なプログラミング言語ですので、ネットで検索するといくらでも情報がヒットします。
分からない事があっても、解決する手段が揃っているので、入門書や学習サイトがおすすめですね。もちろん、趣味だろうと本格的に実務レベルまで学びたいのであればプログラミングスクールをおすすめします。
フロンドエンドエンジニアを目指す場合
フロントエンドエンジニアを目指す場合や、転職したい場合は、それなりの知識を求められる可能性が高いので、JavaScriptだけじゃなくHTMLやCSS、出来ればWordPressなどの「CMS」に関する知識なども習得しておくと良いと思います。
入門書やネットの学習サイトでは、ある程度基礎について固めることは出来ると思いますが、なかなか実務レベルに関する知識を習得することは難しいので、プログラミングスクールがおすすめになります。
一応JavaScriptは、メジャーな言語でフロントエンドエンジニアは、不足状態にあるので未経験でもOKとなっている求人は比較的多いです。
ですから、おすすめはプログラミングスクールか就職及び転職になりますが、ある程度JavaScriptについてマスターしておけば優遇されるはずですので、プログラミングスキルを身に付けておくことも大切だと思います。
③目的に応じた学習方法を決定する
入門書で学ぶ
入門書で学ぶ場合のおすすめについてはこちらでまとめています。
Udemyで学ぶ
ネットで学ぶ場合にダントツでおすすめしたいのがUdemyです。
Udemyなら学習したいコースを最大90%以上の割引価格にて学ぶことが出来るようになっています。
プログラミングスクールで学ぶ
現在は、様々な種類のプログラミングスクールが存在しますが、オンライン形式で学習できるサービスが増えてきています。
スクールを受講する場合、それなりの料金になるので、まずはプログラミングスクールの選び方から考えるようにしましょう。
大手のプログラミングスクールは、大抵のところが無料体験から始めることが出来るようになっているので、焦らず無料体験から始めることをおすすめします。
まとめ
現在のフロントエンド開発においてJavaScriptは中心的な存在となっており、今後も需要は高まっていくと予想されます。
JavaScriptは、他の言語と比べて学習難易度が低いので、初心者にとっておすすめのプログラミング言語と言えます。
1つの言語をマスターすることで、他の言語も理解が深まりやすいので、初めてのプログラミングならJavaScriptを検討してみる事をおすすめします。