分かりやすい、丁寧な記事を心がけています。
注意の画像

初めてのプログラミング言語選び。本当に「PHP」で良いのか。考えて選択しよう!

  • 2019年1月29日
  • 開発
  • 111view

PHPは学習しやすい?

キーボードの画像

「プログラミング 初心者 言語」等で調べると、多くのサイトで「PHP」が上位に挙げられていることが多々あります。
※今回はHTML等のフロントエンド言語は対象とはしません。あくまでもサーバサイド言語で話を進めていきます。

もちろん、自分が作りたいものが明確に決まっているなら、言語の特性を元に学んだ方が良いです。

言語の特性を書いた記事

目次1 プログラミング言語の特性理解って必要?1.1 特性を理解していなくても開発者にはなれる。1.2 プログラミング言語の特性は理解しておくと良い。2 主要な5言語の特性2.1 Ja[…]

プログラミング学習の画像

特に決まっていなければ、恐らく学習しやすい言語を選ぶ方が多いでしょう。
確かに、学習のしやすさという観点で見ると、以下の理由で群を抜いています。

  • たくさんの人が使用している言語が故、行き詰まったときに参考にできるサイトが多く存在する。
  • 自由度が高く、「なんとなく」でも動かすことができる。
  • スクリプト言語なので、逐一実行しながら動作を確認してソースコードを書いていくことができる。
  • 開発環境の構築もそこまで難しくなく、開発に入りやすい。

これだけ見ると、初学者にはうってつけの言語のような気がしますね。

かくいう私も初めて触れた言語はPHPでした。
最初はPHPでソースコードを書くことさえ難しく、なかなかうまくいかないことの方が多かったなぁ…

ある程度理解が進んできて自分の思ったようにシステムが組めて嬉しかったのも、ついこないだのようです。笑

話が逸れました。

とりあえずまとめておくと、「学習のしやすさ」で見れば、間違いないです。
ある程度理解が進めば、できることも増えてモチベーションも維持しやすいですし。

PHPは初めての言語としてどうか?

初心者の画像

学習しやすいから初めて触れる言語にするというのはちょっと早計です。

これから、他の言語はやらないで、PHPのスペシャリストになる!というのなら別ですが、多くのシステムエンジニアは多岐に渡って色々な言語を扱うことになるでしょう。

私自身これまで開発に携わってきた言語を挙げてみると「PHP」「Ruby」「Java」「C#」「Python」など多岐に渡っています。

そういった面で見たときに私の経験ではPHPから入るという選択肢は余計な学習コストがかかってしまいます。

理由は「なんとなく」でも動かすことができるという一点につきます。
確かに、他の言語でもよく分からず、うまくいくことがあります。笑

ただ、PHPはその可能性が他言語より高いです。
つまり、理解しきれてなくても動くことで、学習の未達成領域が生まれやすいのです。

結果として、中途半端にアルゴリズムを理解しているシステムエンジニアの完成です…

PHPで学べることは?

PHPには「Laravel」や「CakePHP」等の優秀なフレームワークがあります。
これらを使用することで、MVCモデルでのシステム構築を行うことができます。

MVCModel View Controller モデル・ビュー・コントローラ)は、ユーザーインタフェースをもつアプリケーションソフトウェアを実装するためのデザインパターンである。

アプリケーションソフトウェアの内部データを、ユーザーが直接参照・編集する情報から分離する。そのためにアプリケーションソフトウェアを以下の3つの部分に分割する。

1.model: アプリケーションデータ、ビジネスルール、ロジック、関数
2.view: グラフや図などの任意の情報表現
3.controller: 入力を受け取りmodelとviewへの命令に変換する

Wikipediaから引用

このMVCモデルは他言語でも同様に活用される考え方です。
仮にPHPから学習を始めても、こういったMVCモデルの考え方を学習することはできます。

広告

最初に学習するおすすめの言語は?

どう選択する?

これは、完全に私の独断と偏見になりますが、「Ruby」か「Java」の2択だと思います。

導入難易度で言えば、「Ruby < Java」です。
一度も触れたことが無いのであれば「Ruby」を少しだけかじったことがあれば「Java」を選ぶと良いかもしれません。

Rubyを勧める理由

そもそも、Rubyは日本で作られた言語です。そのため分からないことを検索すると比較的容易に参考のサイトが出てきます。また、ソースコードも覚えやすく、始めて学習しても大きく躓くことは無いです。

ただし、Rubyを学習するなら並行して、フレームワークの「Ruby on Rails」も学習しましょう。利用することで、PHP同様MVCモデルで開発をすることができます。MVCの考え方は一般的なのでしっかり落とし込んでいきましょう。

恐らくこのRuby on Railsが最初の鬼門になってくると思います。フレームワークは理解してしまえば、これほど便利なものはありませんが、理解できていなければ迷宮に入り込む諸刃の劔です。

また、Rubyであればある程度の自由度を持ちながら、自由すぎるということは無いので「なんとなく」動くということがそれほど頻発しません。

そのため、全くの初学者であればRubyをオススメします。

Javaを勧める理由

Javaは色々な言語の中で習得難易度はそれなりに高いです。しかし、この言語は大規模なシステム開発に使用される頻度が高く、学習しておいて損になる言語ではありません。

また、Ruby等と同様、開発者も多いため調べればある程度のことは解決出来ます。

Javaの自由度は非常に低いです。何をするにしても、しっかりした理解を必要とします。また、コンパイル型言語ということもあり、サクサク確認しながら開発をするということも出来ません。

しかし、コンパイル型言語は処理速度が速く、確実に身につけておきたい言語だと言えます。

上記から、少しでもかじったことがある人にはJavaをオススメします。


ということで、単純に初学者だから「PHP」という安易な言語決定はしないようにしましょう。数年後を見据えて、今習得すべき言語は何かということを多少なりとも考えた上で言語を選ぶべきです。

もちろん、考えた上で「PHP」から入るという選択肢も、間違いなく入り口としては最高の言語だと思うのでありです。
ただし、あくまでもその後、新しい言語を学ぶ時に少し時間がかかる可能性があることは念頭においておきましょう。

以上。yukilaboでした!!

広告
注意の画像
興味を持ったら是非!!
広告