この記事は第10回Pythonエンジニア列伝の4記事目です
Pythonエンジニア列伝は、「Pythonエンジニアたちのインタビューを通して、Pythonを使う人達がどんな人なのか、Pythonをどんな場面で活用しているのか、なぜPythonに出会ったか」などを紐解く連載です。
連載はトピックごとになっているので、記事単体でも読むことができます。
※今回は新型コロナウイルス感染症対策として、マスクをしてお送りします(aodagさんには写真撮影のためマスクを外していただきました)。
関連記事・バックナンバー
- プロフィール・インデックス…aodagさんのご紹介とインデックスページです
- その2…aodagさんに機械学習に興味を持たれたきっかけと転職活動について伺いました
- その3…aodagさんにコミュニティ活動を始めたきっかけやPyCon JPの話を伺いました
「パーフェクトPython改訂2版」の紹介
aodag
はい!これのことですね。第1版の時には「Webだけじゃないんだぞ!」と言う意気込みで書いたけど、今回は「データだけじゃないんだぞ!」と思って書きました。あ、これは個人的な感想です。
kameko
今はPythonと言えばデータというぐらいに、データの分野で人気がありますもんね。
「パーフェクトPython第1版」は入社前に買いました。初心者向けじゃない印象でした。
aodag
たしかに頭から全部読む本じゃないと思っています。
導入は文法だけど「Hello world」からは始まらないからではないでしょうか。
けれども気になることをパラパラと読むだけでも、新しい発見があると思います。
kameko
エンジニアは1冊持っていると安心だと思いますよ。aodagさんが執筆を担当した章について教えてください。
aodag
担当したのはPart3「実践的な開発」全般です。 Part2「言語仕様」に 非同期の章を追加しました。
実践的な開発では第一版のころもasyncoreを使った非同期処理は書いてあったのですが、非同期構文を使った例にまるまる書き換えました。
aodag
あとは、言語仕様に非同期に関する文法部分を追加しました。
まずは非同期を使ったフレームワークとかを触ってから読んでみたほうが理解できると思います。
スリープだけでタスクの説明をするのは本当に辛かったです。
kameko
グラフィックを扱うアプリケーションをPythonで書いてみたいような人は、
他になかなか情報が少ないですし、「パーフェクトPython」はオススメですね。
aodag
はい。PyQtをpipで簡単にインストールできるようになったので、前回Tkinter(ティーキンター、ティーケーインター)だったのがPyQt(パイキュート)の解説に変えました。昔はPyQtがpipで入らなかったので準備だけで10ページくらいかかりそうでした。
今はいい環境でできるようになりましたね。
解説: Tkinterとは
PythonでGUIを作成するための標準ライブラリです。
URL:https://docs.python.org/ja/3/library/tkinter.html
解説: PyQtとは
クロスプラットフォームなGUIツールキットであるQtの機能を、Pythonからでも使えるようにしたパッケージです。
URL:https://riverbankcomputing.com/software/pyqt/
kameko
書籍の想定レベル感を教えてください。
aodag
「とりあえず書けます」というレベルの人が、試してみたい技術を探ってもらえればと思って書きました。
一言で言うと「それで、Pythonって何ができるの?」と思っている人におすすめな本です。
kameko
PyQで触れてないところを結構取り上げているので、PyQユーザーさんも楽しめると思います。
今後の展望
kameko
今後Pythonや関連する活動でやりたいことや展望はありますか?
aodag
サーバーサイドや、サーバーレスの知見を深めたいと思っています。
あとは、プログラミング技術によってデータとサービスをもっとシームレスに繋げられるようにしていきたいです。
kameko
データをモデリングすることとサービスを安定して稼働させることは、違う目的ですからね。
aodag
はい。当然プログラマーの観点もコードの書き方も異なります。そこで最終的にそれらを1つのシステムとして活用する場合に、お互いが歩み寄れるようにするため、その間に立つ人になったり、間でいい感じに繋ぐような技術を試していきたいです。
データもアプリもできるPythonだからこそ、そういうことをやっていきたいですね。
kameko
良いですね。他には業務的なことや個人的に技術を深めたいことはありますか?
aodag
Linux DesktopをPythonでカスタマイズをできると楽しいかなと思うのでそこら辺を調べています。
konie
カスタマイズとはどういう感じなんですか?
aodag
専門的に言うとD-BUSを叩きまくると言う感じです。Linux Desktopは色々なサービスの集合体でできています。
そのサービスを動かすためのAPIが裏にあって、それをD-BUSと言います。インタープロセスの仕組みがあるのでそれをPythonからカスタマイズができるんですよ。
解説: D-BUSとは
プロセス間通信の仕組みです。GNOMEやKDEといったLinuxのデスクトップ環境が利用しています。
aodag
来年以降のPyConのネタにしていきたいですね。
オススメの学習方法
kameko
今からPythonを始める人にオススメしたい学習方法があれば教えてください
aodag
それは、PyQやったらいいんじゃない?(笑)
kameko ありがとうございます(笑)
PyQを知らない人のためにPyQの説明をすると、PyQは、実務をベースとしたテキストを用いて、ブラウザ内のエディターで手を動かして学ぶPython学習サービスです。
aodag
ただ、「PyQやること」「本を読むこと」を目標とするのではなく、「これによってこんなことを得る」と言うことを目標に学習してほしいですね。
konie
その教訓は覚えておきたいです。
それを聞いて私もPyQで学ぶのを目標にするのではなくて、PyQで何をできるようになりたいのか、ということを考えられるようにしようと思いました。
aodag
実際コミュニティなどで、「PyQのこの問題がわからない」みたいな質問をされることもあるんですよ。そうなると、「知らないよ!」と思ってしまいます。
けれども、「PyQでこんなことを習って、自分でもこういうものを動かしてみたんですが、できませんでした」という相談だと「助けてあげたいな」と思います。
konie
教えてもらう時には今話されたことを思い出すようにしたいです。
kameko
いい話が聞けました。PyQの他にオススメしたいものはありますか?
aodag
手前味噌ですが、「パーフェクトPython」もおすすめです。
「こんなことやりたい!」という何かを探す見本市として読んで、色々と試してみてください。
まとめ
kameko
最後に、Pythonの初学者に一言お願いします。
aodag
Pythonに関する情報は多いけど、「すべてを鵜呑みにすんなよ」と言いたいです。
kameko
「まずは試してみよう」ということですね。
aodag
はい。いい話を聞いたら、まずは自分で手を動かして確認するのが大事です。
もう少し具体的にいうと、「xxなはず」を「xxでした」に変えていくのが大事です。
エラーが発生した時の切り分けとかも「xxだと思うんですよね」を「確認した結果xxだったので」に変えていこうということですね。
「xxなはず」と思う箇所が全部あっていたらおかしいところはないはずです。その認識違いを探すのが切り分けです。
kameko
ためになる話をありがとうございました!
関連記事・バックナンバー
- プロフィール・インデックス…aodagさんのご紹介とインデックスページです
- その2…aodagさんに機械学習に興味を持たれたきっかけと転職活動について伺いました
- その3…aodagさんにコミュニティ活動を始めたきっかけやPyCon JPの話を伺いました