programming

プログラミング関係のリーディングリスト

My Reading List Of Development

まえがき

どんな本を読んできたかということを示したり、人に勧めたりするときに便利なので作成したエントリです。 いったんプログラミング関係のものに絞って作成しようと思います。
(最終更新:2021/1/10)

いま読んでいる本

現在、読書中のものがあればいったんここに置きます。

インフラ/ネットワークエンジニアのためのネットワーク技術&設計入門

マスタリングTCP/IPの次の基礎知識習得として。クラウドをやるにあたり、ベースとなるオンプレミスの知識が不可欠と感じたため、選書。

エリック・エヴァンスのドメイン駆動設計

DDDは今後の業務で重要となる概念だと説明を受けたため購入。まだ手をつけられていないが高額なのでとりあえずエイヤで買うだけ買った。

基礎知識系

特定の言語というよりは、デベロッパーとして最低限の素養を得るための書籍。

マスタリング TCP/IP

今後、ネットワーク関連の知識が重要となる環境に行くことが予想されるので、選書。知人のネットワーク関連のエンジニアにSlackで「なんか全体感をざっくり掴むのによさげな本ないですかね」と投げてリコメンドされたうちの1冊。非常によくまとまっていて、AZ-900試験を受ける前の本当の基礎知識の習得として読んだ。

コーディングを支える技術

帯の「なぜ言語設計者はこの文法を作ったのか」というのが、まさに分かる本。しばらくプログラミングの学習をしてきて、字句解析だとか構文木だとか、そうしたコンパイラがどうやって動作しているのかといった知識があまりないことに気付き、選書した。完全初心者だとさすがに敷居が高いかもしれないが、情報系の学科を出ておらず体系的にCSを学んでこなかったものの、これからプログラミングについてより深堀りしたいという人には胸を張ってオススメできる良書。

リーダブルコード

言わずと知れた有名本。個人でしかコードを書いてこなかったので、今後の人生でチーム開発などに携わる可能性を考慮して一読。

テスト駆動開発

こちらも有名本。 個人でプログラミングを学んでいると、なかなかちゃんとしたテストの書き方もわからないし、その重要性に気付けないと感じた。 また、自分のスケールアップに絶対的に必要になると考え選書した。

キタミ式イラストIT塾 基本情報技術者

自分は情報系学科の出身ではないため、CS 知識を体系的に学んでいない。 そのため、実力指標となる基本情報技術者の資格取得のため選書。 読んでみると意外と知っていた内容も多く、自分にできないはずがないと思えるようになった。 悲しいことにコロナ影響で試験が飛んでしまったため、ちょっとモチベが下がっている。

競プロ系

アルゴリズムという言語によらず一生使える最高の知識とテスト形式での継続的なアウトプットができる競プロはめっちゃ楽しい。

プログラミングコンテストチャレンジブック

いわゆる蟻本。 競プロを始めるにあたって界隈のバイブルなので、選書。 しかし、中盤辺りから普通に難しいのでコンテストに出つつ、基本から徐々に読み進めていっている。

プログラミングコンテスト攻略のためのアルゴリズムとデータ構造

いわゆる螺旋本。 蟻本と内容はかぶるが、多角的に解説を読まないと到底会得できるレベルではないと感じ選書。

問題解決力を鍛える!アルゴリズムとデータ構造

2020 年 10 月に出たばかりの新作。通称「けんちょん本 」。 Qiita に競プロ関連の有益記事をありえないボリュームで投稿しているけんちょんさんの書いた本。 上 2 冊より、利用シーンや考察に重きが置かれて書かれており有益。 しかし、やはり後半はレベルが高く、自分の実力が追いつかないので消化しきれていない。

特定言語・分野

難読化シェル芸の世界

リーダブルコードの真逆をやるための本。 競プロでコードゴルフをするのにもハマっているので、その知見が得られるかと思い、選書。 記号だけであらゆるシェルコマンドを書いたり、想像をはるかに超えるシェル芸が紹介されている。 直接実務に使ったら磔にされるような本だが、普通にシェルの勉強になった。

Python クローリング&スクレイピング

VBA でスクレイピングをやってほしいという案件が多かったが、さすがに大変すぎるのと、基礎部分が不足している感があったので王道を学ぶために選書。 Python でのスクレイピングに限らず、curl や wget を使う超基礎の部分から、文章形態解析まで関連知識を広く解説してあり非常に勉強になった。

SwiftUI 徹底入門

プログラミング勉強をしようと思ったときにアプリ開発がアウトプットとして身近でいいかな、と思ってまず購入した。 storyboard ではなく最新の SwiftUI が扱えれば強いと思ったが、アップデートが多く基礎がなっていない状況でのキャッチアップは困難に感じた。 汎用性や使いやすさという意味で React のほうが自分にあっていると感じたので、一通りはさらったものの直近は注力していない。

詳解 Swift 第 5 版

Swiftのアップデートが多く、ネットに良質な記事が少なかったので辞書代わりに購入した。 しかし、Python や React が楽しくなってしまい中盤移行、放置してしまっている。

ExcelVBA 実戦のための技術

本格的にプログラミングをやりたいなら OOP をちゃんとサポートしておらず、言語仕様として完全にレガシーな VBA をやるのは一切おすすめできないが、Excel を業務で使わざるを得ない人なら非常に役立つ本。 この本の内容が理解できていれば、クラウドソーシングで募集されているような案件をこなすのは造作もない(ただし不便な言語なので実装時間自体はむしろ長くなる)。 基礎的な考え方さえ習得してしまえば、VBA でできる操作はほぼネット記事で実例が網羅されており、他の言語のように新しい機能が実装されることも皆無なので、ある意味では安泰である。

番外編

プログラミングに関連するがプログラミングが主題ではない本。

なぜ、あなたの仕事は終わらないのか

学生の時点でソフトウェア開発により億単位のフィーを得て、なおも爆進し続け米国本社で Windows95 のリリースに大きく関わった一流プログラマがいかにして仕事を推し進めるかについて書いてある本。 プログラミングに限らず、人生でより生産性を高めるのになにが大事かよくわかる。

あとがき

こういった記録は、随時追加していきたいと思います。