プログラミングがなかなか上達しないと悩んでいるなら、Node.js(JavaScript)を始めてみませんか。
もしあなたがシステムエンジニアなら、何か一つ精通しているプログラミング言語を持っておくととても役に立ちます。
ただ、システムエンジニアの仕事って、実はプログラミング使わないことが多く、仕事だけでプログラミングを習得するのって実は大変ですよね。
Node.jsはJavaScriptなので環境構築が簡単で初心者でも学びやすい上に、新しい技術がどんどんサポートされているため色々なことができて汎用性の高い言語です。
私もJavaやVB.net、C#など仕事で触れた言語は一通り勉強しましたが、Node.jsは実現できることが多く、作りたいアプリを作れて習得しやすさが全然違います。
この記事では、Node.jsを学ぶメリットとプログラミングの学び方について紹介します。
Contents
Node.jsを学ぶメリット
Node.jsの特徴
Node.jsは非同期処理を使ってアプリケーションを作ることができるサーバサイドJavaScript環境のことです。
JavaScriptを使ってアプリケーションを構築することができます。
Node.jsで記載するコードは基本的にはシングルスレッド(コードを記載した順)で処理されますが、DB検索や他システムへのHTTP通信などの外部とのやり取りは非同期で処理されるという特徴があります。
外部とのやり取りは制御が必要だけど、並列で早く処理することができる言語ということだけ覚えておけば大丈夫です。
Node.jsでできること
豊富なライブラリでできることが多い
Node.jsはサーバアプリケーションを構築できますが、豊富なライブラリを使ってWebアプリケーションやフロントエンド部分も作り込むことができます。
スクレイピングでChromeを操作することもできますし、APIが提供されていれば他システムと情報をやり取りすることができます。
TensorFlow.jsを使ってディープラーニングをすることもできます。
npmというコマンド一つでパッケージ管理ができるツールを使うことで、これらのことが簡単に実現できます。
プログラミングの学び方(Node.js)
ここからはプログラミング言語の学び方について自分の体験も含めて解説していきます。
プログラミングを習得したいのであれば、自分の作りたいものを作るのが一番の近道です。
以下はNode.jsで自分のアプリケーションを作れるまでのプロセスの一例です。順に解説します。
- ゲームでJavaScriptの文法を学ぶ
- 無料動画「ドットインストール」でNode.jsに入門する
- 自分の作りたいツールを作る
- JavaScriptについて学ぶ
ゲームでJavaScriptの文法を学ぶ
この段階はスキップしても構わないと考えています。
プログラミング言語(特にJavaScript)の文法はループや判定などができればとりあえず動くものは作れます。
ただ、プログラミング初心者の方は言語の文法(if文やループなど)を習得しておかないとつまずきやすいので、できるだけ簡単で楽しい方法を紹介します。
オススメはPaizaのゲームです。
paizaオンラインハッカソン一覧:過去のゲームイベントなど | ITエンジニア向け転職・就活・学習サービス【paiza】
2019年11月現在で新しいのだと「エンジニアが死滅した世界」というタイトルがあります。
難易度はD〜Aまであり、先に述べたループや判定などを使ってアルゴリズムを組んでいくので、最低限の文法は習得できます。
難易度Aは時間がかかるので、Bまでを目標にするといいと思います。(基礎スキル習得が目的なので、Bも全部クリアする必要はありません)
逆に、オススメできない勉強は最初に文法の書籍を購入することです。
スキルの習得が目的になると勉強感が出る上に、文法の書籍を一冊読んでもそれだけでは何も作れるようにないので、この段階ではやらなくて大丈夫です。
無料動画「ドットインストール」でNode.jsに入門する
JavaScriptに慣れてきたら、作れるアプリケーションをイメージしましょう。
オススメは「ドットインストール」です。無料のオンライン動画でプログラミングを勉強できます。
https://dotinstall.com/lessons/basic_nodejs
Node.jsを学ぶのであれば「Node.js入門(全16回)」のような講座がタダで受けれます。(1回3分前後なので気軽にできます)
「Node.js入門」の後は「Express入門 (全21回)」を視聴するとNode.jsでWebアプリを作れます。
「Node.js入門」「Express入門」まではやっておくことをオススメします。
(動画はExpress3.0ですが、現在はExpress4.0になっているので、多少の読み替えが必要です。講座内に補足があります)
他にもReactやAngularJS等もあるので、自分の作りたい方向性に応じて受講してみてください。
自分の作りたいツールを作る
自分の作りたいツールを開発する
Node.jsに入門した後は自分の作りたいツールを作ってみましょう。
先ほどのドットインストールでは自分好みのToDoリストやミニゲームなどが紹介されています。
APIが提供されているサービス(ビットコイン取引所やTwitterなど、幅広く)であればAPIで他のサービスとつなぐことでブラウザから操作するよりも楽にデータが取れたりします。
(APIはWeb系のサービスにブラウザ以外でつなぐことができるサービスです)
APIは有名なサービスであればネットの情報で十分に接続できるし、おそらくあなたが思っているよりも簡単にできるので、挑戦する価値はあります。
APIがなくてもブラウザを自動操作させるスクレイピングもあります。
機械学習で自作AIを作ることもできます。(ただし、難易度は高いのと、Node.jsよりもPython3がおすすめです)
なお、このブログ(Node.jsで暗号資産アービトラージ)ではビットコイン取引所とのAPI接続やスクレイピング(Puppeteer)を解説しています。
作ったツールを運用する
自作ツールは運用してみましょう。
例えばWebアプリであれば外部サーバを契約して、外部サーバで常時動かしてみる、といった感じです。
運用していると問題が発生するのでそれを対策するのも勉強になりますし、使いづらいところや改善点などユーザの観点でシステムを見れるようになります。
JavaScriptについて学ぶ
この段階まで来るとJavaScriptについて学ぶことはかなり効率がよくなります。
ある程度JavaScriptが動かせるようになっているので、自分のコードとの比較ができ、自分のアプリケーションをより良くすること、スキルの習得を同時に見込めるようになります。
入門書ではなく、中級者向けのスキルをアプリケーションの開発と並行して習得します。
JavaScriptを学べる中級者向けの本
本格入門とありますが、初心者には難しくて読めない本です。
JavaScriptの関数やオブジェクトなど、ネットで習得するにはやや難しいけれどスキルアップで欠かせない知識を習得することができます。
辞書のような本です。ページ数が多すぎるので全部読むことはオススメできません。
JavaScriptの言語仕様を学ぶことができるのと、関数のリファレンスは便利な表現のストックができます。
内容は難しいですが、コーディングする上での参考になる知っておくと便利なパターンを習得することができます。
まとめ
Node.jsは幅広く活用されている言語であり、これまでプログラミングの勉強に悩んできた方にもオススメできることを紹介しました。
また、プログラミングの習得は自作アプリケーションを作ることが一番習得できます。ぜひ参考にして自分のアプリケーションを作ってみてください。
コメントを残す