(※この記事は2017年5月11日に公開したものを再編集したものです。(2018年6月15日))
近年、需要が高まっているプログラミング言語「Ruby」は、Webシステム、Webアプリケーション開発において目にすることが多くなっています。そこで、これから独学やスクールで学習し、Rubyエンジニアを目指す初心者のためのRuby入門として、基礎知識や無料学習サイト、開発環境の構築方法など、ゼロから徹底解説致します。
目次
1.1 そもそもRubyとはどんな言語?
1.1.1 プログラミング言語ランキングでRubyは8位
1.2 人気の理由はWebフレームワーク「Ruby on Rails」
1.2.1 Ruby初心者がRuby on Railsで開発する上での注意点
1.3 Rubyプログラムのメリット
1.4 Rubyプログラムのデメリット
1.5 Rubyでどんな開発ができる?
2.1 そもそも開発環境とは
2.2 統合開発環境(IDE)とは
2.3 クラウド環境サービス「Cloud9」とは
2.4 Mac,Windows,LinuxなどのOSごと構築方法の違い
3.1 Ruby学習スタイルのポイント
3.2 初心者向け無料プログラミング学習サービス
1. Rubyの入門
1.1 そもそもRubyとはどんな言語?
Ruby言語とは、オブジェクト指向のプログラミング言語です。オブジェクト指向とは、クラスの中でメソッド定義をし、インスタンス化してオブジェクトを呼び出す考え方です。といってもイメージが湧かないかもしれませんので、カレー料理に例えてみましょう。 レシピがクラスです。カレーを作るためには、材料を炒め、それを鍋で煮ます。この実際に行う料理がメソッドになります。そして、最後に出来上がったカレーがオブジェクトです。今や世界中で使われている言語ですが、そもそもの生みの親は日本人であるまつもとゆきひろ氏。オープンソースなので、誰でも使用することができます。コードがシンプルで読みやすいことが大きな特徴なので、初心者エンジニアが学びやすい言語と言われています。
1.1.1 プログラミング言語ランキングでRubyは8位
トップクラスのプログラミング言語や、テクノロジー業界の動向をカバーする米国のアナリスト企業「RedMonk」による2018年3月の プログラミング言語ランキングにて、Rubyは8位という結果が出ています。
1. JavaScript
2. Java
3. Python
4. PHP
5. C#
6. C++
7. CSS
8. Ruby
9. C
10. Objective-C
1.2 人気の理由はWebフレームワーク「Ruby on Rails」
Rubyがなぜ世界中のエンジニアから慕われているか、その鍵はWebフレームワーク「Ruby on Rails」にあります。Webフレームワークを簡単に説明すると、システム開発する上で、プログラミングを効率的に進められるよう、予め予想されるプログラムが備わっているツールです。開発したいアプリケーションや、システムのフレームワークが何種類も存在しているので、用途に合わせて選ぶことで、1からプログラミングをする必要がなくなります。その中で、「Ruby on Rails」はRuby専用のWebフレームワークです。こちらもRuby同様オープンソースなため、導入コストゼロでスタート出来ることが、多くのエンジニアから支持される理由の一つと考えられます。
1.2.1 Ruby初心者がRuby on Railsで開発する上での注意点
Ruby on Railsはエンジニアの強い味方となる優秀なフレームワークです。しかし、初心者がRuby on Railsを使う上で注意しなくてはならない点があります。それは、フレームワーク化されている部分も、フレームワーク任せにすることなく、あえてプログラムを読解し、理解する努力を怠ってはならないという点です。
様々な機能がライブラリー化されていることで、自分でコードを書かなくても、自動で処理する機能があります。フレーム部分に関してエンジニアが1からプログラミングする必要がありません。それによって引き起こす問題は、エンジニアがプログラムを部分的にしか理解出来ない可能性が出てくることです。とは言っても、Ruby on Railsは生産性が高く、効率的に開発でき、そのメリットは計り知れません。 100%完璧に理解する必要はありませんが、「どうして今動作が成功したのだろう」といった疑問は常に解消しながら開発を進めるようにすることでよりRubyへの理解が深まります。
1.3 Rubyプログラムのメリット
(1)シンプルで書きやすい
「エンジニアが楽しくプログラミングすることができる」設計思想であることから、シンプルで書きやすい文法になっています。また、Rubyには変数の静的型付けがありません。よって、記述量が他の言語に比べて少なくて済む点から、エンジニア初心者が学習しやすいメリットがあります。
「Rubyは純粋に楽しみのために設計され、言語を作る人、使う人、学ぶ人すべてが楽しめることを目的としています。しかし、ただ単に楽しいだけではありません。Rubyは実用性も十分です。実用性がなければ楽しめないではありませんか」 引用元:Rubyプログラミング入門/原 信一郎(著者)・まつもと ゆきひろ(監修)
(2)徹底したメンテナンスポリシー
Ruby on Railsは徹底したメンテナンスポリシーがあり、次の4つのサポートに分かれています。
1. 新機能
2. バグ修正
3. セキュリティ上の問題
4. 重大なセキュリティの問題
このポリシーに従い、高い頻度でバージョンアップされるため、プログラムの脆弱性の克服も早いことがメリットとして挙げられます。
(3)他の言語からの乗り換えが比較的容易である
Rubyは他のWeb系プログラミング言語の良いところを取り入れています。構文の書き方や、文字列、動的型付けの扱いにも他の言語と共通点が見られます。そのため、既にWeb系他言語で開発されたWEBサービスは、Rubyに乗り換えやすいと考えられています。
(4)Ruby on Railsを使用することで開発工数が減る
Ruby on Railsを使用しての開発では、プログラムを記述しながらの動作検証が可能です。データベースも別途SQLを利用せずに、直接操作ができます。また、Railsのルールを意味する「規約」を設けることでWebアプリケーション開発を単純し、コードを簡潔に短くすることができます。これらの理由からプログラミング工数が減り、かつ生産性も上がります。
(5)日本語で書かれた情報が充実している
日本人が考案したことがベースにあるため、海外で考案された言語に比べて日本語で解説されている情報が多くあります。エンジニアが開発で何か問題が発生した際に、日本語で説明されているコンテンツを収集しやすく、問題解決が他言語に比べて早い傾向にあると言われています。
1.4 Rubyプログラムのデメリット
(1)実行速度が遅い
Ruby専用のフレームワークRuby on Railsは他のWEBフレームワークと比べて遅いと言われています。その理由は次のように考えられています。
・ 静的型変数がないため、コンパイル時に最適化が効きにくい
・ 関数を使用せず、すべてメソッド定義である
・ クラスのメソッドもオープンクラスであるため、コンパイル時に直接実行されない
(2)自由度の高さが故にプロジェクトチーム内での管理が難しい
Rubyのメリットに「構文の自由度の高さ」があります。しかしプロジェクトによっては、メンバー内コードの統一や共有が計りづらくなるといったデメリットに変貌することがあります。
1.5 Rubyでどんな開発ができる?
Rubyはその万能さから、様々な開発で採用されています。日常的に使用するスマホアプリや、WEBサービスも、Rubyで作られているものがありますので、一部ご紹介します。
・ 会員機能付きサイト
・ SNSサイト
・ ECサイト
・ クラウド型会計ソフト
・ スマートフォンゲーム
・ 求人マッチングサイト
・ 会社機関システム
・ レシピ投稿サイト
・ 旅行検索サイト
・ ニュースサイト
2. 初心者におすすめのRuby開発環境
2.1 そもそも開発環境とは?
Rubyに限らず、開発をする場合は、プログラミングをするためのPC環境を準備しなくてはなりません。それが「開発環境」です。ただ、この開発環境の構築は決して簡単な作業ではありません。そのため、開発環境構築で挫折したくない、その手間を省きたいという初心者の方は、クラウド環境を利用するという選択肢もあります。
2.2 統合開発環境(IDE)とは
統合開発環境(IDE)とは、開発に必要な様々ツールが整った状態で構築されている環境のことです。IDEを利用することで、ご自身で開発環境を構築する手間を省くことができます。
2.3 クラウド環境サービス「Cloud9」とは
「Cloud9」は、Ruby初心者が利用しやすいクラウド環境サービスです。今すぐプログラミングの勉強がしたい、誰かと一緒にWEBアプリやサービスを開発したいエンジニアの方に向いています。 クラウド上での利用になるため、インターネット接続環境であることが利用必須条件となります。
- (参考出典:AWS Cloud9)
2.4 Mac,Windows,LinuxなどのOSごと構築方法の違い
Cloud9のような統合開発環境を利用せず、ローカルで開発環境を構築したい場合は、OSによって方法が異なります。
(1)Windowsへのインストール
Windowsでは「RubyInstaller」というインストールツールが使えます。ただ、Windowsの場合は、次の2点を事前に確認し、ご自身のマシーンに合ったツールを選択する必要があります。
・ WindowsのOSバージョン
・ PCの性能(34bit版・64bit版)
(2)Macへのインストール
Mac OSXへのインストールは、次のサードパーティパッケージ管理ツールが使えます。
・ rbenv
・ RVM
(3)Linux/Unixへのインストール
Linux/Unixでは、次のサードパーティパッケージ管理ツールが使えます。
・ rbenv
・ RVM
・ そのシステムが持つパッケージ管理ツール
3. Rubyプログラミング初心者向け学習方法紹介
「プログラミングが楽しめる言語」を最重要視しているRubyは、シンプルで読み書きしやすい構文であることからプログラミング初心者が入門として学習しやすい言語です。その親しみやすさから、近年、小中高生向けのプログラミング講座でもRubyが多く採用されています。
3.1 Ruby学習スタイルのポイント
ではプログラミング初心者の方がRubyを勉強するにはどんなスタイルで学習を進めていったら良いでしょうか。まずは、とにかくプログラミングをして何かアプリケーションを作りたいという気持ちを抑え、地道な学習プロセスを挫折なく続けることがポイントとなります。
(1)Ruby/Ruby on Railsの書籍を活用する
まずは、基本を学ぶために書籍を読んでみましょう。いきなり文章のみで内容を100%理解しなくても大丈夫です。Rubyの世界を書籍から感じ取ることで、次の学習ステップへの楽しみが生まれます。一通り書籍に目を通したら、まずは書籍に記載されているコードを真似してテキストに記述します。実際に自分で記述してプログラミングが動いている成功体験を持つことが、楽しくプログラミグ学習を続ける大きなポイントです。
(2)プログラミングスクールに通う
過去に書籍による独学で挫折した経験があることや、そもそも書籍から読み取る学習が好きではない、という方にはプログラミングスクールに通うという選択肢もあります。スクールに通うことで、独学ではなく、先生や他の生徒がいることで学習モチベーションを維持しやすい環境が作りやすいです。 スクールには、グループレッスンや個人レッスン、オンラインレッスンなど学習形式が色々ありますので、自分に合ったスクールを見つけて勉強を進めてみてください。
(3)プログラミング学習Webサービスを活用する
Ruby入門用の学習Webサービスを活用すれば、自宅でチュートリアル学習が可能です。パソコン1台あれば、好きな時間に好きな場所で学習を進めることが出来ます。
3.2 初心者向け無料プログラミング学習サービス
ここでは、実際にRuby初心者が入門から学べる無料プログラミング学習サービスをご紹介します。インストールの必要がなく、オンライン上で学習できることで、気軽にRuby入門ができます。今回は学習しやすいよう日本語対応されているサービスをご紹介します。
(1)Progate
無料から始められるプログラミング学習サイトです。 初心者が学びやすいように、イラスト中心のスライド形式で自分のペースで勉強を進めることができます。また分からない箇所が復習しやすいのも特徴です。実際にプログラムを書きながら学習するので、実践的な力を身に付けます。
(2)ドットインストール
日本最大級の動画を用いた初心者向け学習サイトです。1つの動画が3分以内で構成されているので、手軽にプログラミングが学べます。無料体験レッスンも用意されているので、まずは体験からスタートし、学習方法が自分に合っているかを確認することが出来ます。
(3)ミニツク
Rubyに特化した学習サイトです。Rubyの開発者であるまつもとゆきひろ氏による分かりやすく解説する動画コンテンツがあります。初心者向けに作られていますが、自分のレベルに応じたコースが選べます。学習の理解度は演習問題で確認ができます。
(4)CODEPREP
実践型のプログラミング学習サービスです。 穴埋め方式ドリル学習を採用しており、実際に手を動かしながら勉強をします。また、サイト内にはディスカッションボードが用意されています。質問したいこと、分からないことを、学習者同士で解決することで、楽しく勉強が進められます。
関連記事:
【初心者向け】Rubyの学習サイト10選
関連記事:
【Ruby】初心者におすすめの入門書
4. Rubyプログラミング学習に向いている人とは
Ruby学習に向いている人とはどんなタイプでしょうか。「エンジニアが楽しくプログラミングすることができる」設計思想に基づくRubyは、多くのエンジニアを目指す方に向いていると言えるかもしれません。その中でも、次のような気持ちがある方はRubyプログラミング学習に向いています。
4.1 使用する言語にこだわらない
とにかくプログラミングしたい!言語にはこだわらない!という方にRubyは向いています。なぜなら、Rubyの開発者であるまつもとゆきひろ氏は、「Enjoy programing」を再重要としてこの言語を生み出しました。つまり、プログラミングが楽しめる言語です。初心者であれば、学習することをストレスと感じることなく楽しめることは、プログラム技術を習得する上でも大きなメリットだと言えます。
4.2 WEBアプリケーションを作りたい
RubyはWEB系アプリケーション開発案件で多く用いられています。需要が高まっているWEBアプリ開発に携わりたいと考えている方はRubyプログラミングを学習することでキャリアを切り開くチャンスが高まります。国内で代表的なRubyを用いたWEBサービスをいくつかご紹介します。
【国内例】
・ 楽天
・ クックパッド
・ Crowdworks
・ 食べログ
・ Wantedly
【海外例】
・ Airbnb
・ Hulu
4.3 問題解決が得意
Webプログラミングをする上で、そのプロセスで起きる問題発生は避けて通れません。よって、問題を発見すると解決したくてワクワクするタイプの方はRubyプログラミングに向いています。問題解決をするためには、合わせてリサーチ能力も必要とされます。このスキルを合わせ持つことで、解決スピードが上がります。
5. Rubyの資格試験「Ruby技術者認定試験制度」とは
これは、Rubyアソシエーションが実施する試験で、Rubyを使ってシステム開発、設計、運用をするエンジニアや、Rubyでシステム提案するシステムコンサルタントを対象としています。また、これからRubyエンジニアに目指す方や、学生割引制度があることから、新卒でエンジニア職に就きたい学生の方も受験しています。
5.1 合格率と難易度
合格率は非公開とされています。試験は、Silver version 2.1とGold version2.1の2種類の難易度に分かれています。
(1) Silver version2.1の難易度
完全なプログラミング初心者や、他言語のプログラミング経験しかない方向きです。内容はRubyの基礎知識が中心に構成されています。
(2) Gold version2.1の難易度
Ruby中級者、上級者向きです。仕事で既にRuby開発経験がある方でも、試験独特の問題傾向もありますので、受験前には余裕を持って問題集で演習することがお勧めです。
6. まとめ
誰でも最初は未経験者であり、初心者です。この壁を乗り越えるのは容易ではないかもしれませんが、Ruby学習をする前に、Rubyの基礎知識を知っておくことは、学習を楽しんで継続することにも繋がります。 ぜひRubyプログラミング学習にチャレンジしてみて下さい。
関連記事:
Rubyの学習サイト10選【初心者向け】
関連記事:
Ruby技術者認定試験とはどんな資格?難易度から受験方法までまとめました
関連記事:
【Ruby】初心者におすすめの入門書
関連記事:
【Ruby】初心者におすすめのテキストエディタと統合開発環境
関連記事:
初心者向けRuby on Rails入門【開発環境から学習方法まで】
関連記事:
【初心者】Rubyインストールから簡単なプログラム実行まで
関連記事:
2019年も開催決定!RubyKaigi初参加の方向け基本情報