入門(書)について…… 


 プログラミングを入門する、と、いうことを考えたとき、C言語が入門しやすい言語かというと、疑問はあります。
 pascalがいいという人もいるでしょうし javaがいいよ、という人もいるでしょう。
 が、現状の使用され具合、とくに仕事/就職ということを思えばC言語で入門するが現実的な選択の一つだとも思います(もはや必要とされるのは C++ かもしれないけれど)。

(でも実は、C/C++言語で、書くだけでなく、デバッグする、ということまで含めて考えたとき、アセンブラから入門したほうがいいんじゃないか、と、思う面はあります)

 また、Cを入門する、と、いう場合では、すでに他の言語を習得している人もいれば、コンピュータのことを全く知らない、一般的なコンピュータ(Windows)の扱いさえ慣れてない人もいるわけです。
 もちろんそういう人は、まずコンピュータの使い方や基本的な考え方(CPUという存在や、メモリとHDDの違いやファイルやフォルダ/ディレクトリといったことなど)から覚えていかなければなりませんし、エディタの使い方、DOS窓(コマンドライン)やコンソール環境(shell)の使い方も覚えないといけないでしょう。

 入門のしかたも、大学や専門学校の授業で、というのもあれば、会社などで回りに先輩がおり指導する担当者のいる環境もあれば、基本的に一人で独学というのもあるし、独学でも回りに一人でも経験者/先輩がいるのといないのでは違ってくるでしょう。
 もちろん、その人の性格/性質から、人から話を聞くのが上手な人もいれば、本から吸収するほうが得意な人もいるでしょう。
 そうはいっても、やはり一人でも相談できる相手がいるのといないのでは理解のし易さは違ってくると思われますが。
 
 さて、よほどのことがない限り、入門時には、入門書の類が一冊はあったほうがよいものです(雑誌の連載とかも手ですが)。

 幸いC言語は普及した言語で山ほど入門書があり、そのうちの何冊かは非常によい本が存在します(言語によっては、わかりにくかろうと、それ一冊しかない、ということもありえるので)。
 が、山ほどある入門書のすべてが良品だとは、いいきれないのも現状です。
 
 ただ理解度は、とくに入門初期における理解というのは非常に個人差のあるもので、どんなに良書の丁寧な説明を読んでもわからなかったことが、多少の嘘は方便でバッサリと書ききったモノのほうがわかり易い、ということは多々あります。
 
 そういう意味では、入門しやすい本というのは人それぞれで、例えある人がわかりにくいと感じた本でも他の人には非常にわかり易い本である可能性はいくらもあり、入門しやすい本もいくらでもあるような気はします。

 ただ、そうは言っても、実際の入門書は、ただ単純な入門だけに使われるわけでなく、しばらく、あるいは一生、座右の書として、忘れたことを見返したり、文法上のややこしいことを確認したりするのに使われる場合もあります。

 もちろん、入門は入門、実用は実用で、入門書をとっとと捨て他の便利な本に乗り換えられる人もいますが、あるいは誰にとっても初歩の初歩的なことしか書いてなく使い込みようもない本で他のもう少し詳しい(レベルの高い)本へ移る気にさせるモノもあるでしょうが、人によっては、とくに技術書の類で一度一通り目を通した本というのは、少々読みづらかろうと、世間評価が悪書であろうと、ろくに読んでいない良書よりも便利な存在で、使いこまれる可能性が高い存在です。愛着というレベルだけでなく、一度使用していればどこに何が書いてあったかの記憶のかけらがあるものですから。

(ついでに。人に入門書を薦めるとき、普通は、実際に自分が使って入門できたものか、自分が目を通したことのある本になると思います。とくに直接人に教える場合、自分の知らない本を勧めるのは手間を増やすだけなので、自分が読んだことのある本を利用することになるものと思います。他に良い本があるとしても、少々不味い点があろうと教える側が把握できないよりかは把握できた状態のほうが結果的に入門者にとってよい状況でしょうから)

 だから、わかりにくい、とか、読みにくい、と、いったレベルであればそう問題ではないのですが、使い込む過程で入門当初ならば気にもしなかったことを意識しその記述が誤りだったりして読者に嘘を教えることになるような本は、どんなに入門しやすい本だったとしても、よくない本、といえるかもしれません。

 その誤りは入門時用の方便の場合もあるでしょうし、著者が勘違いされている場合もあります。実際のところC言語の仕様には人が自然に感じるルールと合致しないルールがあるためで、C言語の責任といいたくもあり、致命的な間違いになるものもあれば多少間違えていたところで問題のないこともあるわけですが、どうせ入門するならば、間違ったことを見ずに覚えずにすんだほうがよいのに、と、思うわけです。

 また、入門時や小規模のプログラムでは問題にならないことでも、大規模な複数人で行うプログラムを組む上で、やってはいけないことや出来るだけさけるようなことを、無頓着に例に出したり、あまつさえ推奨したりするような本は、仕事としてプログラムを組む人からすると恨みたくなるような本と言えるでしょう。

 と、いうことで、入門するだけならば沢山本はあるけれど、入門しやすそうで、かつ、使いこんでも安全、お仕事でも大丈夫、という本は、残念ながら限られてくるような気がします。

 て、書いてみたけど、もちろん、一番大事なのは、本人のやる気です。何するにしてもそうなんですが。

 どんな、いい入門書を手に入れて読んだとしても、実際にプログラムを書いてみないと、入門書の例を自分の手で入力し実際にコンパイルとかしてみないと(すべてでないにせよ、ね)、読んでわかった気になっただけで、実際には使えない、ということがままあります。

(入門書等の不特定多数を相手にしたものの場合は、どうしても、大前提として読者にやる気がある、としなければ話が進みませんし、もちろん読者のやる気や興味をかき立てる持続させる工夫はされる方はされるでしょうが……少なくとも、一冊丸々を読んでもらうことを前提にせざる得ないでしょう……摘み読みや途中で投出した読者の勘違いなどのフォローまではできんでしょうし)。


1999-06-09




■ ついでに2ch関係で、入門書などへ言及のあるスレッドへのリンク・メモ 混沌とした情報源なんで暫定的に。
2002-01-14