この記事を読むあなたは、こんなご要望・ご質問をお持ちではないですか?
Rubyの評判がすごい良さそうだから勉強しようと思うんだけど、難しいのかな……?
そんなあなたの疑問に答えます。このページではマンツーマン式のエンジニアスクールを運営する当社のノウハウを活かして
- Rubyとはどんな開発言語なのか
- Rubyでできること・メリット×5つ
- Rubyのデメリット×2つ
- Rubyを学習するおすすめの方法
大きく4つのことをまとめました!これを読めば、Rubyのメリット・魅力と、効率よく勉強する方法までまるごとわかります。
Rubyとは?
Rubyはプログラミング言語の一種で、まつもとひろゆき氏によって開発され、1995年に一般発表されました。すべてがオブジェクト(※1)で柔軟性・汎用性が高い言語であることから、ここ10年くらいで一気に注目を浴びています。
Rubyは宝石の「ルビー」に由来しており、Perl(パール)というプログラミング言語になぞらえ、当時のまつもと氏の会社の同僚の誕生石「ルビー」からとった名前です。
- ※1:オブジェクトとは?
- プログラム言語の「まとまり」のこと。複数の関連性の深いプログラムを1つにまとめます。
Rubyといえば「Ruby on Rails」
そのRubyにもいくつか種類(フレームワーク)が存在しますが、実際に開発で一番よく使われているのはRuby on Railsです。
エンジニア求人で「Rubyエンジニア募集」と書かれている案件は、そのほぼ全てがRuby on Railsのことを指しており、Ruby=Ruby on Railsといっても過言ではありません。
この点については、以下の記事でも詳しく解説していますので併せてお読みください。
Rubyでできること・メリット×5つ
次に、Rubyを使うとどんなことができ、どんなメリットがあるのでしょうか? 具体的には5つのメリットがあり、以下の通りです。
- 汎用性が高い
- 記述がシンプル
- 学習がしやすい
- インタプリタ方式であること
- オブジェクト指向であること
では、Rubyを使用中の方や学習中の方の生の声(Twitterなど)を引用しつつ、順番にご紹介していきます。
①汎用性が高い
Webサイトやサービスの開発に多く使われるRubyですが、それだけではなく、
- ゲーム
- アプリ
- スマホアプリで利用されるAPI
- クローラー
などの開発もでき、さらにMac、Windows、Linux等の色々な環境でも動作するので、非常に汎用性が高いというメリットがあります。
また、記述の仕方も自由で、色々なコードの書き方ができるという点でも「汎用性が高い」と言えます。実際にRubyを使っているエンジニアの方・学習中の方にも、汎用性の高さを指摘する声があります。
ProgateはLv.225になりました。QAでもSQL、Git、Command Lineの基本的なコマンドは使えた方が役に立ちますし、Rubyは覚えやすさと汎用性を兼ね揃えていて自動テストを書く言語としてもいいと思います。その他の言語やフレームワークはお好みで。 pic.twitter.com/BGfH5Fg9pR
— たかやまじー (@takayamag) September 26, 2018
②記述がシンプル
Rubyは文法や書式などの記述がシンプルなのも特徴でありメリットと言えます。実際に、他の開発言語「JavaScript」と比較してみると、以下のツイートにあるように、そのシンプルさは一目瞭然。
コンソールから名前を入力してもらう時の記述の違い
絶対Rubyの方が簡単じゃん。なぜJavaScript…
【JavaScript】
import readlineSync from "readline-sync"
const name = readlineSync.question("名前を入力してください");
【Ruby】
puts "名前を入力してください"
name = gets.chomp— 塚ちゃん@プログラミングできない雑魚 (@takuya_Oh_tsuka) January 31, 2019
こうした文法や書式がシンプルということは、読みやすく、記述する量も少なく、修正する際の手間も少なくなるということです。加えて、開発工数が少なくて済むため、コストの削減にも繋がります。
③学習がしやすい
学習のしやすさも大きなメリットです。先程も書きましたが、Rubyの開発者は日本人のまつもとひろゆき氏です。そのため、言語の原典が日本語でネットで検索して出てくる資料も、日本語のものが多くあります。
さらに、繰り返しになりますが、記述がシンプルなので学習する際にもわかりやすく覚えやすいのです。学習中の方の中にも「サクサク進んだ」等の声が多く見られます。(以下一例です)
https://twitter.com/osirioniku/status/1092968234779693056プログラミング初心者はCとかJavaとかより、絶対にRubyやPython学ぶべき。
swiftも割とわかりやすいけど、本当の初心者にはそんなにおすすめできないなー。
とにかくRubyとかで楽しくさくさく書く感じを覚えるのが大事だと思う。— むらい (@wyvernMurai) October 9, 2016
ちなみに、Rubyは学習教材もわかりやすいものが多いです。おすすめの教材やサイトはこの後に別途ご紹介します。
④インタプリタ方式であること
Rubyはインタプリタ方式のプログラミング言語です。インタプリタ方式とは、書かれたプログラムを1行ずつ機械語に解釈しながら実行していく方式のこと。英語で喋った言葉を、日本語に通訳するイメージに近いものがあります。
インタプリタ方式でプログラミング言語を書けば、それを機械がわかる言葉・記述に変換する必要がありません。そのため記述が簡単で、しかもプログラムを書いたその場で試せるので、エラーも見つけやすいという利点があります。
※以下は関連ツイートです。
@npyama rubyとても簡単。覚えやすい。railsに手を出さなければ…。phpやjsと違って書いて試せるインタプリタ環境があるのがとても良い!
— がぞうX (@tamanobi) March 6, 2016
ちなみに、同じインタプリタ方式の言語としては他にPython、PHP、JavaScript等があります。
⑤オブジェクト指向であること
オブジェクト指向であることもRubyのメリットと言えます。(※2)
- ※2:オブジェクト指向とは?
- オブジェクト指向とは、複数の関連性の深いプログラムを1つの大きなまとまり(=オブジェクト)にして開発が可能な形式のことです。
オブジェクト形式であるRubyは開発効率が良いことに定評があり、
- 大規模なプログラムを書きやすい
- あとから修正を加えるのが楽
- すでに書いたコードを再利用しやすい(他人の書いたコードをコピーして使う等)
といった特長を持ち、開発効率がいいのです。現役エンジニアの方でRubyの開発効率の良さを挙げる方も少なくありません。
JavaScript のように全てが Object であり、 Class ベースのオブジェクト指向言語である Ruby は、開発効率、書きやすさという点では最強じゃないかと思えてきた
— たけ (@ww24) November 22, 2012
技術者としてRubyに依存するのはあまり良くないと思うけど、Rubyは便利なgemやフレームワークが多すぎるので他の言語に移ったときに開発効率がめっちゃ落ちそう。
— Junichi Ito (伊藤淳一) (@jnchito) April 29, 2014
@uokumura 実測ですが、同じフレームワーク上でCOBOLとRubyでは、Rubyの方が5倍くらい開発効率が良かったです。同じ程度の言語習熟度で。
— おごちゃん™ / タダのエンジニア (@ogochan) September 9, 2008
Rubyのデメリット×2つ
逆にデメリットもあります。Rubyのデメリットは全部で2つあり、
- 実行速度が遅い
- 個人によって記述に差が出てしまう
です。こちらも順番にご紹介していきます。
①実行速度が遅い
Rubyは実行速度(※3)が遅いと言われることがあります。プログラミング言語には、インタプリタ方式とコンパイル方式の2つがあり、それぞれ
- コンパイル方式:プログラムを機械語に翻訳してからプログラムを実行する
- インタプリタ方式:プログラムを1行ずつ機械語に翻訳しながら実行する
という形式の言語です。そのため、実行速度でいえばRuby等のインタプリタ方式言語は、コンパイル方式に比べてどうしても遅くなってしまうという欠点があります。※言語別の実行速度で、Rubyが最も遅いと指摘する声もあります。
https://twitter.com/neko_levi/status/1056856215454539776ただ、コンパイル方式は記述が複雑でコードを入力したり、学習するのも大変。プログラミング初心者が一から学習するという意味では、インタプリタ方式であるRubyは最適と言えます。
- ※3:実行速度とは?
- 機械がプログラムを処理し、その命令を実行できるスピードのこと。処理速度があがるほど、効率的に開発することができます。
②個人によって記述に差が出てしまう
先程、Rubyは「記述の仕方も自由で、色々なコードの書き方ができる」と書きました。しかしこれは、裏を返せば個人によって記述の仕方に差が出てしまうということでもあります。
そのため、他人の書いたコードが理解できないこともよくあり、これがデメリットとも言えます。
※以下は実際にこれを体験した方の声です。
https://twitter.com/wooootack/status/1090983733103013890とはいえ、事前に記述の仕方を統一すれば解消は可能ですし、すでに書かれているコードを楽に再利用できるという利点もあるので、あまり問題にはならないでしょう。
Ruby学習におすすめの教材・サイトまとめ
記述がシンプルで学習もしやすいRuby。ですが、プログラミング初心者が独学で身につけるには簡単ではありません。そこでここでは、初心者がRubyの学習をするのにおすすめの教材とサイトをご紹介します。
Rubyの学習におすすめの教材
まず教材は、以下の4冊がおすすめです。
3ステップでしっかり学ぶ Ruby入門
初めてRubyを学ぶ初心者向けの本で、用語などの説明も丁寧で分かりやすく、初めての方でも抵抗なく学習できる本です。
- 著者:WINGSプロジェクト 竹馬力(著),山田祥寛(監修)
- 価格(税別):¥2,380
- 出版日:2018/01
作りながら学ぶRuby入門 第2版
こちらは実際に手を動かして、作りながら学べる本になっています。「プログラミング学習」と聞くと、まずは文法や記述を先に覚える必要がある…と思いがちですが、そうではない学習法を提案してくれる1冊です。
- 著者:久保秋 真(著)
- 価格(税別):¥2,600
- 出版日:2012/11
プログラミング学習シリーズ Ruby
この本は「Rubyはもちろん、プログラミング自体がわからない!」という方向けの本です。プログラミング特有の用語などの解説も丁寧ですので、プログラミング初心者の方にやさしい内容になっています。
- 著者:宇野るいも(著)
- 価格(税別):¥1,880
- 出版日:2009/01
たのしい開発 スタートアップRuby
この本ではRubyの良い点、悪い点、背景などの解説(ここまで書いてきたような内容)も解説されています。開発経験者や多少Rubyをご存知の方には物足りないかもしれませんが、初心者の方にはこちらもおすすめです。
- 著者:大場寧子(監修)、大場光一郎(著)、五十嵐邦明(著)、櫻井達生(著)
- 価格(税別):¥2,480
- 出版日:2012/8
まとめ
というわけで、初心者におすすめのRuby教材は上記4冊です。ちなみに中級者・上級者の方向けのおすすめ教材もありますので、気になる方以下の記事も読んでみてください。
本が苦手な方は学習サイトがおすすめ
「本を読むのが苦手!」という方は、オンラインで学べる学習サイトを使ってみましょう。初心者の方にもやさしいおすすめサイトは以下の4つです。
具体的にどこがおすすめなのか?使っている人の声などは、以下の記事にまとまっています。もっと詳しく見て、比較してみたい方はお読みください。
Rubyを効率よく学習するには?
Rubyの学習に教材・サイトを利用するのは有効な手段ですが、もっと大事なのは学習法です。いくら優れた教材・使いやすいサイトがあっても、学習法次第で上達スピードは違います。その学習法というのが、
- 心構えを確認すること
- 作業環境をきちんと構築すること
- デバックの方法を知ること
以上の3つです。
詳しくは「【入門者必見】Rubyを効率よく学習するための3つの勉強方法」で現役のRubyエンジニアが詳しく解説しています。こちらも合わせてさらっと読んでみましょう。
「自分で学習が苦手…」という方はマンツーマンレッスンを
それでも、自分で学習するのが苦手という方はいらっしゃることでしょう。
- 自宅でやってるとついついサボってしまう
- わからないことは、詳しい人にすぐに質問したい
- 本を読んだ経験もあるが、やっぱり自分には合わない…
こんなお悩みをお持ちの方は、当社の「マンツーマンのプログラミング学習」をおすすめします。
現在まで16,000名以上を指導・現役生500名が学習している内容を無料で体験していただけます。カレンダーの空いている日から選ぶだけで簡単に予約可能ですので、ぜひ一度体験してみてください。侍エンジニア
無料カウンセリングの詳細はこちら
まとめ
以上、この記事の内容をざっと振り返ると、
- Rubyは汎用性が高い、記述がシンプル、学習しやすい等、5つのメリットがある
- 反面、実行速度や記述法に欠点があるが、十分に解消可能で、それを上回るメリットがある
- Rubyを学習するには、本・サイトなど初心者にもおすすめの学習法がいくつもある
- 早く確実に覚えるには「マンツーマンのプログラミング学習」もおすすめ(無料です)
以上のようになります。今話題のプログラム言語「Ruby」。マスターすれば転職活動や収入UPに有利にはたらきますので、ぜひあなたもマスターしてみてください!