「プロを目指す人のためのRuby入門」を読みながらコードを書く日々
通称チェリー本です。
私はRails未経験の人間なのですが、Railsをやる前に生のRubyを学んでからのほうが良いとアドバイスをもらったので、まずはRubyを習得しようと思いました。
その時に、プログラミング経験がある人でRubyを始めるならこれが良いよと勧められたのがこのチェリー本です。
GW中にAmazonから届いて、まだ5章くらいまでしか進んでないのですがすごくわかりやすいのでおすすめポイントを書いておきます。
コード例が豊富
ほぼ全てのコンテンツに、説明だけではなくコードの書き方の例が載っています。勉強し始めの頃は文章だけを読んでもピンとこないことが多いものですが、「こう書くんだよ」という例を見るとイメージが湧いたり、同じコードを実際に書いてみると「あーそういうことか!」と腑に落ちることがけっこうありますから、とにかくわからなくても手を動かしてみると良いです。
「Rubyではこうも書くこともできるけど見にくいのでやめた方がいい」という書き方についても例が書かれているので「なるほど、確かに見にくいな」と納得できます。
プログラミングがしながら覚えられる
この本では各章に例題が用意されています。
ただ例題が用意されているだけではなく、これを完成させるためにはどんなメソッドを使えばよいか、どういう風にコードを組み立てたらいいかなどのフォローも丁寧に書かれています。
説明通りにプログラミングしていけば一通り完成させることはできますが、プログラミング経験があるのであれば章の内容を一通り読んだうえでまず自分なりにプログラミングしてみるのがよいと思います。
Ruby素人の私が書くとだいたい長くて煩雑なコードになってしまうので、最後に本を見ながら他の書き方を学んだりリファクタリングしたりしています。
現場で使う書き方がわかる
Rubyは同じ目的を達成するための書き方が複数存在します。なのでこの本にも「こうも書けるしああも書けるよ」というパターンがたくさん載ってますが、その上で「現場ではこういう書き方は読みにくいので歓迎されない」というような、現場レベルのアドバイスも書かれているのが親切だと思いました。
「プロを目指す」のであれば書き方を知っているだけではなく、どういうプログラミングをするとそのコードが現場で生きてくるのかを知っている必要があります。
プログラミング以外についても書かれている
Rubyのプログラミングだけではなく、テストの自動化やオブジェクト指向、デバッグの観点についてもしっかりと書かれています。
テストについては3章というわりと早い段階で登場しますが、これは「コードを書く前にテストを書く。最初は全て失敗するところから始め、それがグリーン(=テストが成功)になるようにプログラミングしていく」というテストファーストの考え方に基づいているためです。
またRubyはオブジェクト指向言語なのでそういったことについてもしっかり説明されています。
読む人のことを考えて書かれた本
全体的に、読む人が何を知りたいと思ってこの本を手にとっているのかがよく考えられた本だなぁと思いました。
いくつかの書き方を示した上で、現場で使われる書き方とそうじゃない書き方、そして理由が書かれています。
なので、この本を読んだ私達は「こういう書き方はしない」と覚えるのではなく「なぜこういう書き方は好ましくないのかの理由を理解することができます。
理由がわかるということは、同じ理由が当てはまる違うシュチュエーションに出会ったときに、自分で判断できるようになるということです。
また、Ruby初心者だらこそ疑問を感じそうな点についても「これはRubyを始めて書く人には馴染みのない書き方かもしれませんが」と補足されているので、知らないということを不安に感じずに進めることができる点も良かったです。
まとめ
「プログラミング経験は少しあるけどRubyは初めて」というレベルの人であればかなりわかりやすいと思います。
技術書にありがちな「読みにくさ」がとにかくない本なので、自身をもって人に勧めたいと思いました。