エンジニアの本棚卸し 2020

# 目的

自分がインプットしてきた技術関連知識の足跡整理。
文字にするとキリがないので、~~面倒ではない~~視覚的に集約されているという点で本棚の書籍写真でペタペタ整理。

# 足跡
##入り口はC言語
![C言語、C＋＋](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188787/280209d5-2ae3-8ba3-dadf-cb5e5f82bc3d.jpeg)

猫でも分かるC言語で自分が猫未満であることを悟り、苦しんで〜みたいな名前の書籍を読んだ記憶。
DXLibraryを使用してゲーム製作をしたり、遺伝的アルゴリズムでレースゲームのゴール時間を最適化したり、TCP/IPレイヤをイジったり、二度デストラクタを呼び壊したり、ダングリングポインタを参照して壊したり、壊したり。

- 独習C
- 新C言語入門
- 独習C++
- C++実践プログラミング
- プログラミング言語C++
- ロベールのC++入門教室

## Webアプリケーションに興味が出てPHPあたり
![PHP、JavaScript](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188787/851e6d01-02fb-6569-4e37-125d17f94df1.jpeg)
Webアプリケーションを作りたくてPHP（~~時代を感じる~~）。
当時はLaravelではなくCakePHP,Symfonyとかの時代。Cakeを使ってWebアプリケーションを作っていたもののフレームワーク特有のブラックボックに薄気味悪さを覚えたため、一旦それは捨ててMVCフレームワークの自作に舵を切り替えた。
その後、数年してからREST APIでバックエンドとフロントエンドを接続するみたいなものが流行りだしたときにLaravelとReactでチーム開発した。

## オブジェクトモデリングに興味が出てJava
![Java](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188787/a5dce911-3e8e-7b6f-910d-af6cf0967f1c.jpeg)
現実世界の写像（モデリング）ってなんぞ、と思いJava。
とやかく言われることの多い言語であるものの、複雑度の高いシステム構築においては安定している。

エンジニアとして知識領域を開拓する礎になった恋のキューピッド的な言語。

## OSが知りたいです
![OS](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188787/2dd14c37-c931-4bde-907a-a0f39415f422.jpeg)
私達人間に何を隠しているのOSさん、ということでOS。
LINUXプログラミングインタフェースは学生のときに夏休みを使って読み切った（覚えてないけど）。

## CPUが知りたいです
![CPU](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188787/7eaec727-985f-35ac-ddc5-473ba4d98a11.jpeg)
演算あたりの機構が知りたくてパタヘネ本とか、CPUの創りかたとか。
左のほうにある本はAPI設計やら、正規表現エンジンやら、Androidアプリとかに興味を持ったときの。

## 副作用のない言語？
![関数型](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188787/1ff524c9-0f6d-5e2a-04de-8ee355961f02.jpeg)
保守性や疎結合などの文脈で関数型言語に興味を持った（ように記憶している）。
最初はCommonLisp。本屋でリスプエイリアンと目が合った。

今はRustが好き。
メモリ安全、ゼロコスト抽象化、GCのない軽量なランタイム。

## 機械学習やスクレイピング、デバッガ
![P_20200929_205153.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188787/0e505fe4-1f1a-d56c-80ad-d4fff17d58a1.jpeg)
脳内シナプスによるネットワークを模倣ってなにを言ってるの、と興味を持ち自作系のお魚本から。
テンソルフローの計算グラフが作れないので基本Keras（~~に逃げた~~）。

その他、Pythonはスクレイピングやデバッガのカスタマイズなどでちょくちょく使う。

## 私はパケットになりたい
![ネットワーク](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188787/aa646a2b-889f-976b-5fcd-1366b777a941.jpeg)
ネットワークってなにそれどうやって制御してるの、知りたい。
MPLSなにそれ、剥がされたい。

## 攻撃は最大の防御
![セキュリティ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188787/fe09b6ed-b108-5cc7-2a8e-c59daa28a1c3.jpeg)
避けがたいクラッキングという中二病。
もちろん隔離された自分だけの環境で。

## コンピューティングリソースに対する抜本的な認識刷新
![コンテナとか](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188787/494e83cf-aa7f-ebf2-8c4f-cccc1ea65473.jpeg)
このあたりのコンピューティングリソースの変化はコペルニクス的転回（~~言いたいだけ~~）をもたらしましたね。

## マークアップとスタイル
![HTML](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188787/0eca7378-b711-8c7a-bdc1-f2a78c15aeea.jpeg)
あまり得意ではないものの、意思疎通を図るために必要なので最低限は知っておきたい。
右の砂川物理学は関係ない。

## DBさん腹のウチを見せてごらん
![DB](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188787/53cf792d-96d5-c2a1-adc0-c304902099ea.jpeg)
性能改善系のプロジェクトに配属されたついでにDB解体。

## 鳥になって鳥瞰したい
![アーキテクチャ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188787/f5545ac1-654a-5a4b-abb8-c1ae5a518dd4.jpeg)
システムの設計というものを真剣に考え始めたときに。

## 無限多味スルメ
![レビュー](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188787/72b73f36-b0be-2418-09da-df7babdd2562.jpeg)
実践UML、コード・クラフト、コードコンプリートあたりは読むたびに味が変わる。

## その他1
![コンパイラGC](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188787/776a00e1-879d-d3a3-e291-279954b220a3.jpeg)
リファクタとか、GC、コンパイラなど。

## その他2
![テストGit](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/188787/8bd76fa3-ac3c-a3fe-85e3-bd4dd5c6a557.jpeg)
テスト手法やらGitの仕組みやら。

# 振り返った所感
まだ埋もれた書籍はクローゼットに大量にあるものの、とりあえず本棚にあるもので振り返ってみた。

結論：**「頭でっかちになってはいけない」**

物事の正しさというものは話し手5割・聞き手5割の双方の責任のもとに成立している。
書籍においても同様に書き手5割・読み手5割。

誰かが言っていたらから正しいとか、あの本に書いてあったから正しいのような
話し手や書き手10割の責とするような姿勢でいてはいけないな、と最近は特に強く感じるようになった。