過去に読んだ中で特にためになった技術書10選

2021年6月20日 engineering

こんにちは、 @kz_morita です。

今回は,過去に読んだ本で個人的にかなりためになったり,面白かったりした技術書を 10 冊紹介します.

完全に個人の趣味趣向が入ってますが,書籍選びに迷っている人の参考になれば幸いです.

ためになった書籍 10 冊

CODE COMPLETE 上

CODE COMPLETE 第2版 上 完全なプログラミングを目指して

この本は,大学の図書館にあったのをたまたま見かけて読んだ本になります. より良いコードを書くにはどうしたらよいかといった観点で,命名の話などを通して良いコードについて学べる本です.

この本を読んだ当初は,チーム開発をしたことがなかったので動けばよいというコードを書きがちでしたがこの本を読んだことによってプログラムのソースコードは機会と人に向けて書くものという点を意識できるようになった本です.

アジャイルソフトウェア開発奥義

アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技

新卒のときに,チームの先輩におすすめしてもらって読んだ本です.

SOLID の原則を知るきっかけになった本です. それまでデザインパターンなどは軽く知ってはいたのですが,それらのデザインパターンがどのような原則のもとのパターンなのかが見えてきたのがとても勉強になりました.

たとえば 「Strategy パターンは,Open-Closed Principle (開放/閉鎖原則) にもとづくパターン」 などの関係性が見えてくると,それまで暗記対象だったデザインパターンに対して,適用する目的を含めた理解ができるようになったと感じています.

Game Programming Patterns

Game Programming Patterns ソフトウェア開発の問題解決メニュー

こちらの本は,スマホゲーム開発を行っていたときに気になって読んだ本でした.

タイトル名こそゲームプログラミングと謳ってはいるものの,実際はオブジェクト指向やデザインパターンについて書かれた本でした.

ゲーム開発で良くでてくるパターンを中心に紹介されていましたが,一般的に役に立つ知識も多かったです. たとえば 変数をもつ Singleton パターンが,ただのクラスにカプセル化されたグローバル変数だと言う点などについて指摘していてハッとする点が多かったです.

Clean Architecture

Clean Architecture 達人に学ぶソフトウェアの構造と設計

この本は,同名の設計のクリーンアーキテクチャのみの話だけではなく,もっと広い範囲でソフトウェアをどう設計していけばよいかといった点について論じられていた本でした.

なかでも,以下のような非常に胸が痛くなるような現実を突きつけられる内容が多々あり,これは読んでよかったなと思う本です.

「あとでクリーンにすればいいよ。先に市場に出さなければ!」開発者たちはそうやっていつもごまかす。だが、あとでクリーンにすることはない。市場からのプレッシャーは止まらないからだ。「先に市場に出さなければ」ということは、後ろに競合他社が大勢いるということである。競合他社に追い抜かれないためには、 これからも走り続けるしかない。 Robert C.Martin; 角 征典; 高木 正弘. Clean Architecture 達人に学ぶソフトウェアの構造と設計 (アスキードワンゴ) (Kindle の位置No.448-452). 株式会社ドワンゴ. Kindle 版.

読んだ感想については,↓ の記事にも書いているので良かったら参考にしてみてください.

書籍「Clean Architecture」を読んだまとめ

Webを支える技術

Webを支える技術 ―― HTTP,URI,HTML,そしてREST

この本は,Web について広く学べる本でした. テーマとしては,題名にあるとおり HTTPやURI, REST について書かれている本です.

なんとなくで理解していたところを一度体系建てて,整理するのに良かった本です.

RESTfulWebサービス

RESTful Webサービス

RESTful Web サービスは,「Web を支える技術」の中で参考文献として紹介されていて,面白そうだったので続けて読みました.

RESTについて理解したい人は一度読んでおくとよさそうな本です.

今となっては多少古い内容もありますが,RESTful がどういった思想にもとづいているのかが知れる良書でした.

ハイパフォーマンスブラウザネットワーキング

ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化

この書籍は,Webのパフォーマンスという観点からネットワークに関する幅広い知識が学べる本だと思います.

パフォーマンスに関する話もそうですが,そもそも,TCP, UDP とはといった内容から,WiFiなどのワイヤレス・ネットワークの話や,WebSocket, WebRTC についてなどかなり幅広い分野を扱っている本になります.

個人的には,LTE などのモバイルネットワークの話は,いままで全く知らなかった分野の話だったので面白かった記憶があります.

マスタリングTCP/IP 入門編

マスタリングTCP/IP 入門編

この本はかなり有名だと思いますが,ネットワーク,主に TCP / IP についてかなり幅広く学べる本になります.

内容もかなり分厚く読むのにひと苦労しましたが,ネットワークについてかなり幅広く学べました.

各章のざっくりと学んだことに関しては,以下のブログに記載しているので参照してみてください.

りあクト! TypeScript で始めるつらくないReact開発

https://oukayuka.booth.pm/items/1312652

業務で React を触る必要があり公式のチュートリアルなどを軽く見た後に,次にどうやってキャッチアップしようかといったタイミングで読んだ本です.

この本は,技術書典で販売されていた本なのですが,この本のおかげでかなりスムーズに開発にはいれたなという実感があります.

具体的に良かった点としては,以下の2点になります.

  • React で開発をする上で必要そうなライブラリが一通り紹介されている
  • 筆者の考えをもとに,ライブラリをどう選定したかが書かれている

フロントエンドは,エコシステムが充実していていろいろなライブラリが存在しますが,そのなかでどのような観点でライブラリを選んでいくかなどの指針が見れたことが非常に助かりました.

こちらも以前感想記事を書いたので良かったら参照してみてください.

りあクト!を読んだので感想とか

ゼロから作る Deep Learning

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

この本は,機械学習や Deep Learning を学ぼうと思ったときに手に取った本になります.

Deep Learning をライブラリを使わずにスクラッチで書いていくことによって,どのような処理をおこなっているのかという点について詳しく知れる本になります.

Deep Learning についてざっくりと,内容を知りたい方にはおすすめだと思います.

エンジニアのための時間管理術

エンジニアのための時間管理術

最後は,すこし経路の違う本ですが時間管理術といった本です.

働き始めたときに,うまくタスクの管理やスケジュールの管理が難しいと感じることが多く,悩んでいたときに手にした本です.

時間管理とはタスクを管理することという点や,タスクに追われるんじゃなくタスクを追うになるための具体的なメソッドが書かれてとても良かったです.

今読んでも非常に参考になる点がおおい本です.

まとめ

今回は以前に読んで個人的にためになった本を紹介しました.

読むのに労力がかかる分厚い本もありましたが,知識を体系建てて知ることができる本は非常に学習が進むと実感しています. 今後も面白そうな本をたくさん読んでいきたいと思います.

この記事をシェア