はじめに
技術評論社さんから「Ruby コードレシピ集」をご恵贈いただきました。
どうもありがとうございます!
本書の概要を公式サイトから抜粋します。
最新Ruby 3.3に対応。Rubyでやりたいことがすぐにわかる,逆引きレシピ集の決定版。
Rubyの基礎知識や実践ですぐに役立つテクニックを,目的別にまとめた逆引きレシピ集です。文法/データ操作/正規表現/文字列操作/テスト/エラー処理といったRubyの基本から,RubyGems/データベース操作/データ処理といった実践的な開発に役立つテクニックまで,やりたいことをすぐに逆引きできるように整理しました。繰り返し参照しやすい形式で構文やコードをわかりやすく掲載。駆け出しエンジニア,Web開発者,ホビープログラマー,Rubyを使うすべての方にお届けします。Ruby 3.3に対応。
Ruby コードレシピ集:書籍案内|技術評論社
ちなみにページ数は672ページで、拙著「プロを目指す人のためのRuby入門 改訂2版」の568ページよりもさらに分厚いです。
さっそく読んでみたので、感想を書いてみたいと思います。
プルではなくプッシュでRubyのテクニックを学ぶ、という価値
正直に言います。
逆引き系の技術書は20年前にはとても重宝しました。
しかし、現在ではネット上に必要以上の情報があふれ、ここ数年でChatGPTに代表される生成AIも台頭し、コードの書き方で迷うことがあれば「ググる」もしくは「ChatGPTに聞く」でほとんどの問題は解決します。
なので、「Ruby コードレシピ集」が発売されることを聞いたとき、「こんな時代に逆引きレシピ集なんて出しても、あまり意味がないのでは?」と心配になりました。
しかし、本書を読み進めていくうちに、僕は「ああ、本を読むというのはググったりAIに聞いたりするのとは違うんだな」と感じるようになりました。
具体的に何が違うのか?
それはググったりAIに聞いたりする体験はプルで、読書はプッシュである、ということです。
本はあなたに向かって知識をプッシュする
ネットやAIの情報はこっちから聞かないと情報が出てきません。
つまり、自分の中に「これが知りたい」という動機がないと情報が引き出せないのです(=プル)。
一方、本を読むと、本が自分に対して「これ知ってる?」とか「こんなこともできるんだよ」と話しかけてきます。
つまり、「これが知りたい」という動機がなくても、本が自分に対して知識を送り込んできてくれるのです(=プッシュ)。
プル型の知識は受け身の姿勢で待ち続けているとまったく自分の中に落ちてきません。
一方、プッシュ型であれば「本を読む」というアクションさえ起こせば、様々な知識がどんどん落ちてきます。
生成AIに何でも聞ける時代に「Ruby コードレシピ集」を読むのは、このように技術的な知識を自分の中に強制的にインストールできるところにその価値があるんじゃないだろうか?と僕は感じました。
Ruby初心者は逆引きではなく、あえて頭から順番に読もう
公式サイトでは「逆引きレシピ集の決定版」と説明されているので、本書の典型的な使い方はおそらく「やりたいことがあればその都度本書を参照する」という逆引きのスタイルなんだと思います*1。
ですが、Ruby初心者(だいたいRuby歴が2年未満の人)はぜひ本書を最初から順に読んでいってほしいと思います。
そして、本書との対話を楽しんでほしいです。
たとえば「025 ヒアドキュメントで文字列を書きたい」であれば、本書が「ヒアドキュメントって知ってる?ちゃんと使いこなしてる?」とあなたに問いかけてると考えてください。
「ヒアドキュメントぐらい知ってるよ!」という場合はOKです。
ただし、本当に自分の知識は合っているのか、実は今まで知らなかった応用的な使い方がないか、といった観点で本文をチェックしましょう。
一方、「ヒアドキュメント、全然知らなかった」とか「そういや昔やったけど、完全に忘れてたわ」という人は、新しい知識を習得するチャンスです!
ここでしっかりヒアドキュメントについて学びましょう。
・・・と、こんな具合で最初から順に読んでいくと、本書を読み終わる頃にはいい具合にRubyに関する知識やコーディングテクニックを吸収できているはずです。
1日10トピックずつ読み進めれば1ヶ月で読み終えられるはず!
前述のとおり、本書はかなり分厚い本です。
ですが、各トピックはほとんどが1〜2ページにまとまっています。
説明も簡潔で大変わかりやすいです。
全部で290のテクニックが載っているので、1日10トピックずつ読み進めれば約1ヶ月で本書を読み終えることができます。
毎朝仕事を始める前に、もしくは通勤の電車の中で、気軽な読み物として一定のペースで読み進めるといいんじゃないかなと思いました。
チェリー本とあわせて読めばもう完璧!?
本書の内容は拙著「プロを目指す人のためのRuby入門 改訂2版(通称チェリー本)」と被る部分も多いです。
なので、チェリー本を何度も読み直す代わりに、Ruby コードレシピ集を読んで復習する、という使い方もありかもしれません。
(あっこれ、チェリー本に載ってたのに忘れてしまってたわ〜、みたいな感じで)
ちなみに、チェリー本とRuby コードレシピ集の主な違いは以下の通りです。
- チェリー本の対象バージョンはRuby 3.0、Ruby コードレシピ集はRuby 3.3なので、Ruby コードレシピ集の方が内容が新しい
- チェリー本は「素のRubyの知識」にこだわっているが、Ruby コードレシピ集はgemのインストールを前提とした話題も多い
- チェリー本はテストコードの説明にminitestを使っているが、Ruby コードレシピ集はRSpecを使っている
このほかにも、チェリー本執筆時に「ページ数が多くなり過ぎるからこれはカットせざるを得ないな」と思った内容もRuby コードレシピ集にはたくさん載っています。
具体的に挙げると、日時データの扱いやファイル操作に関するライブラリの使い方などです。
なので、チェリー本とRuby コードレシピ集を両方読めばRubyに関する知識はかなり広範囲に網羅できると思います!
まとめ
というわけで、このエントリでは「Ruby コードレシピ集」を読んでみた僕なりの感想を書いてみました。
現在Rubyを勉強中のそこのあなた!
本書を毎朝10トピックずつ読んでいきましょう。
そうすれば1ヶ月で知らなかったテクニックや忘れていた知識を効率良く吸収できるはずです💪
あわせて読みたい
著者の一人である id:kymmt90 さんと Shimoju さんによる「Ruby コードレシピ集」の紹介ブログです。
こちらもあわせてどうぞ!
blog.kymmt.com
shimoju.jp
*1:ただし、冒頭の「はじめに」では「本書は学習用途で1章から順に読むのでも、実務用途でやりたいことに応じて必要なところから読むのでもかまいません」と書いてあります。