この記事はPythonエンジニア列伝第5回の2記事目です
Pythonエンジニア列伝は、「Pythonエンジニアたちのインタビューを通して、Pythonを使う人達がどんな人なのか、どんな場面で活用しているのか、なぜPythonに出会ったかなどを紐解く」連載です。
連載はトピックごとになっているので記事単体でも読むことができます。
バックナンバー
- 導入・索引…片柳さんのご紹介とインデックスページです。
- その1…農業研究分野でのPythonデータ処理について
pyq.jp
「PythonユーザのためのJupyter[実践]入門」について
kameko片柳さんはPythonのライブラリであるJupyter Notebookとデータを可視化するライブラリを取り扱った書籍、通称「Jupyter本」を書かれていますが、どういった経緯で執筆に至ったのでしょうか?
PythonユーザのためのJupyter[実践]入門
gihyo.jp
「Jupyterの名前を冠したPythonの本ってないよね」ということで。本の著者名の記載順は実は誘われた順なんです。一番最初が池内さんになっているように、彼が発起人です。既に技術書の執筆経験のあった彼が、その編集者に打診して話を進めました。
haruへえ、これ参加順なんですね。片柳さんは二番目に書かれていますね。
片柳はい。私はそのときはまだまだ本をかけるレベルじゃないと思っていたんですよ。それでも勉強すればなんとかなるだろうと思っていたのと、Pythonの普及活動をしたいこともあって二つ返事で引き受けました。
kameko出版までの経緯で印象に残っていることはありますか?
片柳JupyterはPythonのツールの一つなので、そのような狭い範囲に着目した本を出すことは、Jupyterを知らない人にとっては「何それ美味しいの」という印象を与える懸念はあって。とはいえ扱う範囲を広げてというのは違うな、ということで「自費出版でやろっか」という話も出ていました。
ただその一方で出版社さんの側に「Jupyter来てる!」という感覚があったみたいで、最終的に出版の話が進みました。
kamekoとてもいいタイミングで発売された感覚がありますよね。発売当初、今買うべき本だ!と感じた記憶があります。
片柳そうですね。我々は先を行っていた!と思いました。いいタイミングで出版できたと思います。
haru本の中で、片柳さんはどの部分を担当したんですか?
片柳私はMatplotlibを扱う4章・5章の大部分を担当しました。PyQとのコラボ問題もこのあたりから出題してますよね。
nao_yはい。基本はMatplotlibに関しての問題です。あとは、使用頻度の高そうな、pandasを使ったExcelの読み込みについてを出題しています。
haru執筆にはどのくらいの時間をかけたんですか?
片柳お声掛けをいただいたのが2016年で、その年の9月にあるPyCon Jpに合わせて出そうとしたんですけれど、結局一年かかりましたね。去年の5月の連休は全部執筆に充て、夏休みは校正作業に充てるという感じでした。
片柳今のところ考えてないです。情報はどんどん新しくなっていっているので、どちらかというと第二版を出すことはあるかもしれません。
PyQについて
kamekoPythonの1プログラマーとして、オンライン学習サービスであるPyQについてどう思いますか?
片柳まずはサービスが良いと思っていて。休んだ時はお金取らないとか親切設計になっていますよね。
kamekoそれが健全な形だとチームで合意して月途中の返金機能を実装したんですけど、あまり他にない形式だからか、今でも休会手続きは月末が多いです(笑)
2019年8月より、PyQの課金形式が変更されます
返金処理に関連するクレジットカードエラーの多発により、PyQ購読解除時の返金仕様が変更されます。
プラン変更の際の返金処理に変更はありません。詳細は下記の記事でお知らせしています。
blog.pyq.jp
片柳慣れている形式からくる心理的な問題もありそうですよね。やはりシステムが違うと理解してもらうのが大変だなと思います。でもやっぱり良心的なサービスだなと思うので、初めてPython始めたい人には薦めたいですし、学習できる範囲も広いので、私も機械学習に手をつける時はやろうかなと思います。
片柳実際にクエストに触れたのはJupyter本とのコラボ問題と関連するJupyterの初心者向けの問題だけなので、出題に対してどうこうはいえないのですが、実際にPyQの中でJupyterが動いていて、これはけっこう手間がかかったのではないだろうか、という印象を持ちました。
kamekoJupyter Notebookに関してはブラウザ上で動かせるようにがんばりました。
片柳PyQ問題作成の際にはMatplotlibのコードスタイルの違いでPyQスタッフと少し議論しました。PyQではMATLAB-styleを採用していたんですが、Jupyter本ではこだわってOOP-styleで記載しています。コラボ問題ではそちらで統一してもらいました。
二つのコーディングスタイル OOP-styleとMATLAB-style
Matplotlibには数値計算や統計計算に強いMATLABというツールを参考に設計されたという経緯があるため、暗黙的な動作が多いなどPythonらしくない書き方があります。
PyQのMatplotlibの問題ではMATLABに寄せたコーディングスタイル(PythonユーザのためのJupyter[実践]入門ではMATLAB-styleと呼びます)を採用しています。
一方、「PythonユーザのためのJupyter[実践]入門」では動作を明示的にしたPythonらしいコーディングスタイル (OOP-style)を採用しています。これに合わせてコラボレーション問題のコードはOOP-styleになっています。
OOP-styleとMATLAB-styleについては PythonユーザのためのJupyter[実践]入門内で「Matplotlibでグラフを描画する2つのアプローチ (P. 248-254)」に詳述されています。
nao_y結果として、二種類のスタイルが存在すること、それぞれの内容を解説できたのでよかったと思っています。自分もどちらがいいか、どちらのスタイルで書くかを意識せずに使っていたと気づきました。
片柳みなさん結構、意識せず書いていると思います。ただ、意識して統一したスタイルで書いたほうがPythonとして学びやすいです。OOP-styleの方がPythonの設計思想に合わせたスタイルなので、個人的にもこちらで書くようにしていますし、人にも薦めたいと思っています。
nao_yPyQに「PythonユーザのためのJupyter[実践]入門」本とのコラボ問題もあります。今回コラボレーションコード無料で公開しており、コードを入力することで体験することができます。
blog.pyq.jp
バックナンバー
- 導入・索引…片柳さんのご紹介とインデックスページです。
- その1…農業研究分野でのPythonデータ処理について
次回の内容
その3では、女性によるPythonコミュニティ「PyLadies Tokyo」についてお伺いしています。
blog.pyq.jp