新卒エンジニアが個人的に実務で役に立った本とかを紹介してみる

この記事は、ヤフー株式会社の2018年新卒有志でつくる[Yahoo! JAPAN 18 新卒 Advent Calendar 2018](https://adventar.org/calendars/3388)の4日目の記事です。
前回は @yonedaco さんによる「[ヤフーの公式キャラクター「けんさくとえんじん」の「けんさく」をSVG で描いてみた](https://qiita.com/yonedaco/items/4e7443d004feda822923)」でした。
次回は @moja0316 さんによる「[Google Cloud Vision APIのObject Loclizerを使ってお片付け支援IoTをつくってみる](https://qiita.com/moja0316/items/23759f630ea0b0036d87)」です。
## はじめに
こんにちは！
Yahoo! JAPAN 18新卒のsaike1119です。
普段はサーバーサイドエンジニアをしています。
今回は、自分が置かれてる環境下の実務で役に立った本（ドキュメント含む）とかを紹介していこうかなって思っています。
入社半年くらいで読んだ本・読み返した本・抜き読みした本を対象としています。

## この記事の対象者
基本的には、新卒サーバーエンジニアを対象としています。
プログラミング言語&フレームワーク系の専門技術の本を除いた以下のカテゴリーを紹介します。
- コーディング(2冊)
- ツール(1冊)
- テスト(1冊)
- 設計(5冊)
- スクラム(2冊)
- 読み物(3冊)

## 読みやすさ
以下のレーティングで本の読みやすさを表します。
レーティングは完全に所感です。
★★★・・・初心者でも読みやすく入門的なレベル
★★☆・・・基礎的なレベル
★☆☆・・・ある程度基礎がないと理解が難しい応用的なレベル

## 紹介本
### コーディング系
#### リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)  
読みやすさ:★★★

エンジニアなら読んでおいて損がないくらいの必読書と紹介されて読んだ本。
本の内容は、シンプルでわかりやすいコードを書く初歩的なテクニックがいろいろ記載されています。
ページ数的にも200ページくらいでわかり易く書かれているので、初学者でもさらっと読めます。
リーダブルコードを読むのと読まないのとでは、コードを書く際の意識が変わります。
この本を読んで、実務では綺麗なコードを書く意識をしながらコーディングできています。

#### 新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)
読みやすさ:★☆☆

実務で、コードが複雑になって、リファクタリングをしなければならなくなった時に手に取って読んだ本。
いろいろなシーンでのリファクタリング手法や考え方がまとめられています。
実務でリファクタリングをするぞ！ってなった時は、この本のリファクタリング手法が大いに役に立っています。

### ツール系
#### GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)
読みやすさ:★★☆

ある程度Gitは知っていたが、入社してチーム開発研修があったのでGit・Githubの復習も兼ねて読んだ本。
Git・GitHubの実践的な内容が書かれています。
これを読んでおけばGit・GitHubの実践的な基礎知識については大丈夫だと思います。
普段、Gitでバージョン管理しているので、ずっと役に立ってます。

### テスト系
#### 知識ゼロから学ぶソフトウェアテスト 【改訂版】
読みやすさ:★★★

うちのリーダーにとりあえずテストの本はこれって薦められて読んだ本。
ソフトウェアテストは何なのかを１から学べます。
読みやすくてパラっと読めちゃうので、テストの入門書としてオススメだと思います。
実務でテストを実装する時にどんなテストをすればいいのか役に立っています。

### 設計系
#### Web API: The Good Parts
読みやすさ:★★☆

APIを設計する時にベストプラクティスは何なのか知りたくなって、読んだ本。
WebAPIの設計・開発・運用の基本的なベストプラクティスが書かれています。
ページ数は200ページくらいなので、さらっと読めます。
実務でAPIを設計・開発するシーンで本書の内容が役に立っています。

#### Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
読みやすさ:★★☆

Web技術に関して体系的に勉強したかったので、読んだ本。
本書はWebに関する基礎技術がまとめられています。
webとは？からWebサービスの設計まで書かれているので、RESTfulな知識がしっかりと付けられると思います。
Web企業でサーバサイドエンジニアをやっている身として、知っておかなければならない内容がたくさん書いてあって、常に役に立っています。

#### マイクロサービスアーキテクチャ
読みやすさ:★☆☆

うちのチームではマイクロサービスアーキテクチャの概念に沿ってアプリケーションの開発をやっているので、リーダに必読書として推薦された本。
現代におけるモダンなソフトウェアアーキテクチャであるマイクロサービスアーキテクチャについて書かれています。
大きく作ることはやめて、それぞれ小さく作って恩恵を受けようとかいろいろ書かれています。
内容は結構難しくて、おいしいところを抜き読みしているので、ちゃんと１から読みたい。
実務では、マイクロサービスアーキテクチャの考え方や用語が飛び交っているので、理解しコミュニケーションするためとモダンな開発をしていく中で役に立っています。

#### エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)
読みやすさ:★☆☆

実務のアプリケーション開発においてレイヤー化アーキテクチャを採用しているので、勉強のために読みました。
この本は、エリック・エヴァンスの実体験からドメイン駆動設計の思想が書かれています。
内容が難しく、読み進めてる中で何度もいきなり知らない用語が出てくるので、いろいろ噛み砕きながら読み進めました。
オブジェクト指向や設計にある程度知識のある人は快適に読み進められると思います。
内容は難しいが、実務のアプリケーション開発時にとても役に立った本です。
以下がDDDのより実装に近い面を解説しているらしいので今後読みたいです。
・実践ドメイン駆動設計 (Object Oriented SELECTION)
・現場で役立つシステム設計の原則 ~変更を楽で安全にするオブジェクト指向の実践技法

#### The Twelve-Factor App （日本語訳）
読みやすさ:★☆☆

The Twelve-Factor　Appの概念に沿ってアプリケーション開発をしているので、リーダーに必読ドキュメントとして推薦されたドキュメント。
クラウドアプリケーション開発・運用のためベストプラクティスで、12個の原則が書かれています。
このドキュメントはさらっと読めますが、理解は難しいかもしれません。
クラウドアプリケーション開発・運用の勉強にもなったし、実務で大いに役に立っています。

### スクラム系
#### SCRUM BOOT CAMP THE BOOK
読みやすさ:★★★

入社してチーム開発研修時に開発手法をスクラムでやるっていうことになって自分がスクラムマスターをやったので、スクラムの復習も兼ねて読んだ本。
スクラムとはどんなものかを解説するところから架空のプロジェクトでスクラムを実践的に取り組んでみたところまで書かれています。
イラストやマンガを多く差し込んでいるので、スクラムのイメージがしやすく、どんどん読み進めていけると思います。

#### スクラムガイド - Scrum Guides
読みやすさ:★★☆

チームでスクラムをやっていて、スクラムの目的やルールの把握のために、リーダから必読として推薦されたドキュメント。
スクラムガイドはアジャイルソフトウェア開発手法の一種であるスクラムの公式ドキュメントです。
これを読んでおけばスクラムの目的やルールが十分わかります。
ページ数も20ページ程度ですぐ読めます。
個人的に思ったのは文字ばかりなので、スクラム未経験者は実践イメージがしづらいかもしれないです。
実務はスクラムなので、スクラムガイドで得た知識はスクラムで開発を回していく中で常に役に立っています。

### 読み物系
#### プログラマが知るべき97のこと
読みやすさ:★★★

入社時に新卒推薦本として紹介されていて、面白そうだなっと思って読んだ本。
世界中で活躍する97人(+日本人10人)のプログラマによるエッセイが書かれています。
読み物として面白く、設計とかコーディングとか技術とかリファクタリングとか心構えとか…自らの体験・経験による話がたくさん載っています。
勉強になる考え方がたくさんあって、「エンジニア」として実務の役に立っています。

#### エンジニアの知的生産術 ──効率的に学び、整理し、アウトプットする (WEB+DB PRESS plusシリーズ)
読みやすさ:★★★

ふと、エンジニアとしてどうすれば効率的な学び方ができるか？を知りたくなった時に、本屋に行ったら置いてあったので、読んだ本。
エンジニアがどう効率的に学びのサイクルを回して知的生産ができるかを体系的にまとめた本です。
何気なく普段からやっていたことはいいことだったっていうのを再認識させられたり、知的生産に関して新しい学びがありました。
新卒の自分が言うのも何ですが、新卒の時に読むと良い本だと思います。
普段勉強する時に、仕事をする時に、の両方で役にっています。

#### ロジカル・シンキング (Best solution)
読みやすさ:★★☆

自分は伝え方や考え方が下手なので、克服したいと思って読んだ本。(これも入社時の新卒推薦本に書いてあった気がします。)
論理的思考な考え方・伝え方のテクニックが詳しく書かれています。
実務では論理的思考が求められることが多く、うまく受け答えをする時にはこの本で学んだ内容が役に立っています。

## さいごに
入社して半年でいろいろな本を読んでみて、自分の置かれている環境下の実務で役に立った本を紹介してみました。 
読者の方によって環境や興味関心が違い、読むべき本って言うのは変わってくると思いますが、紹介した本の中から何か興味が引いた本があって役に立ってもらえたら幸いです。m(__)m