DIVE INTO CODE

2019年05月05日
  • #RubyonRails
  • #Ruby
  • #Webアプリケーション

Rubyをはじめて学習するときにもっておきたい5つの心得

Aws4 request&x amz signedheaders=host&x amz signature=1b3b575e82ecd1e4e7581e8da4095b2b42574ac10c87b71cc1a8c39527ca2685

【こんな方におすすめ】
・初めてプログラミングを学ぼうとしている方
・Rubyを学ぶときのポイントを理解したい方
・プログラミングの基本的な概念を知りたい方

【目次】
Rubyをはじめて学ぶときにもっておきたい「5つの心得」
1.文字をターミナルへ出力する
2.四則演算と変数代入
3.メソッドを理解しよう
4.繰り返し処理にチャレンジ
5.いよいよオブジェクト指向にトライ!
まとめ

■話し手
DIVE INTO CODE 代表 野呂 浩良
■聞き手
StartGate 永田 拓也

Rubyをはじめて学ぶときにもっておきたい「5つの心得」

Rubyを学習しはじめるときに「こういう順番で学んでいこう」と思っておいていただきたいことを5つ挙げます。あえて5つの段階に区切りました。

5つなら覚えられそうですね。よろしくお願いします!

1:文字をターミナルへ出力する

1つ目が、文字をターミナルに出力することです。画面上に「こんにちは」「ありがとう」「さようなら」「Hello World」といった文字列を出すいうことですね。このやり方を覚えましょう。putsの公式ドキュメントも確認してみましょう。

まずは画面に表示することからですね!

2:四則演算と変数代入

2つ目が、四則演算と変数代入です。四則演算は、足し算、引き算、掛け算、割り算
変数代入は、計算した結果を変数に入れることを指します。例えば、x=1、y=2、x+2=・・・といったことが書いてある通りにできます。
その結果をターミナルに出すことも良いかもしれないですね。そこを覚えていきましょう。演算子式の公式ドキュメントも確認してみましょう。

「計算する」ということが加わりましたね。

3:メソッドを理解しよう

3つ目が、メソッド。Rubyでは「メソッド」と言いますが、他の言語では「関数」と呼ばれたりしますね。メソッドの定義と、引数戻り値というものを理解する必要があります。
例えば、1+1=、2+3=、x=3、y=2、x+y=、x×5=・・・と、いろいろな計算式を全部書いていたら大変なので、共通化するわけです。x=3というのをいろいろなところに書いていると、xの値が変わったらもう一度初期化しなければならなくなって大変なので、そういうところで共通化ができるんですよ。2回書かなくても、別個で切り出しておいて、そちらに呼び出して結果を出すことができます。そういう式をまとめてメソッド化するわけです。メソッドの公式ドキュメントも確認してみましょう。

なるほど。計算式を毎回すべて書くのではないんですね。

そうです。そのようなメソッドの定義と、中身を作ります。「ここに渡せば2を掛けてくれる」とか、「ここに渡せば1.56を掛けてくれる」とか、そういうものを作るんです。
そこに渡す値を引数と言います。一緒に引き連れて渡す値(数)なので、引数。そして、その結果出てくる数字を戻り値と言います。
このイメージを理解するのが3番目ですね。

メソッド、引数、戻り値と新しい概念が出てきました。計算するときに使うのでしょうか?

数字だけではなくて文字列でも良いんですよ。「こんにちは」「永田」「野呂」・・・といった文字列ですね。ただ、ここでは分かりやすく数字で申し上げました。

4:繰り返し処理にチャレンジ

メソッドが分かったら、次にチャレンジしていただきたいのが繰り返し処理です。イテレータとも呼ばれます。for i=1、iが12になるまで繰り返す、といった「○回繰り返す」というものがあるんですよ。例えば1ずつ足していきたいとき、繰り返す回数だけ、+1、+1・・・ってずっと何回も書きます?

書きたくないです・・・

書きたくないですよね。数学でもΣ(シグマ)とかやりましたよね。

確かに確かに。それか!

n=1、1から10まで足すとかですね。

これを○回繰り返す、といったことを事前にするんですね。

そうです。何回も書いてたら面倒なので、”for”から”end”までの間に、回数を指定して、1行だけ書いておいたらそれを繰り返してくれます

ほお、便利ですね。

便利なんですよ。ただ最初は難しいです。初めて学ぶ人にとっては、よく分からない分野の1つです。
Rubyだと”each do”とか、他の言語にはあまりない書き方があります。1件ずつ繰り返して値を取り出すとか、1件ずつそれに掛け算して10倍するとか、そこに文字列を足していくといった繰り返し処理を覚えるのが非常に重要です。
それを覚えるとレベルアップすると思います。繰り返しの公式ドキュメントも確認してみましょう。

手を動かすことが減りそうですね。

そうですね。こういうのはやってみないと分からないですし、「こう書けるんだ」と気づかなかったりするので、非常に重要です。これが4つ目です。

5:いよいよオブジェクト指向にトライ!

ここまでできてくると、一通り自分でコードを書いて上から順に実行させつつ、メソッドで切り出したりとか、繰り返し処理で効率的なコードが書けるようになってくると思います。

いろいろなことができそうな気がします!

そうしたら、オブジェクト指向に行くのが良いと思います。オブジェクト指向は、上から順番に実行したり、関数を呼び出したりすることは一部近いんですけど、少し難しいところがあります。
人間の実世界と似ているところから入るという考え方があって、逆にイメージしづらいことがあります。
プログラムを後から見やすいように、1つ1つファイルに分けて、それぞれのファイルがどういう役割を担っているのかによって名前を付けます。その中にいくつものメソッドや、そこから作り出したものにどういう役割を担わせるのかといったことを作るんですよ。
ただ、このあたりの理解は後でもいいと思います。

混乱しちゃいそうですね。

そうなんです。まずはコードを書いて、連続で処理したり、メソッドとして切り出したり、変数に代入したりすることが分かってからですね。一気に行こうとすると混乱すると思います。

まずコードをターミナルに書くことからスタートして、「1文字ずつ」がどんどんまとまっていって、大きい処理ができるようになる、というイメージですかね。

はい。「こんにちは」と出すコードを書いて「こんにちは」と画面に出て終わり、というところから、1つのファイルに何行も書いていって、そうしたら何行も書くと面倒だからまとめてみよう、という流れですね。

まとまったものがどう動くかを理解して、もう1個まとまったものを作って、ということですね。

そうです。「繰り返し処理させたらできた!」といったことから始まり、だんだん応用がきいてくると、シンプルなコードでたくさんのことができるものが書けるようになるんですね。そういうコードは、後から見たときにも分かりやすいです。
コード量が多いと、自分で後から見たときに、何のために書いたのか分からなくなるんですよ。しかもそれが何行もあったりすると、昨日の自分が嫌になるんですね(笑)。

確かに。まとまって整理されている方がいいですね。
ステップが5つあるからすぐ5つ目まで行くのではなく、1つ1つきちんと覚えて進んで行くことが大事ということですね。

そうですね。オブジェクト指向に関するまつもとゆきひろさんのコメントも確認してみましょう。

まとめ

Rubyをはじめて学ぶときに持っておきたい心得は5つ!オブジェクト指向は重い内容ですし、イメージするのに時間がかかるので、この順番に沿ってチャレンジしていただくと良いでしょう。

1.文字列をターミナルに出力しよう。まずはここから!
2.四則演算と変数代入を理解しよう。計算するときのコードを書いてみよう!
3.メソッド(関数)の定義、引数や戻り値について理解しよう。計算式を毎回すべて書くわけではない!
4.繰り返し処理(イテレーター)について学ぼう。何回も同じ処理をするときに必須の知識!
5.オブジェクト指向を理解しよう。ちょっと難しいけど、その1〜その4をしっかり理解してからチャレンジ!

DIVE INTO CODEのことをもっと知ってみませんか?