Pythonにまつわる3タイプ別オススメ書籍

# この記事は
2016年 Schoo Advent Calendar の18日目の記事です。

今日はSchooと特に関係ないですが、2016年の圧倒的Pythonブームを、出版された書籍を中心に振り返り、タイプ別Python系オススメ本をエンジニアが勝手に選んでみたいと思います。

# 2016年はすごい一年だった
こちらはAmazonで「Python」を検索した結果ですが、ほとんどが2016年に発売されたものです。
<img width="1113" alt="python本リスト.png" src="https://qiita-image-store.s3.amazonaws.com/0/17027/84db671e-524e-f1ca-b7da-8d1e350477f6.png">

2015年12月に発売された O’Reillyの「入門 Python3」を皮切りに今年だけで、有名出版社などから10冊以上発売されているのを観測しています。

# なぜなのか
これは肌感ですが、やはりデータ分析、機械学習の人気に引っ張られる形で、それらをやるならPythonらしい…！ということが認識されてきたのが大きい理由ではないかと感じています。

## 例えば
Caffe, Theano, TensorFlow, Chainer などなど有名なディープラーニング系のフレームワークは、Pythonに対応しています。もちろんC++も多くに対応していますが、入りやすいのと、探りながら試してみるのはPythonの方が良いかもしれません。

今年はこのようなニュースも話題になりました。
[プログラマー年収ランキング2016！言語別、第1位はPythonの651万円](https://jp.stanby.com/media/programming_ranking/)

Pythonはプログラミングの初心者にとっても、学びやすい言語なので、初っ端から入門者の気持ちを折らないという優しさも人気を下支えしているのかもしれません。

# ということで
「たくさん本が出版された」→ 「どれを選べばいいのか？」というのが気になるところですので、今年けっこうな冊数のPython本を読んだ私が勝手に、タイプ別オススメをまとめてみましたので、参考にしてみてください。

## ★ プログラミングをPythonから入門したい人向け
圧倒的におすすめしたいのが、こちら

[確かな力が身につくPython「超」入門](https://www.amazon.co.jp/dp/B01D1QNN44)
<a href="https://www.amazon.co.jp/dp/B01D1QNN44"><img width="159" alt="超入門.png" src="https://qiita-image-store.s3.amazonaws.com/0/17027/bfb82a13-ce79-1408-6254-f7e44e5b610a.png"></a>

★ おすすめポイント

- フルカラーで挿絵がかわいい
- とにかく優しく「プログラミングとは？」から解説
- たのしい例がたくさん
    - 画像処理
    - スクレイピング
    - GUIアプリケーション (QRコードジェネレーター)
- Windows, Mac対応

学校の教科書として採用しているところもあるようです。

発売から1年弱経っていますが、amazonの「プログラミング入門書」ランキングの40位内にいることが多いです。
https://www.amazon.co.jp/gp/bestsellers/books/525592

## ★ 他のプログラミング言語は習得済み、Pythonに入門したい人向け

記事の冒頭でも触れた
[入門 Python3](https://www.amazon.co.jp/dp/4873117380)
<a href="https://www.amazon.co.jp/dp/4873117380"><img width="163" alt="入門Python3.png" src="https://qiita-image-store.s3.amazonaws.com/0/17027/debb41bb-eb20-08eb-9033-c4ff4e31bd87.png"></a>

amazonのレビューやランキングにも如実に反映されていますが、Pythonの言語の説明の部分と、応用(外部ライブラリ、標準ライブラリ) の部分とのバランスが取れているのが本書の良いところです。

「確かな力が身につくPython「超」入門」との違いは、プログラミング特有の概念を、細かく説明したりしていないので、すでに他言語で理解している人にとって、適切な説明の粒度になっているように感じました。

## ★ Pythonに入門できた人向け
「もうPythonの入門はすませた。大切なのはこの次に何をやるかなのだ。」そんな方にいろいろオススメを選びました。

### Pythonをより深く理解していきたい
+ エキスパートPythonプログラミング
https://www.amazon.co.jp/dp/4048686291

+ スマートPythonプログラミング: Pythonのより良い書き方を学ぶ
https://www.amazon.co.jp/dp/B01CX2AVUG

### web アプリケーションを学びたい
+ [みんなのPython Webアプリ編](http://coreblog.org/ats/stuff/minpy_web/) 

「みんなのPython」の著者 柴田 淳さんが無料で公開されているサイトで、PythonでWebアプリケーションをつくるときの基礎を学ぶことができます。

### webアプリケーションを開発の流れを知りたい
+ Pythonプロフェッショナルプログラミング-第2版-

https://www.amazon.co.jp/dp/B00XZTYMG6

### 機械学習/ディープラーニングを学びたい

+ ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
https://www.amazon.co.jp/dp/4873117585

+ 「集合知プログラミング」
https://www.amazon.co.jp/dp/4873113644

+ 「実践 機械学習システム」
https://www.amazon.co.jp/dp/4873116988

### 統計解析を学びたい
+ 「Think Stats 第2版 ―プログラマのための統計入門」

https://www.amazon.co.jp/dp/4873117356

少し内容は難しいですが、Pythonのサンプルコードがあることによって、どのような処理をしているのかという理解の足がかりがあるのがこの本のよいところです。

### セキュリティ
+ 「サイバーセキュリティプログラミング ―Pythonで学ぶハッカーの思考」
https://www.amazon.co.jp/dp/4873117313

標準ライブラリや外部ライブラリを使いながら、サイバーセキュリティの分野においてPythonではどのようなことができるのかの一端がサンプルコードを通して理解できます。

### 画像解析
+ 「実践 コンピュータビジョン」

https://www.amazon.co.jp/dp/4873116074

原書は“Programming Computer Vision with Python"というタイトルで、Pythonを使ってコンピュータビジョンを理解していくことができます。

### スクレイピング
+ Pythonによるスクレイピング-開発テクニック-BeautifulSoup-scikit-learn-TensorFlowを使ってみよう
https://www.amazon.co.jp/dp/4802610793

+ PythonによるWebスクレイピング
https://www.amazon.co.jp/dp/4873117615/

# まとめ
Pythonはプログラミングを学び始める敷居が他の言語に比べて低いという良さを持ちつつ、実践的な内容にも対応しているすてきな言語です。
ぜひ興味を持たれた方は、Pythonをさわってみてください。
#### 注記
+ 1 ここに書いてある本以外にも良い本きっとたくさんあります！
+ 2 Schooでは現在Pythonをサービスとして露出する部分には使っていませんが、裏でデータ解析や機械学習などに使っています。
+ 3 この記事を書いた人は、「確かな力が身につくPython「超」入門」の著者です :innocent:
一応補足しておくと、自分がプログラミングの未経験者だったら絶対に選びたい本にするべく書いた本なので、オススメであることには変わりませんが、もちろん著者だからというのも差し引いて読んでいただけますとありがたいです。