本を書きたい

広告

今日も明け方までBARにいたのだけど、プログラミングの話をしていた。

どの技能もそうなんだけど、習熟度というのがある。ちょっとかじった程度から、その分野で色々な人から一目置かれる上級者まで色々な段階がある。プログラミングはちょっとかじった程度でも、うまく応用することができれば役に立つ技能だと思う。手作業でやったら何時間もかかり、しかもミスするかも知れないことを正確に短時間で仕上げることができる。だから、プログラミングに興味があるなら、どんどん手を出すべき技能だと思う。学校の授業の情報処理系の授業はたいてい役に立たないけれど、コンピュータを使えると言うことは現代において重要な技能である。

とはいえ、何から始めるかは難しい問題で、ネットのあちこちにそうした議論がある。頭堅いなあと思うような主張をする人も依然として多い。例えば現代において、プログラミングを自分のキャリアの柱にするかどうかも判らない人にC言語を教えろという主張はナンセンスだと思う。

C言語という言語は確かに重要な言語で、未だにC言語ができるということはプログラマとして重要な技能と見なされていると思う。しかしC言語はあまりに無味乾燥である。コンソールにHello Worldと表示したり、1〜100まで足して表示するなんて例題を興味のない人がやってモチベーションが続くだろうか?

C言語のパワーアップ版(やや語弊ありか)であるC++にも同様の問題がある。C/C++の標準ライブラリが今のOSの「あたりまえ」について行ってない。例えばネットワークとかスレッドを使おうとするとすぐにsocketとかpthreadが必要になる。でもWindowsだとWinSockやWin32 APIが必要だし、標準が弱い。結果的に入門書に書ける内容は昔ながらのアルゴリズムとデータ構造なんかになる。Boost threadとかasioはそれに対する一つの解ではあるんだけど、いきなり初心者をboostの海に放り込むかというとちょっと戸惑う。

だから、プログラミングに向いているかどうかハッキリするまでは、まず簡単に役に立つものが作れる言語を選び、そうしたテーマで進めるべきではないかと思う。例えばRubyやPythonなどのスクリプト言語は、気軽にネットワークにアクセスすることができるし、扱いやすい言語だと思う。あるいは、すぐに絵を動かせるゲーム向きのスクリプト言語なんかが入門にはいいと思う。

Rubyの本を書くとしたら

もし自分がRubyの本を書くとしたら、サンプルを全面に押し出して興味を引くことを考えると思う。何がいいだろうかと思うけど、ネットワーク系ではないか。例えば

この『Javaスパイダーツールサンプル&クックブック』はよい本だと思う。言語はJavaだけど、私の考える理想に近い。実用的なサンプルがあり、しかも使っていて楽しい。何も判らずにコードを書き写して、あちこちいじっているだけでも楽しさを覚えるのではないかと思う。同種の本に

がある。これはPerlだが、やはりアプローチは同じ。どちらを勧めるかと聞かれたら上記のJavaを勧めるが、セットで読んでもいいと思う。もともとアメリカの本で、若干日本の事情が書いてあるので対比によいかも知れない。

この手の本で新しいのが『集合知プログラミング』だが、ややレベルが上がるような気がする。

言語の入門書としての性格

初めてプログラミングをすると言う人をターゲットにするとしたら、言語の解説も必要である。あんまり堅い入門書は望むところではないので

くらいのレベルがいいかと思う。これはJavaの基礎的な話に触れてカブロボというJavaで株の売買をするコンテスト向けのプログラムについて書いてある。この本は参考にしたい。レベルは一気に上がるが

もそういう点で名著に入ると思う。ループや制御構造という簡単なことは書いていないが、デザインパターンなど中級者向けくらいの解説をしたのち、ゲーム独特の話に入っていく。なかなか上手くできていて、後ろの方を読むのに必要な知識が前の方に書いてある。また、押しつけがましい感じがあまりしない。この本は無駄なところも多く、色々試行錯誤をして「〜は葬る方向で」のようにあっさり捨ててしまうことすらある。これは著者の志向の流れを感じることができる点で、どうしてその方法を採ったのかということがわかりやすい。

で、Rubyの入門書だけど

これは意外と役に立たないと感じた。言語について知りたいときはネットにある逆引きRubyを見ることが多かった。しかし、この本で役に立つ知識をいくつも得られたのは確かである。もう少しよい入門書があればという気がするが、とりあえずこれでも一冊持っておくといいかもしれない。

これらを参考にして原稿を書いてみたい

さて、オナカンページに載せるか、Honour Neat & Companyにするか悩むところ。とりあえず路線は決まったので、廃人でやる気ないけど、少し何かやってみようかなと言う気になっている。