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

2017年2月24日に投稿 → に更新 技術

「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の場合、リクエストごとにプロセスを起動するので、フレームワークを使うと、読み込むモジュールが多いため、処理が重くなってしまいます。ですから、安いレンタルサーバでRuby on Railsを動作させることは困難です。

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

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

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

$data = read("ファイル名");

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

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

read("ファイル名", function(data) {
});

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

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

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

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

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

//JavaScriptのif文 例
var a = 3;
if (a == 3) {

}
//PHPのif文 例
$a = 3;
if ($a == 3) {

}

//JavaScriptのfor文 例
for (i = 0; i < 10; i++) {

}
//PHPのfor文 例
for ($i = 0; $i < 10; $i++) {

}

ほとんど同じですよね?このように文法の大部分は共通しているので、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. 教室で学びたい派なら

プログラマカレッジは20代限定で、無料で受講できて、修了後、就職支援もしてくれるプログラミングスクールです。最高過ぎですよ!企業の協賛金で運営されいているから無料で受講できるんだそうです。しかも、正社員就業率96.2%とのことで、すばらしいシステムですね。

30代の方には

プログラマカレッジは20代限定なので30代の方にはゼロスクがおすすめです。35歳以下なら無料で受講できます。教室も札幌、仙台、東京、大阪、神戸、福岡と全国展開しているので地方の方でも利用できます。

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

Udemyという動画講座がおすすめです。時々特別セールがあって驚くほどの低価格で受講できるので、是非チェックしてみてください。

3. エンジニア未経験の人でも利用できる転職エージェント

ワークポートは未経験の人の転職活動も支援してくれますし、全国の求人を扱っているので地方在住の方にもご利用いただけます。お給料をもらいながら社内研修でプログラミングを学べる会社が狙い目です。

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