Scribble at 2022-06-13 18:07:57 Last modified: 2022-06-14 15:06:33

C 言語のテキストを読むときに、古い教科書に目立つ特徴としてプリプロセッサへの命令が省略されていることに気づく方もいるだろう。「#include <stdio.h>」を冒頭に記述せずに "Hello, world!" の初歩的なプログラムを紹介しているような事例だ。たとえば、僕が愛読していた Deitel 親子の『C言語プログラミング』もそうだったし(彼らの名誉のために言っておくと、原著では何回かの改定を経て、現在はプリプロセッサ命令を省略しないコードに改められている)、『C言語入門』("The C Primer" の翻訳)もそうだ。これは、例えば LLVM + Clang の環境でコンパイルしてもエラーが出る。しかもダイテル親子の本では、わざわざ標準ライブラリを使うなら先頭に記述するべきだと解説しておきながら、自分たちは省略していて、しかも序文には動くプログラムを掲載していると宣言していたりする。

もちろん、僕はこういうのに慣れている(プログラミングではないが、数学のテキストなんて大体が非論理的で説明不足の文章が大半を占める)からいいとしても、得てしてプログラミングや数学に不慣れな人に限って、体系的な観点での首尾一貫性のなさに一つでも触れると、幻滅して読む気を失うものだったりする。したがって、人文系の学科にいる人々が数学書やプログラミングの本を「読みにくい」とか「不慣れだ」と感じる理由の一部は、敢えて言えば自称「理系」の著者に限って非論理的で不合理な文章を書くからなのだ。要するに、「文系の人には難しいかもしれないが」などと書いてる連中こそ、数学や物理を厳密に理解して文章にできない、文系だの理系だの言う以前の能力が劣っている、ただの計算人間にすぎないのだ。

もちろん、数学の素晴らしい教科書はたくさんある。例えば松坂和夫氏の著作は有名だろう。ただし、それは数学プロパーが専門家の立場で味わうような観点から評価されていることが多い。僕は、松坂氏のテキストも良いと思うが、上野健爾氏の『代数入門』(「現代数学への入門」シリーズ)の方が丁寧に書かれた良い教科書だと思う。実際、上野氏は高専の教科書も書いている。

ということで、テキストにはたいてい不備があって、それゆえ何回も改訂する必要があり、アメリカの教科書のように up-to-date とするだけが目的なのではなく、単純に説明を改善するためにも書き直すべきものだと思う。日本の教科書のように、いちど印刷して売りさばいたら終わりというのでは、いつまでたっても良い教科書なんて学界全体で生み出せない。プログラミングについても、ダイテル親子のように何度も教科書を改訂している人々の著作物ですら、冒頭で紹介したように〈きちんとした〉本を書くことは難しい。しかし、だからといって簡単に「こんな本じゃ勉強できない」と投げ出すのも勿体ない話だし、そんなことをしても「こんな本」じゃない教科書が宇宙に存在しない可能性だってあるのだ。本を書いているプロパーの人々も、しょせんはものを書くアマチュアであり、何十年と書くことに鍛錬を積んできたプロのライターと同じほど周到な文章は書けないものである。

寧ろ疑問に感じるところがあれば他の手に入る資料や本を対比してみて、自分のノートには正しいことを書き込めば良いのだ(何かを体系的に学ぼうとするときは、必ずノートを取るべきだ。サヴァン症候群の患者みたいな驚異的な記憶力でもない限り、ノートを取らずに読み進めるだけで何かを会得できるなんて、そんな傲慢な人間にシステム開発や数学の仕事は任せられない)。結局のところ、自分が作るノートが最強の教科書なのである。そして、だいたいにおいてそういう自分で作ったノートが思い込みの記録になっていないかどうかなんて心配する必要などないのである。要は、それを元にして成果を出せばよい。それでノートや学んだ経験の価値はわかる(実績と言えるほど素晴らしい成果である必要はない)。成果も出せない人間に、勉強した甲斐があったかどうかなんて分かるわけがないし、そうすることでしか価値は分からないものだ。成果を出すことによって、間違ったことを学んでいたことを知ったり、あるいは学んだことを間違ってノートにまとめていたと分かって、そこで初めて修正できる。成果を出さない者には、たとえ間違っていても修正するチャンスなんてない。自力で〈正しいこと〉が何であるかを知っていて、それと自分の勉強した内容とを正しく比較して評価できるくらいなら、その人物は最初から勉強する必要などない見識をもっていたことになる。そういう矛盾を無視したり軽視するためには、自己欺瞞によって自分を欺くしかない。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook