プログラミングを始める前の予備知識って結構多いな、という話

しつこく、「完全初心者のためのプログラミング入門」の話。

完全初心者のためのプログラミング入門

http://kmaebashi.com/programmer/beginner/index.html

だいぶ前ですが、以下のようなツイートをしたことがあります。

で、実際、「完全初心者のためのプログラミング入門」には「ファイルとフォルダ」の項を入れました。

ファイルとフォルダ――完全初心者のためのプログラミング入門

Windowsを毎日使ってWebを見ていたとしても、ファイルやフォルダのことは知らない、エクスプローラーなど起動したこともない、という人は多そうですし、仕事でWordなりExcelなりを使っているからファイルやフォルダのことなんか当然知っている、という人でも、拡張子をデフォルトのまま非表示にしていて思った通りのファイルを作れなかった、というケースがありました。だったらやっぱりここから説明が必要です。いくらなんでもこんなことは知ってるよ、という人は読み飛ばしてもらえばよいとして。

まあ、これくらいのことは最初から覚悟していたのです。でも、いざ書き始めて、BMI計算プログラムを作ったところで、「あ、ここで身長体重に全角文字を入力してしまってはまる人もいるだろうなあ」と思って『「文字コード」とは何か?』を書き始めたりしてまあ時間がかかることかかること。

「文字コード」とは何か?――完全初心者のためのプログラミング入門

文字コードとは何か、を説明するにしても、いまどきJIS X 0201(半角カナ)とかJIS X 0208(シフトJISとかEUCとかの文字セット)とかはいらんのではないか、いきなりUnicodeUTF-8でよいのではないか、とは思いましたが、発端が「身長体重に全角文字を入力してしまってはまる」ことを想定しているわけで、そもそもパソコンを使い始めてからずっとプロポーショナルフォントを見てきた人にしてみれば、これぐらい歴史を追わないと全角・半角の区別などというものがなぜあるのかわからないでしょう。

コンピュータを使う限り、当然、ビットとかバイトの理解も必要ですし(これがわからないと文字コードエンコーディングの概念もわかりませんし)、

ビット、バイト、2進数、16進数――完全初心者のためのプログラミング入門

いろいろ書いているうちに書き手の私がどうしても「処理系」という言葉を使いたくなるわけですが、そうなるとコンパイラとかインタプリタの話題も必要です。

コンパイラとインタプリタ――完全初心者のためのプログラミング入門

本編の、「UFOゲームを作ってみよう」という話題を書き始める前に、この辺でずいぶん時間を取られてしまいました。

それにしても、我々プログラマは、みんな最低限の知識としてこれぐらいのことは身につけているわけです。そりゃまあどんな仕事でもこの程度のことは覚えなければいけないのかもしれませんけれど、プログラマというお仕事も、結構な専門知識が必要であるようです。それこそ「底辺」と呼ばれるような仕事であっても。

自分の仕事に誇りをもって、「給料増やせ!」と叫ぶべきですね。