7月に読んだ本

 

この月ぐらいから、重めの、技術について書いている本と、設計哲学だったりノウハウ本みたいな比較的読みやすい本を交互に読むようになった。

 

 

とても良かった。コンピューターという計算機が二進法の計算をしていて、それが積み上がっていくと実際に使っているような応用プログラムになるということ自体は知識としては持っていたが、そこのブラックボックスであった部分が少し理解できるようになった。特に、理論上の計算のモデルというよりも、電子回路で実際の物理世界の法則の中でどのように動かすのかという話が多くて新鮮に感じた。

この本を読んで、一番下の低レイヤの簡易的な構造を見たことで、それ以外のレイヤーのブラックボックスになっている部分の仕組みに興味が出るようになった。

 

 

いくつか哲学が書かれていたが、巷でよく言われているベストプラクティスみたいなものはここから来ているんだなと思った。早く試作品をつくることだったりは実際に意識したい部分である。特に考えすぎて手が動かない時とかは、作って失敗するサイクルを回す方が最終的に良いものができる感覚がある。

 

 

とても良かった。この本を読んで、一言にソフトウェアの文脈で「テスト」としてコードを書いたとしてもいろいろな種類があるんだということを初めて認識した。種類と言っても一般的によく言う開発段階でのテストの種類といったものではなくて、テストを書くとしても意図を意識してテストを書くべきだと思った。テスト駆動開発で書く種類のテストは基本的に「動作チェック」や「振る舞いのチェック」といった「自分の意図しているように動いているか」の確認の意味合いが大きいと思う。また、テストを書くにあたって自分の書くコードの第一の利用者になることから、コードのインターフェイスをまず考えるようになるのも良い習慣につながるのではないかと感じた。

実際に業務でのコードをTDDで書いて見たが、ミスも発見しやすく、良いものができた。TDDのプラクティスを実践する中で得られる習慣みたいなものは個人的にとても役に立っている。

 

一度読んだことがあったが、中身を忘れてしまったのでもう一度読んだ。何か、学習においておおよそのベストプラクティスは決まっている、そして世の中に出回っている気がしていて、自分としては受験勉強等で身につけたやり方でおおよそことがことが足りている様に感じている。書いていることはすごく良くて考え方として勉強にはなるが、特に新鮮なことは書いていないなと感じた。本自体はすごく考え方として勉強にはなるんだけど。

 

本当は「はじめて読む486」の方を読みたかったが、いきなり読むと難しい場合もあるそうなので、こちらを先に読んだ。

とても良かった。「CPUのつくりかた」でCPUが電子回路上でビット列を使い、データ、命令としてどのように実行しているかを理解することができたが、それより高いレベルの話として、実際にCPUでどのような命令が用意されていて、実際にレジスタやメモリへの命令を通してプログラムをどのように動作させるのかがより具体的に理解できたと思う。またCPUのアーキテクチャによって用意されている命令が違い、それが性能の差につながるといったことも理解しやすかった。

 

 

低レイヤについて学ぶと、ブラックボックスがなくなっていく感覚がありとても楽しいのでシステムプログラミングであったり、ネットワークプログラミングにも興味が出てきた。