エンジニア2年目、2016年読んだ本オススメ5選

スマートテック・ベンチャーズ 22日目担当の @KentaKudo です。

2016年も残り10日ということで、今年読んだ技術書の中からオススメの本を5つ紹介したいと思います。

# bio
読む際の参考までに自分の情報を少し載せておきます。

- 学部卒社会人2年生
- エンジニア歴=社会人歴
- 大学の専攻は機械系
- 業務はずっとiOS(Objective-C、Swift)

# オススメ5選

## <a href="https://www.amazon.co.jp/%E6%9A%97%E5%8F%B7%E6%8A%80%E8%A1%93%E5%85%A5%E9%96%80-%E7%AC%AC3%E7%89%88-%E7%A7%98%E5%AF%86%E3%81%AE%E5%9B%BD%E3%81%AE%E3%82%A2%E3%83%AA%E3%82%B9-%E7%B5%90%E5%9F%8E-%E6%B5%A9-ebook/dp/B015643CPE/ref=sr_1_1?s=books&ie=UTF8&qid=1481480148&sr=1-1&keywords=%E6%9A%97%E5%8F%B7%E6%8A%80%E8%A1%93%E5%85%A5%E9%96%80" target="_blank">暗号技術入門 秘密の国のアリス</a>
ここで述べるまでもなくいろんな場所で紹介されているのですが、噂通りいい本だったので改めて紹介させていただきます。

以前からビットコインについて興味があり、ネットの記事や本などをちらちら読んでいたのですが、わかったようなわからないような感覚がずっと続いていました。
しかしこの本を読み、一つ一つの暗号技術を知り、ブロックチェーンの解説を読むことで頭の中の靄が晴れました。

タイトルのいかつさとは対照的に、暗号技術が丁寧に解説されており大変読みやすいです。

また、暗号は技術それ自体もさることながら、その歴史が本当に面白いです。
歴史に関心がある人には「<a href="https://www.amazon.co.jp/%E6%9A%97%E5%8F%B7%E8%A7%A3%E8%AA%AD%E3%80%88%E4%B8%8A%E3%80%89-%E6%96%B0%E6%BD%AE%E6%96%87%E5%BA%AB-%E3%82%B5%E3%82%A4%E3%83%A2%E3%83%B3-%E3%82%B7%E3%83%B3/dp/410215972X" target="_blank">暗号解読／サイモンシン 著</a>」もお勧めです。

## <a href="https://www.amazon.co.jp/%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0TCP-IP-%E5%85%A5%E9%96%80%E7%B7%A8-%E7%AC%AC5%E7%89%88-%E7%AB%B9%E4%B8%8B/dp/4274068765/ref=sr_1_1?s=books&ie=UTF8&qid=1481479893&sr=1-1&keywords=%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0tcp+ip+%E5%85%A5%E9%96%80%E7%B7%A8" target="_blank">マスタリングTCP/IP 入門編</a>
これも説明不要なくらいいろいろなところで紹介されていますが、評判通りの素晴らしい内容でした。

iOSエンジニアとして働いてきたこれまで、ネットを意識するのは外部のAPIを呼び出すときくらいでした。
しかもFoundationやサードパーティのライブラリを使用するのでネットワークに関する知識は最小限に留まっていました。

この本は「インターネットってなんだろう」という問いにとことん丁寧に答えてくれます。
OSI参照モデルが頭に入っているだけで理解できる他のネットワークに関する情報が増えたため、まさに入門として最適な一冊でした。

## <a href="http://shop.oreilly.com/product/0636920031116.do" target="_blank">Flask Web Development</a>
ひょんなことでPythonのFlaskというフレームワークに触れることになった際に手にした本です。

この本はチャプターとgithubのコミットが連動したハンズオン形式の参考書です。
<a href="https://github.com/miguelgrinberg/flasky" target="_blank">レポジトリ</a>をクローンした状態でサンプルコードを書いていき、次のチャプターがきたらcheckoutして足りない分を取り込むことで次に進むことができます。
実際にコードを書きながら進められるため、内容がスッと頭に入ってきます。

フロントエンドのアプリ構築だけでなく、APIサーバとしてのアプリケーションの作成も含まれています。

それまでiOSしかやったことがなく、webに関しては全くの未経験の状態でしたが、
フレームワークの使い方に留まらず、webアプリケーション一般の知識を深めることができました。
Flaskを勉強する方だけでなく、webを勉強したい人にもオススメしたい一冊です。

現在日本語版はまだ出版されていないようですが、文章自体とても読みやすいです。

## <a href="https://www.amazon.co.jp/UI-GRAPHICS-%EF%BC%8D%E4%B8%96%E7%95%8C%E3%81%AE%E6%88%90%E5%8A%9F%E4%BA%8B%E4%BE%8B%E3%81%8B%E3%82%89%E5%AD%A6%E3%81%B6%E3%80%81%E3%82%B9%E3%83%9E%E3%83%9B%E4%BB%A5%E9%99%8D%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A7%E3%82%A4%E3%82%B9%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3-%E6%B0%B4%E9%87%8E-%E5%8B%9D%E4%BB%81-ebook/dp/B0191HPXYA/ref=sr_1_1?s=books&ie=UTF8&qid=1481479841&sr=1-1&keywords=UI+Graphics+-+%E4%B8%96%E7%95%8C%E3%81%AE%E6%88%90%E5%8A%9F%E4%BA%8B%E4%BE%8B%E3%81%8B%E3%82%89%E5%AD%A6%E3%81%B6%E3%80%81%E3%82%B9%E3%83%9E%E3%83%9B%E4%BB%A5%E9%99%8D%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A7%E3%82%A4%E3%82%B9%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3" target="_blank">UI Graphics - 世界の成功事例から学ぶ、スマホ以降のインターフェイスデザイン</a>
スマホアプリのデザインは、`スキューモーフィズム→フラットデザイン・マテリアルデザイン`という変遷を辿っています。

これらがの用語を知るだけでも、ただ指示書に従ってデザインを実装するレベルから大きく前進できると思います。

内容はデザインに関する知識に加え、優れたデザインのアプリの紹介と、それらがどういった点で優れているのかについて解説されています。
読んでいるだけで楽しい本です。

## <a href="https://www.amazon.co.jp/%E3%81%99%E3%81%94%E3%81%84Haskell%E3%81%9F%E3%81%AE%E3%81%97%E3%81%8F%E5%AD%A6%E3%81%BC%E3%81%86%EF%BC%81-Miran-Lipovaca-ebook/dp/B009RO80XY/ref=sr_1_1?s=books&ie=UTF8&qid=1481479984&sr=1-1&keywords=haskell" target="_blank">すごいHaskellたのしく学ぼう</a>
Swiftを学び、書いていく中で関数型への興味が湧いていました。
先に「<a href="https://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0Haskell-Graham-Hutton/dp/4274067815" target="_blank">プログラミングHaskell</a>」でHaskellの文法について学んだことでより興味が深まり、この本を手にしました。

モナド単体の情報は調べれば多く見つけることができますが、この本では`ファンクター→アプリカティブ→モナド`という流れで解説されるため、よりモナドの理解を深めることができます。
この本のおかげで「<a href="https://speakerdeck.com/inamiy/type-safe-url-routing-in-swift-japanese" target="_blank">Type-safe URL Routing in Swift</a>」にある、「monadはオーバースペックで、applicativeで十分」の部分を理解することができた瞬間はちょっとした感動でした。

# 技術書まとめ記事
以下の記事を参考にさせていただいています。

- <a href="http://qiita.com/seizans/items/3412bdaa4a70673445de" target ="_blank">読んで良かった基礎知識の入門書</a>
- <a href="http://qiita.com/kenju/items/d0b6064b8807edfddbe1" target="_blank">新米エンジニアが入社して半年で読んだ・読まされた本まとめ</a>

# まとめ
来年も多くの素晴らしい本に出会えたらいいなと思います。
みなさんのオススメの技術書もぜひぜひ教えてください🙇

# 最後に
<a href="https://www.wantedly.com/projects/72590?ql=gaJpZM4AKYPb" target="_blank">スマートテック・ベンチャーズ</a>は未経験者や、経験者だけどもSwift&iOSやってみたいという人を大募集しています。
このエントリーを見ている方は経験者かつSwiftを使っている人だと思うので、ターゲット層ではないかもしれませんが、
もし身近にそういう方がいたら「そういえばこんな会社があったよ」と伝えていただければ幸いです。

明日は @nnsnodnb くんの自動化の話です。