読者です 読者をやめる 読者になる 読者になる

UTALI

書き溜めておいた技術記事や旅行記のバックアップです。

ダメなプログラミング入門書の特徴

環境構築について書いていない

僕が見てきた限りではプログラミングに挫折する理由はプログラミングそれ自体の難しさより、プログラミングをするための環境構築がうまく行かないことに起因することが多い。特にWindowsでは(最近ではPower-Shellに統一され、マシになったそうだが)、オープンソース系の言語を動かすための環境作りに苦労するだろう。僕自身もPythonをWindowsで動かそうとしたときになかなかうまく行かずに苦しんだ記憶がある。

実際に初心者向けを謳う非常に初歩的な入門書であっても、環境構築については、さらっと流す程度で済ませてある本が殆どだ。これでは本当の初心者は挫折することが必至だろう。

一般に、プログラミング言語を習得する最初の一歩は、Hello Worldを出すことであると言われる。これは別の側面からに見ればHello Worldを出すための環境構築が1つの高い壁になることの裏返しであるだろう。

逆に言えば、環境構築に苦労しない言語・環境はそれだけ初心者向けであると言え、REPL(コンソール)を利用することのできるスクリプト言語とデフォルトでRubyやPythonが利用出来るMac(OSX)の優位性が際立つだろう。

ストーリーを提示しない

残念な入門書にありがちなのは、本に一貫したテーマやストーリーがなく、ひたすら、言語仕様についてダラダラと説明を続けていく退屈な本だ。そもそも初心者は、なぜプログラミングを始めたいと考えるのだろうか?それは、ゲームであったり、Webサービスであったり、何かモノを作りたいと思うからではないだろうか?そのような背景を踏まえると何か具体的な目標、たとえば、簡単なWebサービスやミニゲームなどを作ることを、終着点として、プログラミング言語について解説を続けていく本が優れた入門書ではないだろうか?

プログラミング言語の設計思想について触れない

大抵のプログラミング言語は1人の優れた開発者が、既存の言語の欠点や足りないところを補うことを目的に開発されたことが多い。たとえば、C++はC言語の欠点であった標準ライブラリの不足やオブジェクト指向の追加を目的に設計された言語であるし、Rubyをやるのであれば、作者の まつもとゆきひろ さんが楽しくプログラミングができるように設計した言語であることに触れるべきだろう。最初に言語の設計思想に触れておけば、言語全体のおおまかな仕組みを理解するのに役立つだろうし、初学者にとって、一見不可解に見える設計も、実は理にかなったことであることが、明確に見えるだろう。

プログラミング言語C 第2版 ANSI規格準拠

プログラミング言語C 第2版 ANSI規格準拠