📖

2023年読んで良かった技術書Top5

2023/12/31に公開

こんにちは。uenikiです。2023年も残すところ後10時間となりました。
今回は2023年に読んで良かった技術書を紹介します。マネジメント系の本は抜きにして、ピュアに技術的な本を紹介します。これまであまり振り返りというものをせずに生きてきたのですが、たまには振り返りというものをしてみたいと思います。
2023年はたくさん言語化をしてきて、言語化することの気持ちよさにハマりつつあるので、アウトプットしてみようと思い立ちました。

Top5のご紹介

なっとく!関数型プログラミング

https://amzn.asia/d/3EcKFRM

まずは関数型プログラミングの入門書である本書を紹介します。人生を変えてくれる予感のある本に数年ぶりに出会った気がします。何よりも読んでいて楽しく、ワクワクします。
関数型プログラミングの原則から始まって、関数型独自の概念を一つ一つ丁寧に、なぜその概念が必要なのか?を解説してくれています。命令型の問題点を一つ一つ解決するように宣言型のパラダイムに誘ってくれる語り口が気持ちがいいです。
2023年からRustに真剣に取り組み始めたのですが、Rustでも取り入れられている関数型の概念が理解できるようになりました。Rustをまた一段と楽しくさせてくれたことに感謝です。
ただ、一応注釈を付けておくと、私自身は、関数型プログラミングが今後支配的になるとは考えていません。一方で、そのパラダイムは徐々に様々な言語に取り入れられ、一定の市民権を得ています。この本を読み通すことで、現代的なプログラミングを理解する上でも非常に重要な知識を身につける事ができるでしょう。

コンセプトから理解するRust

https://amzn.asia/d/a36HfV4

こちらはRustの入門書です。Rustの言語仕様のコンセプトを解説してくれます。一段深くRustを理解するための入口に立たせてくれる本です。本書の内容だけでは、あくまでRustの言語仕様の初級というレベルですが、きっとRustが怖くなくなります。私自身も疑問にぶち当たるたびに何度も立ち返って読み直しています。
Webアプリケーションを作ってみる系の本(例えば、『Webアプリ開発で学ぶ Rust言語入門』)を読んで手を動かしてみた後に読んでみると世界が広がって見えるかもしれません。

並行プログラミング入門 ―Rust、C、アセンブリによる実装からのアプローチ

https://amzn.asia/d/09HJ38c

Rustを本格的に勉強し始めてから、改めて並行プログラミングに興味を持ちました。Rustは、並行プログラミングにおいてもメモリ安全性を意識した記述が可能なので、深く学び始めると自然と並行プログラミングの仕組みに興味が湧いてきました。
この本は、Rustを使って解説された本ではありますが、Rustに限定された内容を扱っているわけではありません。ですが、本書がRustを採用した理由が読み進めるほどに理解できて、Rustの素晴らしさが身に染みます。

ある程度はRustの知識があることが望ましいので、上記の『コンセプトから理解するRust』ぐらいは読んだ後に挑戦してみるといいでしょう。
また、一冊では難しすぎるという方(私がそうでした)は、最近出版された『詳解 Rustアトミック操作とロック―並行処理実装のための低レイヤプログラミング』と一緒に読むのがオススメです。

図解即戦力 暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書

https://amzn.asia/d/4KiaQcM
このシリーズはどれも本当に分かりやすくて素晴らしいですね。現代では必須の暗号と認証についての知識が網羅的に学べます。
日々意識することなく暗号技術の恩恵を受けている私たちですが、システムを作る側ともなれば、知らないでは済まされません。暗号技術の一番の弱点は、それを扱う「人間」だからです。システム提供者が正しい知識を持っていないが故に、要素技術を上手く扱えず、セキュリティ事故を起こしてしまった事例は後を絶ちません。本書では、複雑な数学の話に立ち入りすぎることなく、暗号技術の原理・原則を理解できるようになっています。

同じような内容なら、『現代暗号技術入門』や名著『暗号技術入門』もオススメです。まずは好きなものから手にとって、暗号技術に入門してみるとよいでしょう。

システム設計の面接試験

https://amzn.asia/d/7oS22kB
典型的なシステム設計パターンが学べます。面接試験とありますが、面接を受ける予定のない人にも読んで欲しい良書です。かなり網羅的で、ここに書いているパターンさえきちんと理解できていれば、ちょっとしたWebサービスぐらいならなんとか扱えるだろうと思います。図もたくさんあって非常に親切です。
一つ一つの要素の深堀りは各自でやる必要があるでしょうが、この本で大枠を掴むことができれば、その後の学習がしやすくなること間違いなしです。個人的には、この本を読んで全く理解できないことはなかったことで、自分の基礎力がある程度あることを確認できて自信が持てました。

まとめ

振り返ってみると、今年は読んだ技術書が10数冊と例年に比べると少ないことに気が付きました。その分アウトプットの数は増えたので良しとします。これまではインプット過多だった気がしますが、ここから数年はアウトプット過多ぐらいの勢いで生きていきたいと思っています。

おまけ(ちょっと宣伝)

ChatGPT/LangChainによるチャットシステム構築[実践]入門

個人でやっている勉強会発でしまさんが『ChatGPT/LangChainによるチャットシステム構築[実践]入門』を出版しました。
https://amzn.asia/d/29vSx75

個人的には、読む前からある程度知っている内容だったので、今回の趣旨からは外れると思って紹介しませんでしたが、LLMアプリケーション開発の基本を理解できる非常に良い本です。LangChainは変化が早く、書き方などは古くなってしまう恐れはありますが、基本的な考え方はしばらくは通用するでしょう。自社でも2023年はLLMアプリケーション開発に取り組んで、2024年はさらに加速するつもりでいるので、この分野は非常に注目です。

LINE botを題材に学ぶRust Webアプリケーション開発

https://techbookfest.org/product/fri4ZSJrecWpUUbjN4Errz?productVariantID=fhcEyfFusnYvv8nWc1mHqf

こちらは私も共著で執筆した本です。ついに長年の夢だった技術書典での出版が叶いました。内容については多くは語りませんが、RustでLINE Botを実装しています。Webアプリケーションの基礎を学んだ方が、もう少しガッツリRustを触ってみたいと思ったときに手にとっていただきやすい内容になっているかなと思います。

Discussion