私は未経験からRubyを学び、今までRubyを使ったソーシャルゲームやtoBのクラウドサービスなどの開発に携わって来ました。かれこれRuby歴8年になります。
これからRubyエンジニアを目指す人向けに、私が独学・新人時代に参考した書籍を紹介していきます。
【初心者向け】たのしいRuby
Ruby入門の定番書籍。プログラミング完全初心者から他言語経験者まで満足できる内容になっています。
新卒で入った会社から勧められた本だったこともあり、私も最初に「たのしいRuby」を読みました。
新卒で入った会社はRuby会議のスポンサーになるくらい力を入れている会社でした
この本を読めばRubyについて一通り理解できるようになって、わからないことが出てきてもネットで調べて解決できるくらいの状態になります。
※ プログラミング完全初心者で不安な方はProgateの基礎コースをやってから読むとより理解できると思います。
【中級者向け】パーフェクトRuby
「たのしいRuby」を読み終り、さらに学習したい場合にオススメ!!
序盤の基本的な言語仕様等は「たのしいRuby」と被るところもありますが、「たのしいRuby」ではサラッと流した部分や触れられていない部分について、より詳細に解説されています。(メタプログラミングやリフレクションプログラミング、Rubyの標準ライブラリ、Gemの作り方など)
メタプログラミングとはプログラミング技法の一種。あるパターンをもったロジックを生成する高位ロジックによってプログラミングを行う方法
Rubyの基本的なことはわかっているけど、もう一段階レベルアップしたい人にオススメ!!
【上級者向け】メタプログラミングRuby
Rubyでのメタプログラミング(黒魔術)に重点を置いた一冊で、かなりレベルの高い本です。
初心者には難易度が高いので、「たのしいRuby」、「パーフェクトRuby」の後に読むのをオススメします。
また、わからない点があっても落ち込まなくて大丈夫!!わからない点があってもこんな方法があるんだと頭の片隅に置いておいて、必要になったときにまた読み返せば良いです。
メタプログラミングとはプログラミング技法の一種。あるパターンをもったロジックを生成する高位ロジックによってプログラミングを行う方法
私も8年間Rubyを使っていますが、メタプログラミングは自分で書くより読むことの方が多いです。共通基盤的な機能やGemの中身で使われていたりするので、どうやって動いているのか調べるときにメタプログラミングの知識があると役に立ちます!
Rubyエンジニアとして上級者になりたい人、Gemが上手く動かないときなどに中身を読めるようになりたい人にオススメの一冊です。
【番外編】よりエンジニアとしてレベルアップしたい人向け
単にRubyの知識を深めると言うより、Rubyを題材にしていて、ハイレベルなWEBエンジニアに必要なスキルを身に付けれる本を紹介していきます。
入門書を終えて、これから実務でRubyを使い始める(使い始めた)中級者以上にオススメ!!
リファクタリング:Rubyエディション
Rubyを使って人が理解しやすいプログラムを書くためにどうしたら良いかを学べる本です。もともとはJavaで書かれていた本のRuby版です。
独学の段階でこの本をしっかり理解するのは難しいと思います。
これからRubyの現場に入る人やRubyを書いているがどうやったらわかりやすい設計ができるのか知りたい人にオススメ!!
Rubyによるデザインパターン
デザインパターンとは、設計パターンのこと。過去の優秀なエンジニアたちが、考えた「こんなときには、こんな設計にすれば良い」といった解決方法(設計パターン)をまとめたものです。
Rubyによるデザインパターンは、有名なデザインパターンの解説とそれをRubyでどうやって書くのかを学べる良書です。
デザインパターンを知っておくと、新サービスや新機能開発のときに役立ちます。また、コードレビューのときに設計に関する指摘をされたときに指摘内容を理解しやすくなるので、知っておいて損はないです。
Rubyで「どのようにクラスやモジュールを定義すれば良いか」、「クラス間の依存関係をどうすれば良いか」などを学びたい人にオススメ!!