2013-01-03

コンピュータサイエンス科1年生の弟に贈る技術書3冊

帰省して実家からコンピュータサイエンス科に通っている弟と1年ぶりに会って来ました。現在プログラミングの授業(C言語)が週に2回あるそうで、理解度を尋ねると「ポインタも分かったよ」とさくっと言っていて驚いたのですが、僕が実家で『たのしいRuby』の練習問題を解いていたところ弟が顔をのぞかせて "Hello world" が一行で、しかもコンパイルせずに実行できてしまうことなどに感激していました。そこで深夜に2人してドットインストールの Rubyの基礎 を一緒に鑑賞するなどして過ごしました。

帰りぎわに弟に Ruby 本はいるかと尋ねたところ、(動画を見る前は「まだCを習得していないから浮気するわけにはいかない」と言っていたのですが)少し逡巡して「うん」と言っていたので、『たのしいRuby』を Amazon ギフトで送る次第となりました。そこでどうせならと思いあと2冊くらい追加しておこうと思い立って送りつけました。以下がその目録になります。


  1. ふつうのLinuxプログラミング
  2. プログラミングコンテストチャレンジブック 第2版
  3. たのしいRuby 第3版

なぜこの3冊なのかと言うと、まず1冊目の『ふつうのLinuxプログラミング』は弟が学習中のC言語で作られているソフトウェアのうち最も使用されているのが Linux なので、プログラミング自体の可能性を意識しやすいという点を評価して選定しました。

次に2冊目の『プログラミングコンテストチャレンジブック』は、弟が数学が得意な理論派だったのでアルゴリズムの本で強みを磨いて欲しいので選定しました(理論よりは成果物に興味関心が強い僕とは対称的なので一緒に組んで何かやれるといいなと勝手に思っています)。

そして3冊目の『たのしいRuby』は約束したからこの本にしたわけですが、あえて言えば、手軽で強力なスクリプト言語の入門書という位置づけで選定しました。C言語のみやっている人にとっては、私のように JavaScript からプログラミングを始めたような人間とは大きく異なった魅力を Ruby や Python といった Lightweight Language に感じるのでしょう。


ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道 プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~ たのしいRuby 第3版

他にもいろいろと選定候補がありました。特に悩んだのが、『ネットワークはなぜつながるのか』とか『 Webを支える技術』とかの「ネットの話」です。このあたりの話題はビジネスでは必須ですが(弟に「Web関連の技術は絶対必要」と言ったところ、それをひと通り受け入れつつも「安易に絶対っていう言葉を使う文系乙」みたいな反応をされてしまいましたが)、大学に入ってコンピュータサイエンスの学習を始めた人にはまず OS それ自体や馴染みがあって魅力的なスクリプト言語の話のほうが動機になるのではないかと思い、とりあえず「ネットの話」は除外しておきました。とは言え、『ふつうのLinuxプログラミング』は「HTTPサーバを作る」「HTTPサーバを実用化する」という絶妙な実習を用意してくれていて、この3冊のラインナップから全くネットの話題に触れないかと言えばそうでもないです。『たのしいRuby』にも「HTMLやRSSの解析」「HTTPサーバのアクセスログ解析」といったツールを手習いする章も設けられています。ネットには直接関係ない話題でももはやネットに触れないわけにはいかず、良書であればそのあたりを押さえてきているのでしょうね。

本年も宜しくお願い申しあげます。