質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

10回答

17207閲覧

【プログラミング初心者】PHPとRuby on Rails、どちらをがっつり勉強すべきでしょうか。

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

2クリップ

投稿2015/08/20 12:42

大学生で、プログラミング初心者です。
同じような質問を見つけることができなかったため、質問させていただきます。

・背景

HTMLとCSS、JQueryや簡単なJavascriptを学んだ後、WebサイトだけでなくWebサービスやWebアプリを開発したいと思い、知り合いのエンジニアの人に教えてもらいながらPHPを少し学びました。

開発環境はLAMPで、CakePHPを使って簡単な掲示板を作ったり、APIを使って簡単なサービスを作るとこまでやりました。受身の勉強姿勢も悪かったと思うのですが、正直なところ全く身についてないのが現状です。(分かるけどできない、もはや分かっていないという感じです。)

性格上、本やweb上の無料サービスで学習するのは続かないと思うので、オンラインの講座やスクールに通ってがっつり勉強したいと思っています。

・目的
webサービスを開発できるようになる
新卒としてITベンチャーの企業に就活できるぐらいの力を身に付けたい

PHPやRuby on Railsのメリットデメリットをふまえた上で、教えていただけると助かります。厳しい意見もお待ちしております。

最後まで読んでいただきありがとうございます。回答宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答10

0

Webサービスは一旦置いて、プログラミングの基礎を学ぶことをお勧めします。

まず、Webサービスというのは単純ではありません。本当にちゃんとしたWebサービスを作ろうと思うのであれば、学んでおかなければならないことがたくさんあります。Web自体の基本的な仕組み、HTTPとは何か、インターネットやTCP/IPとは何か、なぜブラウザでYahooが見えるのかを概要だけでも知っておく必要があります。また、作成の段階でも、そのプログラミング言語だけではなく、HTML/CSS/JavaScriptといったクライアントサイドの言語、その言語を動かすためのApache HTTP Severと言った環境、データを保存するためのデータベースに関する知識など、知っておく必要なことが多すぎます。そこに、CakePHPやRailsの使い方とかまで含めると何をしているのか分からなくなって当然だと思います。

なので、Webサービスを作るのは一旦置いてください。一つ一つの知識をためてからでも遅くありません。PHPならWebサービスが簡単にできるというのはそういった知識がある人の話です。Ruby on RailsならMVCなWebサービスが速攻でできあがるというのもRubyとかWebサービスがなんたるかを知っている人の話です。そういったすぐできるみたいな謳い文句に騙されてはいけません。

ただ、質問者さんはある程度Webについて学んではいますので、いきなりWebサービスでもいいのでは無いかと思うかも知れませんが、ちょっと待ってください。それは、基本編を飛ばしていきなり応用編をやろうとしているって事です。ましてやCakePHPやRailsなどのフレームワークの利用なんて応用編のそのまた応用編です。応用問題の解き方から学んでも、それではなかなか身に付かない物です。なので、基本編から学んでいく方が、つまり、最初に基礎を身につけることの方が遠回りに見えても近道になると思います。

では、PHPとRubyのどちらがいいのか?はたまた他の言語をすべきか?ということですが、ここら辺は人によってかなり意見が分かれます。下記は私の個人的な偏見に基づく意見ですので、参考程度にしてください。

最初のプログラミング言語として、PHPはお勧めしません。理由は三つです。

  1. PHPはWebサービスを作る事には大変優れていますが、それ以外は他言語に比べて得意ではありません。
  2. PHPを学んだ人が他言語をするのに苦労すると聞きますが、逆はすぐにできると聞きます。(個人的な偏見が混ざっています)
  3. PHPの書物は悪書が多すぎて、下手に書物を買うと役立たずで終わります。(もちろん、良書もあります)

ですので、私としてはRubyをお勧めします。他には、Python、Scala、C#あたりがお勧めです。余裕があれば、教養としてのCも学んでおくと、ローレベルのメモリ操作について学ぶことができ、後々役に立つかと思います。

以上ですが、まとめますと、Webサービスを作るのでは無く、まずはプログラミング言語の普通の入門サイトや本などで基礎を学んで、プログラミングとは何かをつかめるようにしてからがいいのでは無いでしょうか?講座等に行くとしても、いきなり応用では無く、基礎を学んでからでも遅くはないと思います。

投稿2015/08/20 15:06

raccy

総合スコア21733

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/08/20 15:31

回答いただき誠にありがとうございます。 raccyさんの意見は間違いないと思います。今の私は基礎ができてない上に、いきなりフレームワークやら掲示板の作り方、データベースなどを叩き込まれて"全然分からない"という現状に陥っています。 基礎から出直すことも考えたいと思います。 またPHPかRubyかについてのご意見もありがとうございます。参考にさせていただきます。プログラミングとは何かから一旦やり直した方がいい気がします、、、
guest

0

質問文の文脈でRuby(on Rails)が出てくる理由が分からなかったので、私の推測が入りますが、
もしRubyに乗り換えたら楽になるかといえば、それはないと思います。
PHPの商業サービスもたくさんあるわけだから、「PHPだからできない」なんてことはないです。

むしろ学び直しで振り出しに戻って、今より大変になるかもしれません。
導入のハードルが一番低いのがPHPなので、もっと分からなくなるかも。

私自身はPHPもRubyも両方使っていて、最初からオブジェクト指向で設計されたRubyのほうが
オブジェクト指向できれいに書きやすいですが、「PHPだと書けない」とかはないです。

一般的に、オブジェクト指向ができる人であれば、PHPでもRubyでもできますが、
言語が自動でやってくれるわけではないので、逆にできない人はどの言語でもできません。

じつは私自身、言語論は好きですし、使う言語の選択は重要だと思っています。
でも、使う言語で差が出てくるのは、基礎を積み上げてからの話だと思います。

質問者様に必要なのはPHPかRubyかというより、基礎固めだと思います。

ただ基礎を学ぶときに、PHPはそれを使う人の需要のため、
「すぐ動かす」ための本やサイトが多いので、基礎を学びにくい環境はあるかもしれません。

CやJavaだと、設計とかアルゴリズム、リファクタリングとか、
基本から学んでいくための本が豊富です。

これは言語の仕様や優劣みたいなことよりも、
言語の歴史があるとか、学校で教えるからとか、試験で出るからとか、
そういった事情があるからだと思います。

将来的に仕事としてプログラミングを書くことを考えておられるなら、
一時的に遠回りになりますが、CやJavaで基礎を学ぶのも良いと思います。

基礎を学ぶのはWebサービスを作りながらで構いません。

というのも、基礎ばかりやっても成果が見えなくて退屈でしょうし、
といって作る一方でも、けっきょく分からなくて詰まるでしょう。

並行して進めて「あっ、これ本でやったところだ! できるぞ!」
と相互作用になっている状態がモチベを保ちやすいと思います。

投稿2015/08/20 17:47

LLman

総合スコア5592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/08/25 18:11

回答ありがとうございます。お返事遅くなり申し訳ありません。 Rubyを比較に出したのは、プログラミングスクールやオンライン講座に通おうと思ってて探したところRuby on Railsを学ぶところが多かったためです。 基礎固め、納得すぎます。私は基礎ができてないと思いますし、そこができてなければ何を学ぼうとしても無意味ですよね。 CやJavaですか、少し考えてみたいと思います!
guest

0

2015年4月号の日経ソフトウェアの『特集1・15大言語入門』という記事の冒頭に記載されていたフローチャートがありました。あなたが選んだプログラミング言語の経路には3つの分岐点があります。

① Webサーバーに興味あり
② データベースを手軽に使いたい
③ 日本製の方が好き

選択結果:お薦めプログラミング言語

PHPのケース ①YES②YES
Pythonのケース ①YES②NO③NO
Rubyのケース ①YES②NO③YES

選択結果により、プログラミング言語が定まり、解説記事に誘導する構成になっていました。PHP、Python、Rubyの見出し部分は、以下の通りです。

PHP

普及度:5点
学びやすさ:4点
先進性:2点
得意な分野:Webサービス開発
見出し:初心者でもWeb開発を「すぐ」に始められる。

Python

普及度:3点
学びやすさ:3点
先進性:4点
得意な分野:コマンドライン、GUI、Webサービス
見出し:字下げに意味がある個性派。Webサーバーを簡単に作れる。

Ruby

普及度:3点
学びやすさ:4点
先進性:4点
得意な分野:Webアプリケーションフレームワークを使ったWeb開発
見出し:書いてすぐに試せるお手軽言語。直観的で柔軟な記述が可能

日経ソフトウェアの抜粋は上述の通りです。以下は私のコメントです。

※ 最近、Web広告でRoRの記事を見掛けますが、不定期で私に配信されている2015年の開発案件では見掛けた記憶がありません。PHPの開発案件は増えているように感じます。しかしながら、RoR開発案件が大量に流通しないとは誰も断言出来ません。私は、無数のインターネットのコンテンツで調査するより、日経ソフトウェアの記事の方が時宜を得て、内容も纏まっていて、信用しています。

※ IT関連は進化が激しいので、最近、日経ソフトウェアは、帯封が無くなったので、本屋で立ち読みして、必要な情報が掲載されていたら、ご購入してみては如何でしょうか。毎月24日に発売されています。都内の大型書店でしたら、前日の23日から雑誌コーナーに並んでいるかも知れません。
(日経ソフトウェアは現在進行形のIT情報が掲載されていて、IT関係者の意思疎通に役立ちます。)

※ 一般的に拒絶反応を起こさなければ、PHPと相性が良かったと言えます。長年使って、ようやく、しっくり使えるのがプログラミング言語なので。「4ヶ月の学習でプロになれる」というキャッチフレーズのスクールもありますが、決して、そんなことはありません。システム開発は毎回毎回異なるもので流用出来そうで出来ないものです。逆にそんなシステムは初回は新人にやらせて貰えるかも知れませんが、2回目からは開発が容易なシステム開発を担当する事は稀なのでは無いでしょうか!?毎回毎回のプロジェクトは一からの勉強だと思った方が良い。スクールで教えているのは答えのある授業です。エンジニアライフとしては、実践を継続している技術だけを経験としてアピール出来るものです。専門書の活用は徐々に廃れて行きますが、職場によっては、インターネットでググって開発する必要も出てきます。このteratailを活用するのは良いアイデアです。

PHPやJAVAは開発チームでWeb開発するのに実用的といえますが、全体を見回して、挙動を確認しながら進めるシステムには、RubyやPython等の軽量なプログラミング言語が一番です。PythonはDeep Learning(人工知能)の研究開発にも利用されていますので、注目しています。

以上

投稿2015/08/20 15:56

編集2015/08/20 16:25
t2oando

総合スコア55

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/08/25 18:14

回答頂いたのに返信遅くなり申し訳ありません。 様々な視点から考えていただきありがとうございます。 きちんと拝見させていただきます!
guest

0

まず、PHPとRailsのどちらがよいかということですが、すでにPHP経験済みのようなのでPHPがよいのではないでしょうか。
ただすでにCakePHPというMVCフレームワークを学んでいるということなので、初めてRailsを学ぶよりはぐっと楽にRailsも学ぶことができるはずなので、Railsを学ぶもの悪くないでしょう。

それはそうと

webサービスを開発できるようになる
新卒としてITベンチャーの企業に就活できるぐらいの力を身に付けたい

とのことですが、大学生とのことなので個人的にはプログラマーとしてアルバイトをすることをオススメします。
個人で学ぶと、次は何をしようかと悩んだり、あるいは面倒になってサボったりしてしまいますが、仕事で請け負うとそうではないので強制的に学ぶことができます。

投稿2015/08/20 13:53

編集2015/08/20 13:55
hello-world

総合スコア1342

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/08/20 14:11

丁寧に返信していただきありがとうございます。 プログラマーとしてアルバイトのことですが、私の性格上強制的に学べるのはとてもいいなと思いました。やはり企業でのアルバイトの方が技術が身につくのでしょうか。
hello-world

2015/08/20 14:15

技術は「かけた時間」に比例して身に付くので、企業で働くかどうかよりもどの方法が一番時間を費やすだろうかを考えるのがよいと思います。 あと、ベンチャーすぎると雑用もあるかもしれないのでそこはご注意ください (要はプログラミングしてる時間は大したことなかったというオチ)
退会済みユーザー

退会済みユーザー

2015/08/25 18:15

「かけた時間」ですね。参考にさせていただきます。 ベンチャーの件もわざわざありがとうございます!
guest

0

今のあなたに必要なのは「自作のPHPでWebサービスを作る事」です。言い換えれば今のあなたに必要なのは勉強ではなく、「1人でWebサービスを作った」成功体験です。CakePHPをひと通り触ったのであれば、Railsに逃げてはダメです。

僕は18歳の時にPHPを使ったプリクラシステムを構築したことがあります。文化祭の出し物のため、1ヶ月講義をサボりながら寮にこもって作ってました。PHP3徹底入門という本とにらめっこしながら、「PostgreSQLにデータを格納しつつ、デジカメで撮った写真とLayerタグで合成する」だけのシステムです。PHP3徹底入門という本にはアルバム管理システムのサンプルが付いていたので、それをベースにしましたが、最終的にはあんまりアルバム管理部分は残ってなかったと思います。(不要なので)

掲示板が作れたり、APIを作成できたりという部分を習ったのであれば、掲示板をもう少し何とかしたらLINEみたいなシステム作れませんか?LINEみたいな見た目にするなら、吹き出しはどうしたらいいのか?とか色々知らないとできないことが出てくると思います。それを勉強するのが近道です。それに、自分のシステムができてくると、「これも作りたい!」というのがたくさん出てきて楽しいですよ。

以上、おっさんのひとりごとでした。時間を十分に確保できるのは大学にいる間が一番確保しやすいのではないでしょうか?がんばってください。

投稿2015/08/20 16:36

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/08/25 18:13

わかりやすい回答ありがとうございます。 そうですよね。やっぱり何か作らなければ頭や体に入ってこないというのはあると思います。基礎固めをしつつ、自分で何か一つのサービスを作れればと思います。 大学にいる時間はまだまだあるので、今のうちにきちんと習得したいと思います!おっさんみたいにパキパキできるよう頑張ります!
guest

0

個人的な意見としてはcakePHPだろうがrailsだろうが
必要は発明の母といいますが
作りたいものがあれば、自然と習得すると思います。
・目的
webサービスを開発できるようになる
新卒としてITベンチャーの企業に就活できるぐらいの力を身に付けたい

とありますが、これを、こういうサービスが作りたい!
に変えてモチベーションを高めることが何より重要だと思います。

余談ですが(むしろ本題)私はrails推しです。
いくつかフレームワークを使ってきましたが。
かなり使いやすいです。
簡単に、セキュリティも含めた、本格的なものが作れ
どこまでもカスタマイズできるそんなイメージです。
他のフレームワークに戻れないのが玉に瑕ですが
ここにいいたいことがまとまっていたので載せておきますね。
頑張ってください。

投稿2016/12/26 05:32

moke

総合スコア2241

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

個人的にはPHPは覚えるのが簡単。ruby on railsはコマンドで操作とかあるから慣れてないと途中で挫折すると思う。

webアプリケーションをつくるならデータベースを操作するSQL言語は必須です。

いきなりフレームワークで作るのはハードルが高いから、PHPで手続き型を覚えたほうがさくっとできて

理解もできるし楽しいですよ。好きじゃないとこの仕事続かないと思うし。

投稿2016/12/25 12:14

selafu-t

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ruby on railsではコマンドを一言入力するだけで様々なデータの追加、削除、投稿フォームを自動で組んでくれるメリットがあります。その後は細かなデータの詳細機能を組むのは自身が行うことですが、きちんとデータを踏まえ、思考出来ること前提のweb開発言語です

投稿2016/09/09 00:26

VerfolgungEin

総合スコア147

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

HTMLとCSS、JQueryや簡単なJavascriptを学んだ後、WebサイトだけでなくWebサービスやWebアプリを開発したいなら、オススメは、「Meteor」です。

新しい言語やフレームワーク、開発環境を勉強するのは時間がかかります。MeteorならJavaScriptとHTML+CSSだけWebアプリケーションで記述できます。まず、下記の記事を読んでみて下さい。これまで勉強した知識でも読めると思います。

http://gihyo.jp/dev/serial/01/meteor

投稿2015/08/27 11:19

szk360

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

>PHPやRuby on Railsのメリットデメリット
とのことですが、比較するならば
cakePHP や Ruby on Rails となるでしょう。
(cakePHP を使った経験がおありならなおさら)

私は、業務でcakePHP 1.3, 2.7, 3.0 と使いつつ、
Ruby on Railsも次期SYSTEMの視野に入れているのですが
cakePHPがバージョンを上げるにつれ Rails に近づいていっている
気がしています。

どちらにしろ、言語というよりは、MVCフレームワークとしての
cakePHP または Rails をご自分のものにされることを主眼に置かれては
いかがでしょうか?

現在お使いの、cakePHPを使いこなされれば、Rails を使用するにも
スムーズには入れると思います。
**言語としては、PHPを習得されれば ruby の習得も何ということもありません。
この場合の大きな障壁は Ruby on Rails を稼働させる Server の準備でしょう
まあ、heroku で動かすことを前提にされているなら問題ないですが

それよりも、大事なことは SQL の習熟だと考えます。
「習得」ではなく「習熟」の Level です。

MVC フレームワークを使って DB操作をするのではなく、
M=Model がDBにどのような SQL を発行しているか見通しながら、
例えば $this->Model->save();等を書けるようになってほしいです。

MVCフレームワークを使うから、SQLの学習は後回しでは MVCの十分な理解も
難しいと考えています。

投稿2015/08/26 06:32

m.b.cho

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問