プログラミング初心者にはnode.jsよりPHPを勧めたい理由

      2017/03/30

「JavaScript覚えたから、サーバ側もnode.js覚えればかんたんかな?」
「言語いくつも覚えたくないからサーバ側もnode.jsでJavaScriptに統一したい」

読者の方から、相談メールが届きました。

「私はプログラミング初心者でHTML, CSS, JavaScriptを学びました。サーバ側もnode.jsならJavaScriptなので学びやすいかなと思うのですが、いかがですか?」

ということで、こちらに回答します。

node.jsは安いレンタルサーバで動かせない

安いレンタルサーバの多くは

  • PHP
  • Ruby
  • Python
  • Perl

を動かせますが、node.jsは動かせません

もちろんVPSやクラウドを借りれば、node.jsを動かせますが、レンタル料も高くなりますし、環境のセットアップもしなければなりません。

その点、レンタルサーバは既に環境がセットアップされたものを使えるのでかんたんです。

特にPHPはファイルを公開ディレクトリに置くだけで動かすことができるので簡単です。

Ruby, Python, Perlは動かせてもCGIモードに限定されてるサーバが多いです。

CGIの場合、リクエストごとにプロセスを起動するので、フレームワークを使うと、読み込むモジュールが多いため、処理が重くなってしまいます。

PHPは多くの安いレンタルサーバでApacheの内部モジュールモードで動かすことができるので、フレームワークを使ったシステムでも高速に動作します。

それにPHPに比べてRuby, Pythonのバージョンが古いサーバも多いです。

私が借りているレオサーバの場合、

  • Python 2.6.26(最新は3.6)
  • Ruby 1.8.5(最新は2.3.1)

です。ちなみにPHPは5.6なので新しいものを使えます。

node.jsはシングルスレッドノンブロッキングIOなのでコードが難しい

例えばPHPでファイルを読む時に以下のような書き方ができます。

ブロッキングIOの書き方です。分かりやすいですよね。

それに対して、node.jsの場合、ノンブロッキングIOの書き方をしなければなりません。

ファイルを読んで取得したデータをコールバック関数の引数として受け取らなければならないんです。初心者には難しいですよね?

node.jsよりPHPの方が日本語の情報が多い

日本語の書籍もWebサイトもPHPの方が圧倒的に多いです。

node.jsはちょっとしたエラーが出て、原因を調べるだけでも日本語ページがなく、stackoverflow.comなどの英語サイトしか出てこない場合がよくあります。

JavaScriptとPHPは文法が似てるから覚えるのかんたん

ほとんど同じですよね?このように文法の大部分は共通していますので、JavaScriptを知ってる人にとってPHPを学ぶものは簡単です。

PHPにかぎらず、多くのプログラミング言語の基礎的な構文は共通部分が多いので、一つ言語を学べば、次の言語を学ぶのは以前よりもずっと簡単になります。学べば学ぶほど、学ぶのが楽になっていくのがプログラミングなんです。

node.jsの方が新しいので初心者でもベテランに追いつきやすいのでは?

そうともいえますが、node.jsも登場してからもう何年も経っています。その頃からやってる人はずっと先を行っています。

PHPは古い言語ですが、PHPのフレームワークはどんどん新しいものが出ているので、それを学べば、そのフレームワークにおいてはベテランと並ぶことも比較的かんたんです。

node.jsの方がPHPより高い給料もらえるんじゃないの?

エンジニアとして企業に就職するなら、PHPよりnode.jsを学んだ方がエンジニア数が少なく希少なので高い給料がもらえるかもしれません。

しかし、PHPの一流エンジニアはnode.jsの初心者よりもずっと高い給料をもらっています。

給料は、技術の種類 × 習熟度で決まります。

ですから、node.jsの一流エンジニアになれば、PHPのエンジニアの一流よりもレアだから高い給料もらえるはずと考えることも出来ます。

ただ、これもケースバイケースです。FacebookはPHPで作られていて、めちゃ儲かっています。LinkedIn(モバイル版)はnode.jsで作られています。LinkedInも今後伸びるかもしれませんが、今のところ、売上高はFacebookの方がずっと上です。PHPの一流エンジニアになってFacebookに就職したほうが高い給料もらえる可能性が高いと考えられます。

そんなわけで、node.jsはJavaScriptなので、文法を新たに学ばなくてもいいですが、上記で述べた難しさ・デメリットがあるので、私は初心者にはnode.jsよりもPHPをおすすめしています!

プログラミング初心者におすすめのサービス
1. 講師から対面で学びたい派なら

プログラマカレッジをおすすめします。ProEngineerという転職エージェントが運営しているプログラミングスクールです。20代限定なんですが、無料で受講できて、修了後、就職支援もしてくれるんです。最高過ぎですよ、これ!!就職の紹介料を企業からもらえるのでスクールを無料にできるんでしょうね。すばらしいシステムだと思います!

30代以上の方には

プログラマカレッジは20代限定なので30代以上の方にはWebスクをおすすめします。受講料の返金保証がついているし、毎日11時〜23時まで通い放題なのでとてもいいと思います!

2. 自宅で学びたい派なら

「就職保証付き」オンライン就職予備校をおすすめします。Javaエンジニアコースでは就職保証がついているのでプログラマーとして就職したい方にはぴったりです。Javaエンジニアの求人ってめっちゃ多いし、求められる技術レベルもそこまで高くないのでちゃんとした教育プログラムなら就職保証できるだろうなとJavaエンジニア経験者の私も思います。

3. つまづいた時に質問したくなったら

プログラマー専用の質問サイトteratailをおすすめします。 つまづいた時にteratrailで質問すれば教えてもらえます。

これらのサービスを活用すれば、全くの初心者からでもプログラミングをばっちり出来るようになると思います!レッツトライです!

 - 技術 , ,