Webプログラマとして個人的に刺激を受けた技術書の紹介

# はじめに
個人的に読んでよかった、Webプログラマとして刺激を受けたと感じる技術書について、紹介をしていきたいと思います。
かなり厳選していますので、多分余程外れないのではないかと・・・。
(逆に言えば他の人が紹介してるやつも多いと思います。)

# リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
<img width="300" alt="リーダブルコード.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66330/7658618d-4ac9-ebe3-26c8-2f2c4abfbf51.png">

もう紹介せずとも皆さんご存知かと思いますが、やはりこれは外せません。
初学者の方でも読みやすいと思いますし、個人的には新卒の研修とかに組み込んでも良いんじゃないかと思っています。
ある程度業界経験をした今でも、復習を兼ねてたまに読み返しています。
その名の通り可読性の高いコードの書き方に特化しており、
良い例、悪い例の具体例が多く、実際の業務に役立つ内容が盛り込まれていると思います。

# CODE COMPLETE 第2版 上 完全なプログラミングを目指して
<img width="300" alt="code_complete.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66330/a4a1fdb9-bce1-4c57-0269-00530806baa5.png">
# CODE COMPLETE 第2版 下 完全なプログラミングを目指して
<img width="300" alt="code_complete2.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66330/23a05f5f-ba84-b0e0-1599-846e38b23318.png">

非常に分厚く、かつ上下に渡った大容量の技術書です。
ただ、無駄なものはなく、コーディングやデバッグを中心とした、開発作業に始まり、
スケジューリング、詳細設計、テストといった、実業務に必要な要素/考え方を網羅的に紹介している本になります。
しっかりと読み込み、実践することで、潜在的なバグや設計ミスが減るのではと思います。
リーダブルコードの後に実務を経由し、その後是非読んで頂きたい本です。
(若干お高いですが・・・)

# プログラムはなぜ動くのか　第２版　知っておきたいプログラムの基礎知識
<img width="300" alt="program.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66330/20d8f29e-0c1f-bbe9-9b49-34205bd6d928.png">

タイトルの通りですが、プログラムがどうゆう原理で動いているのか、CPUやメモリといったハードウェアに遡って説明している本になります。
普段Webシステム等のコーディングをしているのみだと、低レイヤについてあまり意識しないのかもしれませんが、
システム障害発生時には必要な知識になりますし、知っているとの知らないのとではアーキテクチャ設計にも大きな差が出ます。
あらゆる技術のベースとなっている要素なので、是非とも読んで頂きたい本だと思います。

# Webを支える技術 -HTTP、URI、HTML、そしてREST
<img width="300" alt="web.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66330/a70df890-4076-284c-fb02-4b5d48fcc37d.png">

タイトルの通り、WEBの基礎となる技術(HTTP, URI, HTML, REST)について、詳しく説明している本になります。
URIの設計や、HTTPの仕組み等にも触れているので、Webプログラマとして働く上で、
読んでおくと良いのではないでしょうか。

# オブジェクト指向のこころ デザインパターンとともに学ぶ （ＳＯＦＴＷＡＲＥ ＰＡＴＴＥＲＮＳ ＳＥＲＩＥＳ）
<img width="300" alt="object_driven.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66330/3197dcce-3bde-ead1-a9a0-bc6a7d15c554.png">

個人的にソフトウェアの設計力を身に付けたくて読んだ本になります。
デザインパターンについてだけでなくオブジェクト指向について、設計をする上での考え方について触れています。
「オブジェクト指向パラダイムでは、問題を3つの観点から捉えなければならない」

* 概念（conceptual）  
私は何に対して責任があるのか？
* 仕様（specification）  
私はどのように使用されるか？
* 実装（implementation）  
私はどのように自身の責任を全うするのか？

オブジェクト指向で設計するにあたって、大きな助けになる良著だと思います。

# アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技
<img width="329" alt="object_driven.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66330/470543fb-b304-768e-c03e-1f183e00b0ef.png">

こちらも個人的にソフトウェアの設計力を身に付けたくて読んだ本になります。
タイトルにある通りアジャイル開発について触れられているのはもちろんのこと、
給与システムをサンプルとした設計論・デザインパターンについて触れられている本です。
概念的な解説が多く、若干読みづらさはあるかもしれませんが、読んでおくと有益だと思います。

# イシューからはじめよ ― 知的生産の「シンプルな本質」
<img width="300" alt="issue.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66330/aa293329-c0e0-78b2-8e86-d33f384d1737.png">

プログラマといえど、実業務においてはコーディングしているだけではなく、
顧客(ユーザー)が本当に求めているものは何か、また課題解決のために何が必要なのかを考えるケースもあるかともいます。
こちらはどちらかというとコンサルタント向けの本にはなりますが、
イシュー(問題)への向き合い方、イシューをどのように解いていくのか、どのような整理をすると効率的なのかが説明されている本になります。
実プロジェクトを進めていく上で、読んでおくとためになるかと思います。

# ライト、ついてますか―問題発見の人間学
<img width="300" alt="light.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66330/53d31ff3-3d1f-2b4d-28df-a7b26fba7349.png">

こちらもどちらかというとコンサルタント向けの本にはなりますが、
「問題とは何か」、「その問題は誰のものなのか」、「そもそもそれは問題なのか」、
「問題解決はいつ終わるのか」といった、そもそも問題とは？といった観点から、問題定義について触れている本になります。
非常に読みやすく、わかりやすい構成になっており、ページ数もそこまでないのでさくっと読むことができます。
今でもたまに読み返しますし、見るたびに新しい発見があります。
個人的には一番好きな本です。

# 最後に

IT業界に数年いますが、個人的に思い出深い本の紹介をさせて頂きました。
昔からある本もいくつかありますが、現代にも通ずることが書かれていますし、
いづれの本もどのような言語に触れているエンジニアの方だとしても、ためになると思います。

本の内容をあまり詳細には書いていませんが、イメージを掴んで頂き、気になる本があれば調べて是非読んでみてください。
記事を読んで頂きありがとうございました！

# 共に働くWebエンジニアを募集しています!
不動産SHOPナカジツでは自社サービスを作っていく仲間を募集しています。
詳しくは[Wantedly](https://www.wantedly.com/projects/134741)からお問い合わせください。
お待ちしております！