宮水の日記

宮水の日記

主に書評や資格取得について記事を書いています。

【おすすめ技術書】プロを目指す人のためのRuby入門①(全2回)

 みなさんこんにちは!宮水です。

 

 

今週は、こちらの本の1章から4章を読みました!

通称「チェリー本」と呼ばれていて、RailsやるならRubyちゃんと理解しようぜ!っていう話の流れに必ず出て来る本ですね!

 


 

 

 

 

この本を読もうと思ったきっかけ

先日基本情報を取得して宮水はイイ波のってんね〜!な状態なので、Ruby Silverとりたいな〜」なんて思い始めました。

Ruby Silverもそこまで大した資格じゃないかもしれないんですけど、RailsエンジニアとしてRubyはしっかり理解したいし、体系的にちゃんと学ぶとなると資格勉強が一番だと思いました。

 

 

でも、

「合格教本難しいー٩( ᐛ )و」

「問題もまだ全然ワカンないやだもー٩( ᐛ )و」

 

 

そこでこの本を本棚から引っ張り出してきました!\デデン/ 

 

他にも、私が以前通っていたDIVE INTO CODEの野呂さんも激推し私の会社の読書会の長も激推しだったので、今週は資格勉強としてRubyを学ぶ前に!!

RailsエンジニアとしてRubyを極めるために!!

この本を通してRubyともう一度向き合ってみようと思いました\\\\٩( 'ω' )و ////

 

 

結構ボリュームがあって、なるほどと思うことがたくさん書いてあったので3回に分けてこの本をご紹介します!

 

目次

 

 

この本の構成と特徴

 

この本の対象者は以下です。

JavaC#など、別の言語でプログラムを書いているが、次はRubyを使った仕事に就きたいと考えている人。

・Web上のオンライン教材などで独学し、なんとなくRuby on RailsでWebアプリケーションを作れるようになったが、Ruby言語そのものに精通しているとは言い難いと考えている人。

 

 

ふたつめなんて完全に宮水!!まだまだフレームワークに助けられてる系エンジニアです_:(´ཀ`」 ∠):

 

 

この本は全12章で構成されています。

第1章 本書を読み進める前に

第2章 Rubyの基礎を理解する

第3章 テストを自動化する

第4章 配列や繰り返し処理を理解する

第5章 ハッシュやシンボルを理解する

第6章 正規表現を理解する

第7章 クラスの作成を理解する

第8章 モジュールを理解する

第9章 例外処理を理解する

第10章 yieldとProcを近いする

第11章 Rubyデバッグ技法を身につける

第12章 Rubyに関するその他トピック

 

ちなみに、ちょびっとだけRubySilverを勉強したのですが、この本範囲をほとんど網羅していらっしゃる!!(第2、4、5、6、7、8がsilverの範囲です。)  とてもやる気が出ました。

 

 

第1章について この本の読み方、環境構築

最初は環境構築でした。

この本は、実際にサンプルコードを打ちながら学習できるようになっています。

f:id:kattyan53:20181215194924p:plain

irbの実行(うぇ〜い)


第2章 Rubyの基礎を理解する

2章はRubyという言語特有の特徴についてまとめてありました!

文法やオブジェクト志向について他の言語と何が違うのかがまとめてあります。

 

 

Rubyって面白い!と思った2章のお話をご紹介!

2.2.1 すべてがオブジェクト

いきなり重いやつきた!!!

最初はまっったく理解できなかったんですが、Rubyは文字列や配列、数値、nilなどもすべてオブジェクトなんだそうです。メソッドを呼べるのがその証拠。

f:id:kattyan53:20181215195608p:plain

nilでいろんなメソッドを呼んでみた

f:id:kattyan53:20181215195848p:plain

falseやtrueもメソッドが呼べる。使えるメソッドが違ったりする。

 

そうそう、私は初めて触った言語がJavaだったのでメソッドに引数がない場合に()をつけないのちょっと気持ち悪かったです() 

f:id:kattyan53:20181215201008p:plain

引数がないときのメソッド定義

 

 

こんな感じで、

Rubyに関する基礎知識
・文字列
・数値
・真偽値と条件分岐
・メソッドの定義

などについて、Rubyという言語の特徴について詳しく書かれていました!

最初のうちは”覚える”って感じになると思いますが、3ヶ月ぐらい実務でコードを書いていると当たり前のように使っている知識ばかりでした!

改めて確認し、Rubyという言語の特徴を掴むことができました。

 

 

第3章 テストを自動化する

この本では、Minitestについて触れています。

私は業務でRspecを使いたいと考えているので、この章は飛ばしました。

ちなみにこの本の著者である伊藤さんは、Rspecに関する本を翻訳されています!

(以下、翻訳前の本です!)

 

 

 

第4章 配列や繰り返し処理を理解する

出ました配列!繰り返し処理!

 

基本情報でもアルゴリズムで繰り返し処理には本当に悩まされましたが、実務でも配列と繰り返し処理、めちゃくちゃ使うんですよね...

 

しかも、Rubyの配列ってとっても自由です!

f:id:kattyan53:20181215202841p:plain

こんな感じで、0から2までの要素しかない配列に対して、100番目の要素は?って聞いてもエラーにならないんですよね。おもしろーい。

 

 

他にも、数値と文字列とハッシュが同じ配列に入っててもいいんです

f:id:kattyan53:20181215204948p:plain

こんな感じで自由なRubyの配列ですが、

Rubyの配列の特徴について
・範囲について(0 ..10 で0以上10以下と表す、とかです) 
・可変長引数について
・ブロックを使う配列のメソッド(map,collect,find,injectとか)

 

この章も、最近実務でいやというくらい使ったものばかりでした!

 

配列やブロックは本当に実務でよく使うので、もう少しirbで実行しながらいろんな挙動を勉強したいと思います!

 

あとは、「RGBカラー変換プログラム」という例題も載っていたので一通り読んだ後に答えを見る前に作成しました!!

なんか昔プログラミングスクールに通っていたときにこんな感じの課題ばっかりやっていたので、懐かしくてとても楽しかったです!!٩( ᐛ )و

 

 

 

1章から4章を読んだまとめ

先ほどもお伝えしましたが、ちょびっとだけSilverを勉強した私にとっては良書でしかありませんでした!

合格教本では(対策する範囲のまとめなのでしょうがないのですが)少しづつしか書かれてないのに対し、こちらの本はさらに詳しく深堀してあったり、コードを作成する例題もあったので、非常に理解が深まりました。

次の章ではなかなか理解が難しかったクラスやモジュールについて書かれているので、読むのが楽しみです!

Railsが一通りわかってきたよ、って人にはサクサク読める最高の本だと思うので、ぜひ読んでみてください!