エンジニア基礎力強化

最近、ネットワーク周りの知識を求められることが多く、自分の知識不足を痛感しています。大学では、情報理工系に所属して、カリキュラムとして情報理論などは学んだ記憶があるのですが、とんとネットワーク周りについては学んでこなかったのです。周りにはネットワークについて研究をしてきたような人が多く、周回遅れというような感じを抱いているのです。とはいえ、知らないことを知らないままでいることも出来ないので、良書と呼ばれている本を読んでいます。

今読んでいる、読んだもの、これから読もうとしている本はこの3冊です。

  • マスタリングTCP/IP入門編
  • マスタリングTCP/IP応用編
  • ネットワークはなぜつながるのか

マスタリングTCP/IP入門編は読み終わりましたが、これだけではどうにも物足りず応用編も購入しました。ただ、応用編のすべてを読み通そうとは現時点では思っておらず、ルーティングプロトコルを主に読んでおこうかなと考えいます。ネットワークはなぜつながるのかは、ふと目について購入した本ですが、大変わかりやすくそれでいて内容も濃かったため、一気に読み終わりました。この本の読書メモはまた別にまとめて公開しようと考えています。

ネットワーク周りの知識をつけようと本を読んでいると、そもそものエンジニアとして基礎的な知識が欠けているなと改めて気付かされるのです。どういったことかと言うと、学問だとコンピュータアーキテクチャと呼ばれる分野の知識です。OS(kernel)、CPU、メモリー、ハードディスク、GPUと言ったコンポーネントと役割は漠然と知っているのですが、例えばCPUがとのようにプログラムを処理しているのか、OS上でプロセスがどのように動いているのか、その辺りを詳しく説明することが出来ないのです。

この辺りの勉強方法としては、東大が公開しているオンライン講座を眺めてみるとか、Linuxのしくみという本を買いまして、プロセスの仕組みなどを学ぼうと思っています。また、コンピュータアーキテクチャ技術入門なる本が出版されているらしく、この本も買ってみて一読しようかと考えています。

技術本メモ

  • コンピュータはなぜ動くのか
    • コンピュータの中身を解説するため、まずコンピュータを作ってみようという節で、論理回路について解説。そして、アセンブリ言語の話、プログラムを表現するフローチャートの話、アルゴリズム、データ構造とオブジェクト指向について話が流れる。アプリケーションとして、データベースについて概要を、ネットワークでTCP/IPを説明。10章以降で、暗号化とXML、SE職について説明をする。
    • 中身をざっと確認した感覚だと、いま欲しい情報が含まれている本ではなさそうと思ったので、購入は見送り。