30歳からのプログラミング

30歳無職から独学でプログラミングを開始した人間の記録。

『Cプログラミング入門以前 [第3版]』を読んだ

プログラミングを学び始める前に押さえておくべき基礎知識を学べる一冊。
コンピュータやプログラムが動く仕組みをちゃんと理解しなければいけないと感じており、その一環で読んだ。

tatsu-zine.com

著者が執筆した『基礎からわかるTCP/IP ネットワークコンピューティング入門 第3版』がよかったので、本書も手に取った。
『基礎からわかるTCP/IP ネットワークコンピューティング入門 第3版』では、コンピュータネットワークを学ぶためにはまずコンピュータの仕組みを理解する必要がある、という考えに基づき、序盤でコンピュータの説明が行われる。
本書も同様に「C でプログラムを書くにはまず、コンピュータの仕組みを理解していたほうがいい」というコンセプトで、より初心者向けに噛み砕いて説明している。
プログラミング自体が初めてという読者を想定しているようで、かなり丁寧な説明になっている。

『基礎からわかるTCP/IP ネットワークコンピューティング入門 第3版』はコンピュータの説明をしたあとにネットワークについて学んでいくが、本書では C そのものの話はそれほど多くない。
本書の中で著者も述べているが、本書だけ読んでも C を使ってプログラミングできるようにはならない。
だが間違いなく、本書の内容を理解していたほうがその後のプログラミング学習がスムーズになると思う。
文字列なども内部的には全て数値で表現されていること、変数を宣言するとメモリに変数の領域が割り当てられること、データそのものをコピーするのではなくデータが入っているメモリ領域の先頭のアドレスを受け渡しすることで効率がよくなること、そういったことを知っておくことで、実際にプログラミングを行う際のルールや挙動を理解しやすくなる気がする。というか、そういう知識が欠けていると、例えばmallocの挙動などもよく分からないのではないだろうか。

図が多いのもよい。特に上記したメモリの割り当てなどは、図があることでかなり分かりやすくなる。