Python学習チャンネル by PyQ

Pythonのオンライン学習プラットフォームPyQのオフィシャルブログです

【エンジニア列伝vol.10 aodagさん (4/4)】「データだけじゃないんだぞ!」aodagさんに「パーフェクトPython改訂2版」のエピソード、オススメしたい学習方法を伺いました。

f:id:kenken0326:20200824204520p:plain

この記事は第10回Pythonエンジニア列伝の4記事目です

Pythonエンジニア列伝は、「Pythonエンジニアたちのインタビューを通して、Pythonを使う人達がどんな人なのか、Pythonをどんな場面で活用しているのか、なぜPythonに出会ったか」などを紐解く連載です。

連載はトピックごとになっているので、記事単体でも読むことができます。

※今回は新型コロナウイルス感染症対策として、マスクをしてお送りします(aodagさんには写真撮影のためマスクを外していただきました)。

関連記事・バックナンバー

  • プロフィール・インデックス…aodagさんのご紹介とインデックスページです
  • その2…aodagさんに機械学習に興味を持たれたきっかけと転職活動について伺いました
  • その3…aodagさんにコミュニティ活動を始めたきっかけやPyCon JPの話を伺いました

「パーフェクトPython改訂2版」の紹介

f:id:kenken0326:20200821145452p:plain
kameko 共著で出した「パーフェクトPython改訂2版」(技術評論社)について教えてください。

aodag はい!これのことですね。第1版の時には「Webだけじゃないんだぞ!」と言う意気込みで書いたけど、今回は「データだけじゃないんだぞ!」と思って書きました。あ、これは個人的な感想です。
f:id:kenken0326:20200821152456p:plain

f:id:kenken0326:20200825182246p:plain

f:id:kenken0326:20200821145452p:plain
kameko 今はPythonと言えばデータというぐらいに、データの分野で人気がありますもんね。
「パーフェクトPython第1版」は入社前に買いました。初心者向けじゃない印象でした。

aodag たしかに頭から全部読む本じゃないと思っています。
導入は文法だけど「Hello world」からは始まらないからではないでしょうか。
けれども気になることをパラパラと読むだけでも、新しい発見があると思います。
f:id:kenken0326:20200821152456p:plain

f:id:kenken0326:20200821145452p:plain
kameko エンジニアは1冊持っていると安心だと思いますよ。aodagさんが執筆を担当した章について教えてください。

aodag 担当したのはPart3「実践的な開発」全般です。 Part2「言語仕様」に 非同期の章を追加しました。
実践的な開発では第一版のころもasyncoreを使った非同期処理は書いてあったのですが、非同期構文を使った例にまるまる書き換えました。
f:id:kenken0326:20200821152456p:plain

f:id:kenken0326:20200821145452p:plain
kameko 他に前回からの変更点はありますか?

aodag あとは、言語仕様に非同期に関する文法部分を追加しました。
まずは非同期を使ったフレームワークとかを触ってから読んでみたほうが理解できると思います。
スリープだけでタスクの説明をするのは本当に辛かったです。
f:id:kenken0326:20200821152456p:plain

f:id:kenken0326:20200821145452p:plain
kameko グラフィックを扱うアプリケーションをPythonで書いてみたいような人は、
他になかなか情報が少ないですし、「パーフェクトPython」はオススメですね。

aodag はい。PyQtをpipで簡単にインストールできるようになったので、前回Tkinter(ティーキンター、ティーケーインター)だったのがPyQt(パイキュート)の解説に変えました。昔はPyQtがpipで入らなかったので準備だけで10ページくらいかかりそうでした。 今はいい環境でできるようになりましたね。
f:id:kenken0326:20200821152456p:plain

解説: Tkinterとは
PythonでGUIを作成するための標準ライブラリです。
URL:https://docs.python.org/ja/3/library/tkinter.html

解説: PyQtとは
クロスプラットフォームなGUIツールキットであるQtの機能を、Pythonからでも使えるようにしたパッケージです。
URL:https://riverbankcomputing.com/software/pyqt/

f:id:kenken0326:20200821145452p:plain
kameko 書籍の想定レベル感を教えてください。

aodag 「とりあえず書けます」というレベルの人が、試してみたい技術を探ってもらえればと思って書きました。
一言で言うと「それで、Pythonって何ができるの?」と思っている人におすすめな本です。
f:id:kenken0326:20200821152456p:plain

f:id:kenken0326:20200821145452p:plain
kameko PyQで触れてないところを結構取り上げているので、PyQユーザーさんも楽しめると思います。

今後の展望

f:id:kenken0326:20200821145452p:plain
kameko 今後Pythonや関連する活動でやりたいことや展望はありますか?

aodag サーバーサイドや、サーバーレスの知見を深めたいと思っています。 あとは、プログラミング技術によってデータとサービスをもっとシームレスに繋げられるようにしていきたいです。
f:id:kenken0326:20200821152456p:plain

f:id:kenken0326:20200821145452p:plain
kameko データをモデリングすることとサービスを安定して稼働させることは、違う目的ですからね。

aodag はい。当然プログラマーの観点もコードの書き方も異なります。そこで最終的にそれらを1つのシステムとして活用する場合に、お互いが歩み寄れるようにするため、その間に立つ人になったり、間でいい感じに繋ぐような技術を試していきたいです。
データもアプリもできるPythonだからこそ、そういうことをやっていきたいですね。
f:id:kenken0326:20200821152456p:plain

f:id:kenken0326:20200823231556p:plain

f:id:kenken0326:20200821145452p:plain
kameko 良いですね。他には業務的なことや個人的に技術を深めたいことはありますか?

aodag Linux DesktopをPythonでカスタマイズをできると楽しいかなと思うのでそこら辺を調べています。
f:id:kenken0326:20200821152456p:plain

f:id:kenken0326:20200821145013p:plain
konie カスタマイズとはどういう感じなんですか?

aodag 専門的に言うとD-BUSを叩きまくると言う感じです。Linux Desktopは色々なサービスの集合体でできています。
そのサービスを動かすためのAPIが裏にあって、それをD-BUSと言います。インタープロセスの仕組みがあるのでそれをPythonからカスタマイズができるんですよ。
f:id:kenken0326:20200821152456p:plain

解説: D-BUSとは
プロセス間通信の仕組みです。GNOMEやKDEといったLinuxのデスクトップ環境が利用しています。

f:id:kenken0326:20200821145013p:plain
konie なんだか凄そうですね。

aodag 来年以降のPyConのネタにしていきたいですね。
f:id:kenken0326:20200821152456p:plain

オススメの学習方法

f:id:kenken0326:20200821145452p:plain
kameko 今からPythonを始める人にオススメしたい学習方法があれば教えてください

aodag それは、PyQやったらいいんじゃない?(笑)
f:id:kenken0326:20200821152456p:plain

f:id:kenken0326:20200821145452p:plain
kameko ありがとうございます(笑) PyQを知らない人のためにPyQの説明をすると、PyQは、実務をベースとしたテキストを用いて、ブラウザ内のエディターで手を動かして学ぶPython学習サービスです。

aodag ただ、「PyQやること」「本を読むこと」を目標とするのではなく、「これによってこんなことを得る」と言うことを目標に学習してほしいですね。
f:id:kenken0326:20200821152456p:plain

f:id:kenken0326:20200821145013p:plain
konie その教訓は覚えておきたいです。
それを聞いて私もPyQで学ぶのを目標にするのではなくて、PyQで何をできるようになりたいのか、ということを考えられるようにしようと思いました。

aodag 実際コミュニティなどで、「PyQのこの問題がわからない」みたいな質問をされることもあるんですよ。そうなると、「知らないよ!」と思ってしまいます。
けれども、「PyQでこんなことを習って、自分でもこういうものを動かしてみたんですが、できませんでした」という相談だと「助けてあげたいな」と思います。
f:id:kenken0326:20200821152456p:plain

f:id:kenken0326:20200821145013p:plain
konie 教えてもらう時には今話されたことを思い出すようにしたいです。

f:id:kenken0326:20200825182342p:plain

f:id:kenken0326:20200821145452p:plain
kameko いい話が聞けました。PyQの他にオススメしたいものはありますか?

aodag 手前味噌ですが、「パーフェクトPython」もおすすめです。
こんなことやりたい!」という何かを探す見本市として読んで、色々と試してみてください。
f:id:kenken0326:20200821152456p:plain

まとめ

f:id:kenken0326:20200821145452p:plain
kameko 最後に、Pythonの初学者に一言お願いします。

aodag Pythonに関する情報は多いけど、「すべてを鵜呑みにすんなよ」と言いたいです。
f:id:kenken0326:20200821152456p:plain

f:id:kenken0326:20200821145452p:plain
kamekoまずは試してみよう」ということですね。

aodag はい。いい話を聞いたら、まずは自分で手を動かして確認するのが大事です。
もう少し具体的にいうと、「xxなはず」を「xxでした」に変えていくのが大事です。
エラーが発生した時の切り分けとかも「xxだと思うんですよね」を「確認した結果xxだったので」に変えていこうということですね。
「xxなはず」と思う箇所が全部あっていたらおかしいところはないはずです。その認識違いを探すのが切り分けです。
f:id:kenken0326:20200821152456p:plain

f:id:kenken0326:20200821145452p:plain
kameko ためになる話をありがとうございました!

関連記事・バックナンバー

  • プロフィール・インデックス…aodagさんのご紹介とインデックスページです
  • その2…aodagさんに機械学習に興味を持たれたきっかけと転職活動について伺いました
  • その3…aodagさんにコミュニティ活動を始めたきっかけやPyCon JPの話を伺いました
Copyright ©2017-2020 BeProud Inc. All rights reserved.