「どの教材を使えばいいの? どうやって学習すればいいの?」
「どうやったらアプリ作れるの?」
多くのプログラミング入門者からそんな声をよく聞きます。しかし、そのような疑問に対して、どこから手を付けて、どうやって学習していけば効率が良いのか、1人で答えにたどり着ける人は殆どいません。
その原因は、「基礎学習〜オリジナルアプリ開発方法〜仕事獲得」までを、体系的にまとめている記事や書籍が存在しないからです。
そこで今回、全くのプログラミング入門者がRubyの基礎学習から実際にアプリ開発をし、さらには仕事獲得するところまでのノウハウを1つの記事にまとめました。
Rubyについて必要な知識とは
まずRubyについて知りましょう。Rubyとはどのような特徴を持つ言語なのか、どのようなことができる言語なのか。
ここにしっかりと目を通して、自分のしたいことはRubyを勉強することで実現できるのか、しっかりと確認するようにしましょう。
Rubyとは
Rubyでできること
Ruby習得は簡単なのか?
数あるプログラミング言語のなかでも、Rubyは学習が簡単であるとよく言われます。ただ、これまでプログラミングに触れたことがない人は、「本当に簡単なの?」と懐疑的になります。
簡単と言われる理由は以下の通りです。
そのため、他の言語よりも直感的にコードが書きやすく、初心者でもとっつきやすいという傾向があります。開発者も、Rubyは「プログラミングを純粋に楽しむために設計した」と述べているので、苦手意識をあまり持つことなく学習できるため、習得が簡単なのです。
ただし、いくら簡単といえども身に付けるには継続した学習が大事であることを肝に銘じておいてください。
Rubyの学習に入る前に……
学習に入る前に、効率的な学習方法やモチベーションを上げる記事を見ていきましょう!
プログラミングを習得するためには、いかに集中してモチベーションを保ち勉強するかが大切です。この章に目を通して、しっかりマインドセットを行うようにしましょう。
モチベーションを上げよう
Rubyを含めたプログラミングの学習には、常にモチベーションを保つ必要があります。プログラミング「言語」というように、人の話す言葉のように文法や構造があり、英語の勉強をしている気分になり、だんだんと学習が嫌になってきます。
そんなときは、プログラマーがコードを書いている姿が楽しそうだったり、カッコよく見えたりする写真、動画を見ましょう。
「俺(私)もこんな風にプログラミングコードを書いて開発したい!」と思い、再び学習に身が入ること間違い無しです。
以下はプログラミングがしたくなるオススメ映画のサイトを紹介します。
Rubyの効率的な学習法
Rubyを身に付けようと、書籍を購入し隅々まで暗記しようとする人がいます。この方法は時間がとてもかかり非効率的です。
まずはRubyの文法や構造を確認して、自分の手でコードを書いてみて、動くかどうか試してみます。一通り確認したら、簡単な機能(例:メッセージ送信やログイン機能など)を作ってみます。
簡単なことで、本やネット、人に聞くなどして解決します。プログラミングは学校の定期試験ではありませんから、分からないことは調べれば良いのです。
上手く作成できたら次の機能を制作してみる。上手く機能しなかったらどこにエラーがあり、どのように修正するか調べます。
このように、実際のアプリケーションやシステム機能を何個も制作しながら、トライ&エラーを繰り返すことで、Rubyを理解していくことが効率的な学習方法になります。
Rubyの学習サイト、本まとめ
現在はインターネットで検索できますので、Rubyを学習していて分からないことがあってもすぐに調べることができます。ただ、インターネットではRubyの文法や構造を体系的に説明しているサイトは無く、初めて学習する人にとっては、少々調べるに手間取るかもしれません。
ですので、あなた自身に合う参考書を一冊用意しておくと良いでしょう。参考書はRubyに関する知識を体系的に解説しているので、調べるのに適しています。以下のサイトにおすすめの参考書を紹介していますので、ぜひ参考にしてください。
Rubyでアプリ開発
RubyでWebアプリケーションを作るためのフレームワークであるRuby on Railsについて見ていきましょう!
Ruby on RailsがしたくてRubyを勉強するという方もいらっしゃるのではないでしょうか。Ruby on Railsの事をまだ知らない方も、理解できる記事を集めたのでしっかりと目を通すようにしましょう!
また、アプリ開発以前に必要な環境構築についても見ていきましょう。
Rubyの環境構築
初めてRubyに触れる人が、最もつまづくのは環境構築になります。ここで挫折して、「もうRubyの学習なんて辞める」という人はたくさんいます。
せっかくRubyを身に付けて、自分でアプリケーションやシステムを開発しようと思ったのに、その前段階で辞めてしまうのは大変もったいないです。そのような人のために、スムーズな環境構築方法を解説します。
まず環境構築はRubyの参考書を見ながら行うと良いです。前項でも説明しましたが、参考書は知識や手法を体系的に記載しているので、比較的スムーズに環境構築が可能です。
注意点は、自身のPCがWindowsかMacか、どのOSで環境構築を行うか確認し、参考書内に記載されているか調べておきます。あとは参考書に記載されている通りに進め、意味が分かりづらい単語をインターネットで検索するという方法をとると良いです。
以下はRubyの環境構築の方法について紹介しているサイトになります。
Ruby on Railsについて
Rubyにはフレームワークというものがあります。フレームワークとはプログラミングコードを書く手助けをしてくれるツールの1つです。
例えば、あなたが履歴書を作成するとき、自分で1から枠や記載項目を書くのと、市販の履歴書を使用するのでは労力の差は明らかです。ここでは市販の履歴書がフレームワークに当たります。
フレームワークは大規模で、複数人で開発を行う際に活躍し、仕事の効率化に繋がります。Rubyでの転職を考えている人は身に付けておく必須スキルなので、Rubyの学習を一通り終えた人はフレームワークの学習も始めましょう。
Rubyの文法について知る
それでは、お待ちかねの文法について学習していきましょう。
文法を覚えることから、プログラミングは始まります。今一度自分の目標を見つめ直し、超速で文法を覚えていきましょう!
変数について知る
プログラミングでは、数値や文字列を入れておく格納庫があります。この格納庫として使用する値を変数と呼びます。
他のプログラミング言語で変数は、数値や文字列を入れておくための箱として格納庫と表現しますが、Rubyでは名札を付けるというイメージで使用されています。
使い方の例としては、
name = “山田” print = ("name + さん、おはようございます!¥n")
とコードを書くと、出力のname部分に「山田」が代入されて、「山田さん、おはようございます!」と出力されます。この1行目のname部分が変数の値になります。
文字列について知る
Rubyで文字列を扱うのは簡単ですが、注意すべき点もあります。具体的には「1234」という数字を数値として扱っているのか、文字列として扱ってるかの違いです。
プログラミングでは数値として扱うなら四則演算などができますが、文字列として扱っている場合は計算を行うのは不可能です。
数字を文字列として扱う場合は、
str = “1234”
というように、「””(ダブルクォーテーション)」で囲むと、その対象は文字列として扱われるので、ぜひ覚えておいてください。
配列について知る
Rubyでの配列は、文字や数値が並んで1つの箱に入っている状態のことを言います。
学校などで出席番号順に並び、各々に番号が割り振られ、○年○組の列と呼ばれていたと思います。あのようなイメージになります。
書き方は、以下のようになります。
array = [“dog”, “cat”, “Tiger”]
一番最初のdogから、0,1,2……、と番号が付けられます。
put array[0]と書くと、dogが表示されます。
ハッシュについて知る
ハッシュとは配列と同じく、複数の文字や数値を箱に入れて管理することができるオブジェクトです。配列と違うのは、「キー」と呼ばれるものを使用して値(バリュー)を操作することです。
書き方は、配列と似ている書き方をしますが、キーとバリューを紐づけます。
fruits = {"apple": "100円", "orange": "200円", "banana": "500"}
くだものがキーで、それぞれの価格がバリューです。
p hash[:apple]と書くと、100円が表示されます。
条件分岐ついて知る
条件分岐とは、設定した条件を満たしたときだけ、そのプログラミングを動かすことです。
例えば、a=1のときは足し算を行う、a=2のときは引き算を行いましょうという感じです。「if」を使用してコードが書かれ、主にif文と呼ばれます。
Rubyの条件分岐には、他にもunless文、case文と呼ばれるものがあります。ただ基本はif文となりますので、まずはif文を使って条件分岐の理解と書き方をマスターすることが最優先です。
繰り返しについて知る
Rubyで繰り返しをする場合は「for」文を使用します。まず繰り返しとは、一定の法則に則ってループ処理を行うことです。
例えば、1から100まで表示したい場合は、1つずつput 1, put 2, put 3,……と100まで書けば表示されます。ただこの方法ですと、100個コードを書かなければならず、非常に非効率的です。
そんなときに使用するのがfor文です。以下のように記載します。
for i in 1..100 do puts i end
これで、1から100まで表示され、非常に簡単なコードで書くことができます。繰り返し処理を身に付けると、Rubyを用いて開発できる幅が広がります。
クラスについて知る
クラスとは、プログラミングで書かれた処理方法を入れたものです。設計図とも言われ、このクラスを利用してオブジェクトを作成します。
今ここに、1、2、3など複数の数値があるとします。これだけでは、この数値に対してどのようなアクションをとれば良いか分かりません。ここで使用するのが、「足し算をするための手法を記述した設計図」を渡せば、数値を使用して足し算を行い、その結果を表示します。
この足し算の手法を記述したものがクラスに当たります。
モジュールについて知る
モジュールはクラスと同じように、プログラミングで書かれた処理方法を格納できるものです。クラスと違うのは、モジュールは別ファイルに記述できることです。
別ファイルで書かれたプログラミングコードをモジュールとして、他のファイルでそのモジュールファイルをインポートするコードを記述すれば、そのファイルでモジュールの内容を使用できます。
大規模な開発ではコードの量が多くなるため、なるべくモジュール化して、1つのファイルが長文にならないようにします。
演算子について知る
演算子とはコンピュータに対して、「ああしなさい」、「こうしなさい」と命令する記号です。
例えば、変数名に文字列や数値を代入するために使用する「=」は代入演算子と呼ばれます。
他にも、1から10までを示す範囲演算子と呼ばれ、「1..10」というようにドット2つで表します。またAかつBというように、どちらとも満たす場合を表示するのは「A && B」のように論理演算子を使用します。
演算子は数多くあるので無理に覚えようせず、何回もコードを書きながら使い方をマスターしましょう。
正規表現について知る
長い文章から、一致した単語があるか検索することはたくさんあります。このとき、完全に一致した単語や、単語の中にある特定の文字が含まれているかなど、複雑なパターンでも検索するときに使用するのが正規表現です。
よく使用されるのは「match」メソッドになります。
timeについて知る
timeはRubyで日時の操作を行うクラスの1つです。他にも日付を操作できるクラスは存在するのですが、timeは日付と時刻の両方を操作することができるのが特徴で、とても便利です。
gemについて知る
Rubyの「gem」は以下2つの意味があります。
パッケージとは、他の人が制作したいわゆるプログラミングの部品です。ライブラリとも呼ばれます。
例えば、ある機能を実装しなければならないけど自分で1から制作するのは時間がかかるとします。そこで、他の人が制作したプログラミングコードを自身のプログラミングコードにインポートして、必要な機能を実装することで開発の効率化を図ります。
また、パッケージ管理ツールの「gem」は、gemをインストールするときなどに使用するツールを指します。
csvについて知る
csvファイルとは、拡張子が「.csv」となっているファイルで、色合い的にはExcelファイルと似ています。中身を開いてみると、データが「りんご,みかん,バナナ」のように「,(カンマ)」で区切られています。
Rubyを含めたプログラミング言語では、このcsvファイルをプログラム上にインポートして、PCでデータの加工、追加後に表にしたり、分析を行って導いたデータを新しく出力したりします。
Rubyエンジニアの収入はどれくらい?
Rubyは日本産のプログラミング言語であり、かつさまざまなアプリケーションやシステムを開発できることから、IT業界からの需要が高く、求人数もたくさんあります。
では収入がどのくらいになるか調べてみると、「プログラミング言語別年収ランキング」によるとRubyエンジニアの年収中央値は550万円(株式会社ビズリーチ)です。他業界のエンジニアと比較すると、Rubyエンジニアの年収は高いほうだと言えるでしょう。
ただこの数値は全エンジニアの中央値のため、経験年数やスキルの有無によって収入の差は発生します。
ざっくり説明すると、
のようになります。
未経験の場合は他業界の年収と変わらない程度ですが、実績やスキルがダイレクトに収入に反映される職業なので、日々研鑽をすれば高収入を目指せます。
まとめ
この記事では、これからRubyを学習したい、未経験からRubyエンジニアに転職するために身に付けたい入門者向けに、Rubyの概要について紹介しました。
Rubyは他の言語に比べて、直感的にコードが書きやすく、プログラミングが楽しくなるような設計となっているので学習がしやすく、未経験でもエンジニアを目指しやすい言語になります。
日々努力すれば必ず身について、アプリケーションやシステム開発ができるようになりますのでがんばってください!
この記事を読んで、Rubyを学習したいけど1人で頑張れるか不安のある人、Rubyエンジニアに転職したいけどどうすればよいか悩んでいる人にはスクールでの学習がおすすめです。
当社では無料カウンセリング(オンラインで受講できます!)も開催しているため、ぜひお気軽に足を運んでいただければと思います。