読み始める前に
単にダラダラと書いた感想文なので、そういうのが嫌いな人は読むだけ時間の無駄だと思いますよ、多分。
何となくRubyの書き方を知りたいと思ったので本を読んでみた
喫緊に必要というわけではないのだが、「こういうことやりたいけど、いいPythonのライブラリないのかな?」と探していて、見つかったのがRubyで実装されたものやPerlで実装されたものしか見つからなかったりすることが少なからずあったので、巧みに書けなくても簡単なものなら読めるようにしたいなあと思い、以前買って読んでいなかった本を頭から読んでみた。
- 作者: Yugui
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/06/26
- メディア: 大型本
- 購入: 27人 クリック: 611回
- この商品を含むブログ (245件) を見る
まだ読んでいる途中ではあるが、「他言語を経験したことのあるプログラマ向けのRuby本」と最初に書いてあるだけあって、Rubyの特徴的なところを割と効率よく学べる様な気がする。書かれた当時はまだ1.8がメインだったから所々で読み替えが必要なのかもしれないのだけれど。
読んでみると、なんだかんだいってある程度Pythonでそれなりに書いてきたおかげか、スラスラと読み進められた。巷ではPythonとRubyがどれくらい似ていると(或いは似ていないと)言われているのか知らないが、最初の方を読んでみた限りでは結構似ている部分が多いので、頭の中で「ああ、これはPythonのenumerate()関数を使ったあの書き方と同じだな」とか補完できるので、全くの初心者よりかはずっと短い時間で理解できているとは思う。
自分の知識不足を突きつけられる
が、読み進めていくうちにまずいことに気がついてしまった。
「あれ?これってPythonだとどう書くんだっけ?」
具体的にどの箇所でそう思ったかは分からないけど、読み進めていく中で何となくそう感じてしまう箇所がポツポツ出てしまったので、「これは少しPython周りの足りない知識を補わないとまずいかもなー」なんて思ってしまったのだが、あいにく私が持っているPythonの網羅的な入門書は以下の一冊しか無いのであった。
- 作者: Mark Lutz,夏目大
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/02/26
- メディア: 大型本
- 購入: 11人 クリック: 398回
- この商品を含むブログ (117件) を見る
現物を見たことがある人は知っているだろうが、この本、実に750ページ以上もある分厚い入門書で、一通り読み通すのすら困難な書物である。(実際、私は途中で積んでいる状態)
網羅的な確認とかリファレンスとしては今でもたまに使うのだが、あまりに厚すぎるので読み返す気にはさらさらなれない。読み返したとしても、あまりに厚すぎて、自分が苦手としている部分を無意識のうちに読み飛ばしてしまいそうになりそうだとも思った。(前科がある)
なので、今回は教材としてPythonの公式ドキュメントにあるチュートリアルを活用してみた。今までまともに読んだことは無いが、コンパクトに全体的な知識がまとまっていそうだったのでちょうどいいと思ったからだ。
で、先ほど一通り読み終えられたので、感想でも書くことにする。
読み通した感想
- 自分に穴があるところが結構分かったので、個人的に為になった。
- 特に「関数型プログラミング」や「クラス」に関する知識が弱かったことが再認識できたのは良かったと思う。
- filter(), map(), reduce()がやっと理解できた。
- というか、最近JavaScriptでreduceメソッドを使う機会があったから、以前よりもすんなり理解できたのかもしれない。
- イテレータ、ジェネレータ周りも復習できて良かった。
- 関数の引数の*args, **kwargsの知識もあやふやだったので、それを復習できたのも大きい気がする。
- ただやっぱり標準ライブラリの使い方はチュートリアルだけだとやっぱり少ないかな、とは思った。当たり前と言えば当たり前だけど。
- でも、普段pickleモジュールを使う機会に恵まれなかったので、どう使うか軽くでも書いてあったのは個人的に良かった。
- まだ「クラス」「例外」あたりは知識が身についてないところが多い。
- というか結構読み飛ばしたので、後でまたちゃんと復習する必要があると思う。
そんな感じで、自分の中の抜けている穴が結構埋められたのでよしとしたい。
というか、何事もチュートリアルとかドキュメントとか、基本大事ですよね、と思いました、ええ。