このすみ技術ろぐ

とあるWebエンジニアが、技術や趣味について書くブログです。

プログラマーのためのコンピュータ入門が、コンピュータ周辺の基礎知識を身につけるのに良かったので、全力でオススメしたい

秋葉原の書泉ブックタワーに寄ったときに、たまたま見かけた『プログラマーのためのコンピュータ入門』が気になり、購入しました。

帰宅後さっそく読み始めたのですが、プログラマー向けに書いてあることもあり、自分に刺さる内容で久しぶりに読書で徹夜してしまいました。

レベル感も難しすぎず、新人プログラマーを中心に広くオススメできる内容だと思ったので、所感を記します。

どんな本か?

本書の目的は、プログラミングを始めたばかりの学生の方、社会人になってプログラミングを始めた方の 「プログラミングは勉強してなんとなく理解できているけど、そのプログラムが動くコンピュータ自体って、どういう仕組みになっているの?」 という興味に応えることです。

これは私の所感ですが、基本情報技術者の勉強をしている方が、セットで読むのに最適だと思いました。

コンピュータが取り巻く周辺環境を、幅広く学べる

本書はオーム社から刊行されている書籍で、全11章の内容です。

主要目次
Chapter 1 「プログラムが動作する」とは?
Chapter 2 アセンブリ言語とCPU内部の動き
Chapter 3 CPU
Chapter 4 メモリと仮想記憶
Chapter 5 インターフェースと入出力装置
Chapter 6 コンピュータネットワーク
Chapter 7 グラフィックス
Chapter 8 外部記憶
Chapter 9 OSの起動と仕組み
Chapter 10 データの内部表現
Chapter 11 抽象化・仮想化
https://www.ohmsha.co.jp/book/9784274225314/ より

たとえば第1章では、『スクリプト言語とは何か?』『高水準と低水準の違い』といった内容を学びます。 アセンブリ言語まで踏み込んでいる点がとても興味深く、内部まで解説しようという気合いが伝わります。

ちなみに私が本書の購入を決意したのは、入門系の本で『アセンブリ言語』を扱っているのは珍しいと思ったからです。

内容が難しすぎないから、新人プログラマーがコンピュータ周辺の基礎知識を身につけるのに良さそう

本書の内容は、レベル感で表現すると『基本情報技術者』に近いです。 そして本書では、よりプログラマーに寄り添い、かつ具体的に記述されています。

たとえばCPUの章では、クロック周波数やCPUのコア数を、実際にWindowsのタスクマネージャーで確認します。 文字コードの解説では、実際のテキストファイルのダンプ結果を例にして、「0D 0AがCR+LF」などの解説があります。

なお、本書内にも画面キャプチャが適宜掲載されているため、手元にパソコンがなくても読み進めることは可能です。 ちなみにタスクマネージャーの例を挙げましたが、とくにOSをWindowsに限定した本ではないので、普通にLinux(Unix)コマンドを使った事例も登場します。

深くまでは立ち入らないスタンスで書いてあることもあり、新人プログラマーでも読める難易度に抑えられている点が、すごく良かったです。 プログラマーにとって約立つコンピュータ周辺のリテラシー知識を、幅広くキャッチアップできる内容だと思いました。

読み進めていると、自作PCが作りたくなるワクワクを感じる

『インターフェースと入出力装置』の章では、とあるマザーボードを例に、実際にどんなインターフェースがあるのか解説します。 読み進めていると実物が見たくなってくるので、自作PCが作りたい気分になってきました。

本書は歴史を踏まえて解説しているため、PS/2やシリアルポートをはじめ、いわゆるレガシーインターフェースの解説も少し含まれています。

私はTera TermをSSHの接続クライアント以外で使った経験はなかったので、シリアル(COM1:通信ポート)接続でTera Termを使う事例は新鮮でした。

技術的探究心が刺激される分野を探してみよう

本書はコンピュータ周辺の基礎的なリテラシーを身につけると同時に、羅針盤のような役割を果たしていると感じました。

たとえばコンパイラに興味を持った人はコンパイラを深堀りしたり、ネットワークに興味を持った人はネットワークを深堀りしたりと、技術的探究心を感じる方向性の見定めに役立ちそうです。

ちなみにWebエンジニアであれば、本書に登場するデータベースの知識だけでは不足しているので、専門書での補強が必要といった職務的な補正も加味しつつ考えると良いと思います。

あえて欲を言えば、「この分野が気になった人には、次のステップにこの本がオススメ」という、次の一歩が書いてあるとなお良かったかもしれません。

まとめ:新人プログラマーにオススメの1冊

コンピュータ周辺の知識が幅広く解説されていることもあって、新人プログラマーが1年目に読むべき本の1冊に良さそうです。

レベル感は基本情報技術者に近い印象を受けたので、基本情報技術者の学習とセットで読むのが良いかもしれません。

コマンドの実行結果や画面キャプチャが豊富に掲載されていることもあり、手元にパソコンがなくても気軽に読み進めることができますので、気になった方は読んでみてはいかがでしょうか?