どうも!侍インストラクターの井上(@InoIno_iesa)です。
インストラクターをしていて、「プログラミング入門者によく聞かれる質問ランキング」を作るとしたら、TOP5に入る質問がこれです。
結局、「PHP」と「Ruby」どっちを勉強すればいいの?
1番最初に結論を言ってしまうと、「絶対的にこっちのほうが良い!」ということは言い切れないんです。その人の、目的(目標)によって、どちらを勉強するべきかが変わってくるからです。
そこで今回は、WEBプログラミングを学習する「目的別」に、PHPかRubyどちらを学習すべきか結論づけました。また、その理由についても解説していきたいと思います。
その1:純粋にプログラミングを学びたい
プログラミングを学んで、転職したり、何か作りたいものがあるわけではなく、純粋に「プログラミングそのもの自体」に詳しくなりたい、という目的を持つ方です。
結論
- 好み(どちらでもよい)
理由
PHPの方が様々なWEBフレームワークが存在しているため、フレームワークを構成する様々な概念を学ぶことは面白いかもしれません。(逆に色々現場によって学習は必要になります。)
しかし、プログラミング言語としては「Ruby」の方が直感的かつ簡潔に書きやすく、また「オブジェクト指向」と呼ばれる考え方をより深く学べるでしょう。
その2:就職・転職したい
高校・大学卒業後は、WEB業界に就職したい。もしくは、現職を離れ、WEBエンジニアとして、転職したい。そう言った目的・目標を持つ方です。
結論
- どちらもとも言えない(場合による)
理由
勤務先が決まっている
場合によるというのは、就職・転職する勤め先によって、求められている・有利になる言語は異なるからです。あらかじめ、その会社でどんな言語で人材採用しているのかを調べてから、その言語を学習すると良いでしょう。
勤務先が決まっていない
ただ、行きたい会社ややりたいことがまだ分からないという段階では、WEB制作やシステム開発の受託が多い会社に行きたければ「PHP」、自社サービスを運用している会社やスタートアップ(新しい事業を作る会社)系に行きたければ「Ruby」を学習しておくのが良いでしょう。
PHP(およびPHPのフレームワーク)は様々なサーバに載せやすく、システムを作る上での制約が比較的少ないため広く使っていけます。少し前まで日本のWEBサービスはPHPで作られていることが多かっため、中堅以上の方がPHPを使っている現場ではPHPが開発技術として採用されることが多いです。
Rubyは最近のいわゆるベンチャー企業と呼ばれるようなところで多く採用されるようになってきており、自社サービスや社内システムなど、スピード感を持って柔軟に開発を行いたい現場で採用されることが多いです。
その3:WEBデザイナーとしての「幅」を広げたい
現職でWEBデザイナー・フロントエンジニアをやられていて、デザイナーとしての幅を広げたいという意味で「サーバーサイドのプログラミングを学びたい」、という方です。少し、ピンポイントにはなりますが、エンジニアに近い存在なので、プログラミングの重要性・必要性に気づかれている方が多く、質問をしていただく機会も多いです。
結論
- PHP
理由
PHPはHTMLに埋め込むような形で使うのが一般的で、サイト内のフォーム部分だけを作りたいというような局所的な内容であればPHPの方が簡単に実装することが出来ます。
ただ、これが行き過ぎるとカオスなソースコードになりやすく、直接PHPをいたるところに書く所謂”生PHP”がはびこると保守性を下げる原因にもなりやすいです。
ある程度の機能を実装する場合、WEBフレームワークの導入や別の言語での実装も検討しましょう。
その4:プログラミングで仕事の効率化をしたい
プログラミングを習得すれば、パソコンに仕事をしてもらうことができます。人間が行う単純作業を数百倍数千倍数億倍のスピードと正確さで処理をしてくれます。「この単純作業なんとかなんないかなぁ。」そんな悩みを持っている方です。
結論
- Ruby
理由
Rubyでプログラムを書いた方が、(慣れの問題も有りますが)圧倒的に早く作れるからです。
Rubyはメソッドの組み合わせなどを工夫すると、凄く短いソースコードで処理を書いていけるほか、構文解析や通信周りの処理も得意としています。
(もちろんPHPでも同様のものは作成できますし、良いライブラリがあればPHPの方が良い場合もあります)
その5:アプリ・サービス開発したい
WEBアプリ・サービス開発をしたい方です。作りたいサービスによるため、種類別に結論付けます。
ECサイト
結論
- PHP
理由
PHPで作成されている「EC-Cube」等を利用することが多い為、PHPが有利になります。
Railsでも「Spreee」と呼ばれるgemなどでECサイトを作成する場合もありますが、日本においてほとんどはPHPでしょう。
CMS / オウンドメディア(自社メディア・ブログ)
結論
- PHP
理由
「CMS」とは管理者が簡単にコンテンツを更新できるようにしたサービスのことで、主にブログ等や会社のサイトでWEB担当者が技術的なことに触れずにWEBサイト等を更新できるようにする仕組みです。
手軽に作ることが出来るため、WordPress等を用いてPHPでカスタマイズすることが多いです。ただ、最近では細部まで(特に管理画面やDB構造まで)しっかり作り込むためにRubyのフレームワーク、Ruby on Railsでメディア等も作成している場合もあります。
ただ、現状ではWordPressが優秀なため、まだ先進的な企業でしかRailsは採用されておらず、特別な機能を持たせない限りはPHPの方が有利と言えるでしょう。
SNS系 / マッチング系サービス
結論
- Ruby
理由
マッチング系サービスとは仕事獲得やイベント集客などを行うサービスのことを指します。最近ではPHPとRubyを比べるのであれば、スタートアップ界隈で人気のRuby(Ruby on Rails)の方が有利かと思います。
なお、上記に該当しないもの(業務システムなど)は基本的にRubyの方が有利だと思っています。
その6:在宅・リモートワークで働きたい
プログラミングスキルを習得し、フリーランスエンジニアになり、在宅勤務(リモートワーク)で働きたい、という目的を持った方です。
結論
- Ruby
理由
どういう形態でリモートワークにしていくか、受託開発を行っていく場合どのような企業と出会えるかにもよるのでなんとも言えない部分はあります。
ただ、どちらにおいても「Ruby」の方が有利に働きやすいと考えます。
Rubyを採用している所は少なくともバージョン管理や開発の運用が整っており、比較的新しい技術やアジャイルと呼ばれる短期スパンで小さな開発を繰り返す開発体制など、積極採用する企業(チーム)が多いため、業務委託等で作業する場合もリモートで作業する環境が整っている場合が多いです。
また、Ruby(Ruby on Rails)は自身でWEBサービスを作る場合にも活かせる技術で有るため、業務委託と並行して自身でサービスを育てる等されている方も少なくないです。
もちろんPHPでもリモート開発環境が整っているところは整っていますが、開発体制が旧来から変わっていない常駐メインの現場ではなかなか難しいでしょう。
まとめ
世の中にあるプログラミング言語には、作りたいものによって向き不向きがあります。WEBプログラミングでやりたいことにマッチするものがあれば参考にしてみてください!
また、WEBサービスを作成する為に使用するのはもちろんRubyとPHPだけではありません。様々な言語にそれぞれ得意不得意や流行り廃りが有ります。
何を学習しようか?と迷われた方は、こちらまでお尋ねいただければ幸いです。
関連記事
【期間限定】 人気セミナー動画を無料プレゼント
累計3000名以上受講し、100名以上のフリーランスエンジニアを輩出してきた人気セミナーを期間限定で無料プレゼントしております。
他では受け取れないプログラミング学習に役立つ限定情報も定期的に配信しております。
セミナー動画サンプルはこちら
井上 慎也
最新記事 by 井上 慎也 (全て見る)
- PHPかRuby、勉強するならどっち?意外と知らない目的に合わせて選ぶ重要性 - 2016年2月11日
- 【Ruby on Rails】無料で入門者から中級者になる6ステップ - 2016年2月9日
- 【初心者必見】プログラミング学習を3倍加速させるカンペの作り方 - 2016年2月8日