PyQチームのkamekoです。
12/24(月)〜12/28(金)の間、PyQブログでは年末特集として 「2018年から2019年へ向けてのPython動向」をお題に、スタッフそれぞれが書いた記事を連載しています。
その1では、2018年のオススメPython書籍として【入門・初心者編】を紹介しました。 この記事では、
Pythonの文法は理解した!
レベルアップするには何を学べばよいのか!
と考えている方に、【発展編】として、PyQ運営の厳選書籍を紹介します。
- Pythonスキルをステップアップしたい
- チームでの開発に必要な技術を身に付けたい
- +α:テストをもっと深く学ぶ
- 番外:プロのPythonエンジニアはどんな本を読んでいるの?
- PyQブログ年末特集「2018年から2019年へ向けてのPython動向」
Pythonスキルをステップアップしたい
エキスパートPythonプログラミング 改訂2版
内容紹介
Pythonプログラミングにおけるデザイン、コーディング、ディストリビューションのベストプラクティス
本書はPythonの文法を一通り学び終えたプログラマのために、Pythonのより深いプログラミングテクニックを解説しています。
本書を読むことで、単に「Pythonを知っている」状態から「Pythonをマスター」することができるでしょう。
2010年に発売された「エキスパートPythonプログラミング」の改訂2版です。Python3に対応しています。 Python文法の入門書を一通り理解した方におすすめします。
Pythonの中級・上級者向けの参考書とも言える本で、次に何を学ぶべきかを教えてくれる一冊です。
後半部分で紹介されている項目については、調べながら読むことになるかもしれませんが、ぜひ、時間があるときに取り組んでおくと「あ!あのとき勉強した!」と役に立つ瞬間が来ます。
翻訳者の1人、清水川貴之は、PyQの運営会社株式会社ビープラウド所属のエンジニアです。本ブログで連載中のPythonエンジニア列伝にも登場しています。
- 手をいつでもあげられるように素振りをしよう 〜 Pythonエンジニア列伝 Vol.1 清水川貴之氏(前編) - PyQオフィシャルブログ
- ダメで当たり前なのでどんどんやる。アウトプットしていこう〜 Pythonエンジニア列伝 Vol.1 清水川貴之氏(後編) - PyQオフィシャルブログ
チームでの開発に必要な技術を身に付けたい
Pythonプロフェッショナルプログラミング第3版
Pythonプロフェッショナルプログラミング 第3版 - 秀和システム あなたの学びをサポート! おかげさまで40周年を迎えました
手前味噌ですが、PyQの運営会社であるビープラウドの著作です。 2008年からPythonでの開発を行ってきた、ビープラウドのノウハウが詰まった一冊です。
「ビープラウドの新入社員のための本」というコンセプトで書かれており、 先に紹介したエキスパートPythonプログラミングと比較すると、よりPythonでの開発ノウハウに重きを置いた構成です。
アプリケーション開発を行うための実務知識を網羅的に学べます。 第3版では、最近、仕事が増えてきた機械学習*1 のプロジェクトの進め方も紹介しています。
PyQでコラボレーション問題を学習できます。
書籍中ではWebアプリケーションのサンプルとして、乗車記録アプリケーション「乗りログ」を作れます。
PyQのコラボレーション問題*2にもなっています。
テスト駆動Python
Pythonのテストツールの一つであるpytestを利用したテストの書き方を詳しく紹介した本です。 ハンズオン形式でサンプルをテストしながらテストの書き方を学んでいきます。
Python開発の実務でも、pytestはよく使われています。 自分で書かなくても、参加したプロジェクトのテストがpytestで書かれている場合もあります。
ツールは限定されていますが、チーム開発、品質保持には不可欠なテストを、書きながら学べるおすすめの本です。 ユニットテストとは違う部分もありますので、時間があるときにpytestを学んでおくとよいです。
+α:テストをもっと深く学ぶ
「テスト駆動Python 」は、pytestを使ってテストを行う際は、とても参考になります。テスト駆動開発に限定せず、pytestを使いこなすのに適した内容です。
テスト駆動開発(TDD)の概念やテストの基本から学びたい方は、本書と合わせて以下の2冊もおすすめです。
初めての自動テスト
初めての自動テストは、Pythonの実装の記載はないですが、テストの基本的なことを学べます。
テスト駆動開発入門
テスト駆動開発入門は、テスト駆動開発(TDD)の実装方法をハンズオン形式で解説した一冊です。
第一部のコードはJavaで書かれていますが、難しくないのでPythonで書き直せます。 第2部のコードはPythonで書かれています。
また、先ほど紹介した Pythonプロフェッショナルプログラミング第3版 などでも、 ユニットテストの実装、実務でのテストの進め方を紹介しています。
テストを学ぶ意味って?
一般的なPythonの入門書では、テストに関しての記載は少なめです。
しかし、エンジニアとして時間があるときに、 テストについて学んでおくことは大事なことと考えます。
なぜなら、開発を行うときはテストも必ず書きます。 実務でも、品質を担保するためにテストを書くのは必須です。
また、テストはコードの利用方法も示しています。 テストがあればチームメンバーに関数、クラスの利用方法を示せます。
テストは、本を読むだけではなかなか書けるようになりません。 本を見ながら自分が書いたコードにもテストを書きましょう。 これを繰り返すとテストが書きやすいコードを書く習慣も身につきます。
番外:プロのPythonエンジニアはどんな本を読んでいるの?
PyQの運営会社であるビープラウドは、以下のような特色のある企業です。
- 全社員の9割以上がエンジニア
- Pythonが開発の主言語
そのビープラウドには、書籍を会社負担で購入できる、
BPBP*3 という制度があります。
この制度を利用して購入されている本を調べれば、
Pythonエンジニアがどんな本を読むのか見えてきそう!
ということで、2018年にビープラウド社員が買った本を集計してみました。
社内購入数1位:Docker/Kubernetes 実践コンテナ開発入門
Docker, Kubernetesは、コンテナ技術と呼ばれる技術を実現するためのプラットフォームです。
コンテナ技術は、アプリケーション開発のための仮想環境を構築する技術の一つで、より少ないリソースで実現することができるため、近年注目されています。
開発のための環境構築は、一人前のエンジニアとして必須となる技術の一つでしょう。 開発を生業としているエンジニアの関心の高さからも伺えますね。
社内購入数2位:エンジニアの知的生産術
エンジニアにとって身近な知的生産である「プログラミング」、「執筆」を例に、 学び、整理し、アウトプットするまでの知的生産を効率化する手法を書いた本です。
日々の開発に新しい技術を取り入れ反映させているエンジニアにとって、学びやアウトプットはとても身近なものです。 それらの手法を言語化しまとめてくれている本書に関心が高まるのも納得ですね。
著者の 西尾 泰和 さんは、PyQの運営会社株式会社ビープラウドの技術顧問です。PyQの機械学習部分のカリキュラム、問題作成にもご協力頂いています。
3位〜5位
3位から5位までは下記のような結果になりました。
4位と5位はおすすめでも取り上げたPythonのレベルアップを目指すための本ですね。 2位、3位から読み取れるように、プログラマーとしての働き方・学び方を意識した本がよく読まれているようです。
このように、既に働いているエンジニアももちろん本を読みます。
本は学習したいトピックがよくまとまっています。知らないことを集中して学習するために本を読みます。 本を読むことで新しい知識を学習し、開発に生かしています。
PyQブログ年末特集「2018年から2019年へ向けてのPython動向」
12/25(火)〜12/28(金)の間、PyQブログでは年末特集として 「2018年から2019年へ向けてのPython動向」をお題にスタッフそれぞれが書いた記事を連載しています。 本記事はその1記事目です。
12/25(火)〜12/28(金)の間、PyQブログでは年末特集として 「2018年から2019年へ向けてのPython動向」をお題にスタッフそれぞれが書いた記事を連載しています。
公開スケジュール
- 12/25(火):2018年版、これを読みたいオススメPython書籍【入門者編:4選+1】
- 12/26(水):2018年版、これを読みたいオススメPython書籍発展編:厳選3選+プロが今読んでる書籍を紹介します!(本記事)
- 12/27(木):2018年版、これを読みたいPython書籍 機械学習6選:機械学習の概念からPythonでの実装・データ分析関連知識まで、PyQ運営のコメント付きで紹介します。
- 12/27(木):2019年のPythonデータ分析はどうなる? - Python3 エンジニア認定データ分析試験が始まります!
- 12/28(金):2018年のPython系カンファレンス、動画&発表資料まとめ - 2019年開催予定のイベントも紹介します。
どうぞこの後配信する記事もお楽しみに!