恐らく質問なさった方は具体的な書名を期待していると思いますが、私の回答はその期待にはあまり応えられないかもしれません。「おもしろいと思った技術書」として具体的な書名を挙げるよりは、私自身の(私にとっては重要な)体験を書こうと思うからです。

私は大学に入ってKernighanとRitchieが書いた『プログラミング言語C』という本を読みました。いわゆるK&Rと呼ばれているC言語の本です。私がC言語を学んだ当時は基本的にこれしかありませんでした。

私は、何となくわかったようなわからないような気持ちでその本を読み進めていきました。プログラミング言語をちゃんと学んだことがありませんでしたから、そこに書かれていることが何を意味しているのかすぐには理解できませんでしたけれど「何となくおもしろい」と「いったいこれは何だろう」という気持ちが半々だったと思います。

C言語を学んで何ができるのか、そもそもプログラミング言語を学んで何の役に立つのか、さっぱり理解しないまま、単に「おもしろい」と「何だろう」だけで読み進めていったといえます。

「配列」と「ポインタ」のあたりまで差し掛かったとき、私は行き詰まりました。そこまでは何となくはわかったつもりでいたのですが、配列とポインタのところで本当にわけがわからなくなったのです。かなりがんばって日数を掛けて読み込みましたが、意味がわかりません。当時は「他の人に聞く」というアイディアはありませんでしたし、当時はまだ現在のようにSNSで聞くというのもありえない状況でした。

ポインタと配列の意味が分からない私は、「何がわからないのだろう」と一つメタな発想になりました。そこで気付いたのは、私はソースコードとして提示された文字列がコンピュータ上のメモリとしてどのように展開されるのか、そしてどのように処理されるのかを理解していないことに気付きました。

別の表現をするならば、ソースコードとして書かれているものはある意味恣意的なものであって、プログラミング言語の作者が決めたことに過ぎない。ソースコードの字面を見るだけで意味がわかるわけではないということを悟ったのです。

「そんなの、あたりまえのことだろ」と思われるかもしれませんが、技術書をちゃんと読んだことがなく、誰からも技術書の読み方を教わったことがなく、普通の高校を出たばかりの私にとって、その「悟り」はとても重要な意味があったと思います。

それから時は過ぎ、不思議な巡り合わせによって私はプログラミング言語の入門書を何冊か上梓することができました。そして多くの読者さんに応援していただいています。でもその執筆の背後には、大学に入ったばかりの私が「何となくおもしろい」と「いったいこれは何だろう」で読み進めたK&Rの本があったと思います。そしてまた、まったく意味がわからない「配列」と「ポインタ」で悩んで悟ったソースコードというものの理解もまた、私自身が執筆するときに大きな助けとなりました。

たとえ、何の役に立つのかわからなくても構いません。「おもしろい」という感覚、「いったい何だろう」という好奇心、そして意味がわからなくて行き詰まったときに「何がわからないのだろう」というメタな発想を持つことは、長い目で見ればはかりしれない価値を持つことがあるのです。

「おもしろいと思った技術書」というキーワードから、ちょっとだけお話しさせていただきました。自分語りになってごめんなさい。

2年

利用規約プライバシーポリシーに同意の上ご利用ください

結城浩さんの過去の回答
    Loading...