【雑記】これまで勉強した書籍を振り返る（～2024年版）

こんにちは、arcadia13です。

私事で恐縮ですが、新卒入社した職場があまりに激務でした。
そのため、長らく執筆の余裕が時間的にも体力的にもありませんでした。
しかし、このたび転職をしたのでその余裕が生まれました。
これから少しずつ記事投稿を再開しますので、どうぞよろしくお願いいたします。

今回は、大学時代から今日までに学習してきた**プログラミング関連本**、**仕事術系の本**をまとめます。

ある意味、現時点での人生の振り返りとなります。


# プログラミング共通系
どんなプログラミング言語をやるにしても役立つものをまとめました。

## リーダブルコード

https://amzn.asia/d/abFd0E7

新卒の同期にオススメされて購入した本。
QiitaやZennにもレビュー記事があったり、割と有名です。

「分かりやすいコード」と何か。
それを作るためにどうするべきか。
個人単位で即実践できるものから、チーム単位で長期間かけていくものまで記載されています。

一度読んだだけで全ての内容を理解したり、劇的に成長するというのは難しいです。
しかし、実践すれば確実に自分のコードがプロのコードへ近づく。
少なくとも私にはそう断言できる素晴らしい書籍でした。

まずは変数名、関数名、インデント、コメントなど自分にできるところからスタートすることにします。


## プログラムを読む技術

https://amzn.asia/d/1EtxUGO

転職前に購入した一冊。
著者がご自身の経験をもとに、できるプログラマーがどのようにプログラムを読んでいるのかを言語化した内容です。

これは非常に参考になりました。
プログラム、書籍、ネット記事の読み方が確実に変わりました。
文章も懇切丁寧で、読み手の理解を促しながら内容が展開されていきます。
きっと自分の力に還元されるでしょう。


## 要件定義のセオリーと実践方法がこれ1冊でしっかりわかる教科書

https://amzn.asia/d/6du5sBm

システム開発以前の要件定義について学べる一冊。
要件定義の過程で考慮すべき内容、作成すべき書類について網羅的に学べます。
しかし、現場を描写した絵が少ないため場面を想像しにくいです。
一度でもお客さんと協議した経験がないと学習が難しいかもしれません。
実践ではなく座学をしたい方向けといえるでしょう。

私はお客さんとの協議の経験があるため、需要にマッチしていました。
コーディングというお仕事は、元をたどれば要望を持ったお客さんがいるはず。
末端であっても上流工程を意識して日々のプログラミングを進めたいですね。


# Java
Javaに関する書籍を一つだけ。

## 新わかりやすいJava オブジェクト指向徹底解説

https://amzn.asia/d/5ZA1RNs

大学1年の終わりに図書館で借りた一冊。
Java言語によりオブジェクト指向を学習するのが趣旨です。
そのため、Java言語の基礎まではそんなに教えてくれないのでご注意ください。

私の入学した学科ではJava言語が必修でした。
当時、私はプログラミングが全くできませんでした。
申し訳なく思いつつも、課題は友人に頼りっぱなし。
これはいけない、本気で学習したいと考えたときに出会ったのがこの本でした。

今思うと、これをやりきってから少しずつプログラミングが得意になっていった気がします。
少なくとも抵抗感が消えていきました。
また、今でも私のオブジェクト指向に関するベース知識となって支えてくれています。

もしかしたらこの本は、私のエンジニアとしてのバイブルかもしれません。


# Python
人気言語のひとつであるPythonに関する書籍をまとめました。

## ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
https://amzn.asia/d/24Ch4Dc

大学時代に研究室の輪読会で取り組んだ一冊。
当時、Pythonで機械学習をはじめるならこれと噂されていました。
その噂に間違いはなく、機械学習のロジックを理解し、実装をやりきった時の達成感は今でも忘れません。

この本には、実装というものに対する自信を私につけてくれた気がします。


## VTuberサプーが教える！　Python　初心者のコード／プロのコード

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


Python系VTuberの[サプー](https://www.youtube.com/@pythonvtuber9917)氏の書籍。
エッセンスを抜き出せば、いわばPython版のリーダブルコードといえます。
ただし、リーダブルコードと内容は全然違いますので、あれはあれで必ず読むのをオススメします。

「えぇ...VTuberの本？」という第一印象は捨てましょう。
Python初心者から中級者へのステップアップにつながる良い本でした。
今この本の内容が完璧に理解できている人、きっとそんなにいないと思いますよ？
騙されたと思って読んでみてください。

個人的に、ログ出力やモンキーパッチの実装部分を初めて知ったので非常に大きな収穫でした。


## UI
フロントエンドの方はぜひ学習したいUIに関する書籍をまとめました。
近年、飲食店ではLINEやタブレットによる注文、スーパーではセルフレジが多くなりましたね。
基本的な機能は全く同じなのに使いやすい、使いにくいに分かれています。
最近、これをUIの観点からちゃんと指摘できるようになれた気がします。


### UIデザイン必携
https://amzn.asia/d/eBpRQNl

入社当時4年目だった先輩にオススメされた書籍。
目に見えるデザインからしっかりUIの良し悪しを学べる良書なのではと思いました。


### 縁の下のUIデザイン
https://amzn.asia/d/eNSL28G

UIデザイン必携を読んだ後に興味があって購入した一冊。
タイトル通り、目立たないところだけど縁の下で支えてくれるUIデザインが紹介されています。
言われてみればその通りだと頷けるラインナップばかりでした。
UIデザイン必携の補完的な立ち位置として見るといいかなと思います。


# 仕事術
プログラミングから離れて普段の仕事に関する書籍をまとめました。
エンジニアも結局は社会人です。
仕事術を学ぶのは割とありですよ。


## 数値化の鬼
https://amzn.asia/d/31j4l4c

仕事ができる人は数値化を必ず行うという趣旨の一冊。
エンジニアの工程管理、工数見積もりはこの本に通じる部分がたくさんあるなと思います。
日ごろの工程管理が仕事術につながると考えると、末端のうちから工程管理を身に着けるのは非常に有用ですね。


## とにかく仕組み化
https://amzn.asia/d/enIdi6n

適切な仕組み、ルール作りは働きやすさや社員の成長を促す。
上に立つ人間は仕組み化に注力し、社内の仕事環境を整えるのが役目である。
たとえそれがプレイングマネージャーであっても。
若手こそこれを読んで、「雇われる」ことを俯瞰してみるといいかもしれません。
きっと何かが得られると思いますよ。


## 世界一流エンジニアの思考法
https://amzn.asia/d/28qxM0E

Micro SoftのAzure Function開発チームに勤めている方の一冊。
所属チームの方々の仕事ぶり、アメリカにおけるエンジニア企業の風土を話題に出しながら、生産性を大きく向上させるノウハウへとつなげています。
これ、正直皆さん読んでみた方がいいです。
今までの価値観が結構変わると思います。

個人的には、とにかく仕組み化と、本書籍を同時期に読むと相乗効果が得られると思いました。
前者が日本企業の雇用形態から仕事術を説くのに対して、後者は外国からのアプローチです。
両者を比較してみると、本当に仕事に対する価値観が変わると思います。


# まとめ
今回は、大学時代から今日までに学習してきたプログラミング関連本、仕事術系の本をまとめました。
こういう機会をあまり設けないので、いい振り返りになりました。
これから1年単位で実施したいなと思います。


# 終わりに
エンジニアをとりまく環境は大きく変わりましたね。
- 生成AIの誕生
- 高校の必修科目に「情報1」が追加
- テレワークの普及

大学時代、私はLSTMを活用した研究をしていたので、chatGPTのようなAIがいつか生まれることは想像していました。
しかし、成長スピードは想像以上。
ゲームキューブや、ニンテンドーDSのゲームですげーすげーと騒いでいた子供時代が遠い過去のようですね。

それでは、happy hacking !