Python学習チャンネル by PyQ

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

【エンジニア列伝vol.10 aodagさん (3/4)】「Pythonの話をするために自分でPythonコミュニティを作りました」aodagさんにコミュニティ活動を始めたきっかけやPyCon JPの話を伺いました。

f:id:kenken0326:20200824204422p:plain

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

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

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

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

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

コミュニティ活動を始めたきっかけ

aodag コミュニティには大学時代に顔を出すようになりました。
その後大学院を卒業し、名古屋で就職しました。
f:id:kenken0326:20200821152456p:plain

f:id:kenken0326:20200821145013p:plain
konie 就職先ではPythonを使っていましたか?

aodag PHPJavaを使う会社でした。 大学生の頃からPythonは触っていましたが、この時代はPythonはマイナーな言語でWeb開発はJavaやPHPで行うことが多い時代でした。
f:id:kenken0326:20200821152456p:plain

解説:PHPとは
Web開発に適しているオープンソースの汎用プログラミング言語です。 日本のたくさんのシステム構築の現場で採用されており、プログラマーの数も多いです。ドキュメントも充実しています。
URL:https://www.php.net/manual/ja/intro-whatis.php

解説:Javaとは
世界的に多くのシステム開発に用いられているプログラミング言語です。現在Oracle社が中心となって管理しており、大規模開発で利用するエンタープライズ(企業)向けの機能が充実しています。
URL:https://java.com/ja/about/whatis_java.jsp

f:id:kenken0326:20200821145013p:plain
konie その会社では、Pythonが話題になることはありましたか?

aodag いえ、Pythonの話をする人が職場に居なかったので、Pythonの話をするために自分で名古屋のPythonコミュニティを作りました。
f:id:kenken0326:20200821152456p:plain

f:id:kenken0326:20200825181102p:plain

f:id:kenken0326:20200821145452p:plain
kameko 行動力がありますね。
メンバーの勧誘はどうしたんですか?

aodag 勉強会で同じメンバーに会うことが多かったので、そこで勧誘しました。名古屋は人口が多いけど、ITコミュニティへの参加者は結構被るんです。だから各勉強会の日程が被らないように、勉強会後の飲み会で主催者同士がスケジュール調整するような状況でした。
f:id:kenken0326:20200821152456p:plain

f:id:kenken0326:20200821145452p:plain
kameko ちゃんと主催者同士でスケジューリングして開催していたんですね。

aodag そうですね。ただ勉強会を作ったものの、1年で東京に出てきちゃったから早々にPython東海の主催者を交代しちゃいました。
f:id:kenken0326:20200821152456p:plain

f:id:kenken0326:20200821145452p:plain
kameko そうだったんですね。まだその勉強会は続いているんですか?

aodag はい、続いています。今は5代目が頑張ってくれています。この前久しぶりに参加したら、知り合いがいなくて「初めまして!」みたいな初めて来た人の雰囲気になりました(笑)
f:id:kenken0326:20200821152456p:plain

解説:Python東海とは
2008年9月に東海地方でPythonistaが集まってPythonの話をするために作られた、Pythonを学ぶための勉強会です。
URL:https://connpass.com/series/292/

PyCon JPには毎年参加

f:id:kenken0326:20200821145452p:plain
kameko コミュニティーといえばaodagさんは毎年PyCon JPに出られていますよね。
f:id:kenken0326:20200821152456p:plain

aodag はい。でも去年はパッケージング関連の話がCfPに通らなくて悲しい思いをしました。 「こういうツールを活用するのがいいよ」という話は好評でしたが、ずっと応募してきたパッケージングの話がCfPに通らなかったのは辛かったですね。
f:id:kenken0326:20200821152456p:plain

解説:CfP(Call For Proposal)とは
プロポーザル(講演内容をまとめた提出内容)を募集することやその募集文章を、CFPと言います。
URL:https://blog.pyq.jp/entry/it_tips_190529_cfp

解説:パッケージングとは
ライブラリ(パッケージ)の形にする作業のこと。pipコマンドでインストール可能な配布物にすることや、配布する方法、ツールなどを含めたエコシステムです。

f:id:kenken0326:20200821145452p:plain
kameko パッケージングの話がCfPに通らなくなったのは、Pythonのパッケージング周りが改善されてきたこともありますね。 ところで今年は通ったんですか?

aodag 今年のCfPは気づいたら提出期限が過ぎていました。
f:id:kenken0326:20200821152456p:plain

f:id:kenken0326:20200825182141p:plain

f:id:kenken0326:20200821145452p:plain
kameko それは…。来年に期待ですね。

Python mini Hack-a-thon(pyhack)での活動

f:id:kenken0326:20200821145452p:plain
kameko PyCon JPの他にもZope/Ploneの開発者で集まる勉強会から発展したPython mini Hack-a-thon(pyhack)によく参加されていますよね。

aodag はい。初心者向けのstapyがあるなか、pyhackは上級者向けで初心者には敷居が高いと思われているかもしれないですが、全然そんなことないので参加者が増えるとうれしいです。
f:id:kenken0326:20200821152456p:plain

解説:Python mini Hack-a-thon(pyhack)とは
2009年の6月から続いているPythonのもくもく会です。元々はZope/Ploneの開発者で集まって開発や相談をする場でしたが、現在はZope/Ploneに限らず、Pythonに関するやりたいことを各自持ち寄って自由に進める場となっています。月1で開催されており、夏と冬には合宿もあります。Twitterのハッシュタグ #pyhack でも勉強会の様子を知ることができ、イベントの様子もまとめられています。
URL:https://pyhack.connpass.com/

解説:stapy(Start Python Club)とは
2015年5月に誕生したコミュニティで、Pythonの様々な分野(Webアプリ、データサイエンス、電子工作他多数)について、初心者から上級者まで幅広い層を対象に活動しています。主に月1回勉強会が開催されており、Twitterのハッシュタグ #stapy で勉強会の様子を知ることができます。
URL:https://startpython.connpass.com/

f:id:kenken0326:20200821145013p:plain
konie 確かに分かります。上級者が黙々とコードを書くようなイメージがあります。pyhackでaodagさんはどんなことされているんですか?

aodagこれは仕事にも使えそうかな」という技術を色々と試しています。勉強会で何をやっているかを詳しく知りたい方は勉強会当日に主催者の鈴木たかのりさんのTwitterを見てください。
f:id:kenken0326:20200821152456p:plain

※ pyhack当日の様子は、Togetterでもまとめられています。また、Twitterのハッシュタグ #pyhack からも確認できます。 togetter.com

また、鈴木たかのり氏は第2回エンジニア列伝にゲストとして登場しました blog.pyq.jp

どのようにPythonを習得したか

f:id:kenken0326:20200821145452p:plain
kameko aodagさんはどのような方法でPythonを学習しましたか? 初心者が特に気になるトピックだと思うので教えてください。

aodag ソースコードを読んで書いて覚えました。
f:id:kenken0326:20200821152456p:plain

f:id:kenken0326:20200821145013p:plain
konie え!!今みたいに専門書がなかったんですか!? それはとても大変ですね。

aodag Pythonが日本でマイナーなこともあって和書はオライリー(O'Reilly Japan)から2冊出てたかなという程度でした。
f:id:kenken0326:20200821152456p:plain

f:id:kenken0326:20200821145452p:plain
kameko ソースコードはどこで読めるんですか?GitHubなどのプラットフォームはまだ登場していない時代ですよね?

aodag 昔からオープンソースはソースコードを配っているんですよ。 どのように配っているかというとanonymous FTPという誰でもダウンロードできるFTPサーバーがあるのでそれを使いました。基本的に配布しかしていないのでリリース版のtar ball(ターボール)がリリースごとに置いてあります。
f:id:kenken0326:20200821152456p:plain

f:id:kenken0326:20200825181543p:plain

解説:GitHubとは
Gitを使った開発を便利にするホスティングサービスです。GitHub上にソースコードをホスティングすることで複数の開発者とお互いのコードレビューができます。
URL:https://github.co.jp/

解説:anonymous FTP とは
FTPプロトコルを用いて、 世界の誰でも自由にファイルを取得できるサービスです。

解説:tar ballとは
「tar」コマンドで作成したアーカイブファイルを指します。

f:id:kenken0326:20200821145452p:plain
kameko コードを貰えるのはいいけど、GitHubでPull Requestを出すような修正を送りたくなったらどうしたらいいのでしょうか?

aodag anonymouse FTPはこちらから送ることはできないので、何かある場合は公開されているメールアドレスにパッチを送りました。 Issue tracker(イシュートラッカー)などもなかったので理解できないことがあれば直接コードを書いた人にメールを送りました。
コミュニティとして大きくなるとメーリングリストがあるんだけどね。
f:id:kenken0326:20200821152456p:plain

解説: Issue trackerとは
課題を管理するためのツールです。課題管理システムとも呼ばれます。開発中のタスクを登録し、そのステータスを追跡、管理できます。有名なイシュートラッカーとしては、RedmineやJira、Backlog、GitHubなどがあります。

f:id:kenken0326:20200821145452p:plain
kameko 個人に送ると返事が来るんですか?

aodag 基本的には返事なんて来ないという感じでした。
f:id:kenken0326:20200821152456p:plain

f:id:kenken0326:20200821145452p:plain
kameko そうなんですね。 ところで当時Pythonで書かれた一番大きいフレームワークは何ですか?

aodag あの当時はZopeでした。
そこで大きなアプリケーションのコードなどを読んで覚えました。
今読んでみると泥臭いコードだったと思います。「今のPythonは読みやすい」という特徴とは大違いですね。
f:id:kenken0326:20200821152456p:plain

解説:Zope(Z Object Publishing Environment)とは
Pythonで書かれた、オブジェクト指向ウェブアプリケーションサーバ、およびWebアプリケーションフレームワークです。
URL:https://www.zope.org/

f:id:kenken0326:20200821145452p:plain
kameko その中で覚えるのは大変そうですね。

aodag とはいえFTPしかなかった時代は短くて、オープンなリポジトリで共有されるようになったので助かりました。
f:id:kenken0326:20200821152456p:plain

次回の内容

今回はaodagさんにPythonを使うメリットと、オススメの機械学習の学習方法について伺いました。
最終回となるその4では、「パーフェクトPython改訂2版」のエピソード、オススメしたい学習方法を伺います。

blog.pyq.jp

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

Copyright ©2017-2020 BeProud Inc. All rights reserved.