Start Python Clubは、
Start Python Club設立のきっかけ
- ――Start Python Clubは今年で3年を迎えるそうですね。おめでとうございます。時々イベントに参加させてもらっていますが、
いつも大勢の方でにぎわっていて楽しいコミュニティだと思います。Stapyは3年前にどのように始まったのでしょうか? 元々、 阿久津さんと辻さんは知り合いだったのですか? 阿久津:いいえ、
元々知り合いだったわけではありません。私は2014年にPythonの勉強を始めたのですが、 最初に手に取った書籍が辻さんの 『Pythonスタートブック』 でした。全くの初心者でしたが、 スタートブックはとてもわかりやすくて、 1ヵ月ほどで読み終え、 基本を覚えました。 しかし、
その後数か月かけて学習を続けたものの、 なかなか業務に使えるレベルまで成長できずに、 悩んでいました。その頃、 偶然、 高校時代のバスケ部の後輩Aさんが辻さんの所属する研究室で一緒に働いていることを知りました。周りに誰も悩みを相談できるメンターがいなかったので、 すがる思いでAさんにお願いして、 辻さんと会う機会を作ってもらいました。 辻:最初にお会いしたのが3年前の4月でしたね。Aさんとのつながりが知り合うきっかけになりました。勉強方法や周辺の技術などについて、
いろいろとアドバイスをしましたが、 阿久津さんと話しているうちに、 プログラミングをどのように学べばよいか、 わからなくて困っている人が多くいることに気づきました。当時のプログラミング勉強会の多くは、 技術を知っているエンジニアが主催していましたが、 初心者には敷居が高い傾向がありました。阿久津さんとは初対面でしたが、 お互い意気投合して初心者目線の勉強会を開催することになりました。 最初のStart Python Club
(以下 「Stapy」)の勉強会は、 2015年5月にここ、 東京大学駒場キャンパスで開催しました。 - ――なるほど。初めて使った会場がこちらなんですね。
阿久津:そうです。あのときはスタッフも含めて18名のこじんまりした勉強会でした。初回は私と辻さん、
それからMapRの草薙さんの3人が発表しました。実は草薙さんもAさんと同じく高校のバスケ部のつながりでして、 人の縁でできた手作りのイベントでした。 人の縁という意味では、
リーディング・ エッジ社の岸さんと知り合ったこともStapyにとってもは重要でした。初回の勉強会で、 「このイベントは面白いから、 次回以降はウチの会場を使いませんか?」 と言ってくれたのは、 本当にありがたかったです。第2回以降は、 毎月リーディング・ エッジ社の親会社であるクリーク・ アンド・ リバー社さんの会場を借りてイベントを開催しています。継続的に一定の場所を使うことができたおかげで、 Stapyの活動が続いたと思います。岸さんをはじめ、 リーディング・ エッジ社さんにはとても感謝しています。 辻:そのとおりですね。岸さんにはとても感謝しています。同じく初回に参加していた、
Akari Inc.の山下さんには第2回から企画スタッフに入ってもらっていますし、 常連の参加者だった阿部一也さんには、 今では企画で大活躍していただいています。ほかにもボランティアで参加しているスタッフがたくさんいて、 人の縁でできているコミュニティですね。 Pythonはいろいろな処理を自動化するのにも役立つので、
ビジネスマンや学生向けに、 業務を効率化するためのツールとしてPythonを学んでもらおうと、 最初の数回は 「業務のためのPython勉強会」 と名乗っていました。その後、 初心者からマスターまで集まってもらうため、 「みんなのPython勉強会」 と名前を変えました。 正直なところ、
最初は2、 3回も続けばいいかな~と思ったいたんですよね (笑)。勢いで始めたけれど、 まさか3年間も続くとは思いませんでした。やはりPythonにプログラミング言語としての勢いがあり、 盛り上がってきたことが大きいと思います。
Pythonが盛り上がった背景
- ――なぜPythonが盛り上がってきたのでしょう?
辻:Pythonはオープンソースの汎用のスクリプト言語で、
いろいろな用途に使われています。とくにこの数年は、 データサイエンスへの応用が盛り上がっています。 元々、
コンピュータは手計算に頼っていた科学技術計算を、 自動処理することで高速化することを目的に発明された機械ですから、 昔からプログラミングを使ったデータ解析は行われています。私の専門はバイオインフォマティクスですが、 この分野ではRやSAS、 Excelなどのツールが使われていました。しかし、 ある処理はR、 ほかの処理はExcelのように、 データ処理の工程全体を一気に行えるツールがありませんでした。ところがオープンソースのPythonが普及して、 パッケージも豊富になってくると、 ユーザが増えて、 それがさらに開発を加速するという好循環が生まれたんですね。Stapyが発足した2015年ごろは、 まだRの方がプラットフォームとしては主流でしたが、 その後、 RからPythonに多くの人が流入してきました。 データサイエンス界で有名なKDNuggetsのサイトでは、
毎年データサイエンティストが使うツールについてアンケートが発表されるのですが、 2017年末にはPythonのユーザ数がRのユーザ数を上回るようになりました。 - ――多くのデータサイエンティストがオープンソースソフトウェア
(OSS) を使うようになったのですね。ここはもう少し聞いてみたいです。なぜデータ解析のツールとしてとくにPythonが盛り上がったのでしょう? 辻:いくつかの原因があると思いますが、
まず可読性つまりリーダビリティが高いことが挙げられます。Pythonは可読性に優れたスクリプト言語です。同時に、 予約語が少ないので、 コードを書くのも楽で、 あまりプログラミング経験がない人でも、 比較的簡単にスキルを習得できます。プログラミングを専門としない研究者やエンジニアであっても、 オープンソースで提供されている機械学習や統計のパッケージを使えば、 スクラッチでプログラミングをすることなく、 容易に結果を出すことができるため、 ユーザが増えました。 次に、
オープンソースであることが挙げられます。科学技術分野ではデジタル信号処理や遺伝子解析など特殊用途のライブラリが整っているMATLABやMathematicaといったライセンスソフトウェアを使うユーザも多かったのですが、 Pythonではnumpyをはじめ、 scikit-learnやpandas、 matplotlibなどの計算ライブラリが充実したことで、 ライセンスソフトからオープンソースのPythonに移行するユーザが増えました。今では一部の分野で、 商用のライセンスソフトよりも高機能なライブラリをPythonが提供しているケースもあるほどです。 最後に、
Pythonはデータ解析にとどまらず、 ウェブアプリやサーバ構築など、 マルチに使える汎用性が高いことが挙げられます。Pythonはurllibやrequestsなどのウェブ関連のライブラリや、 DjangoやBottleといったウェブフレームワークが利用できます。numpyなどの計算ライブラリを使って、 データ処理のパイプラインをPythonで一気通貫に実行した上で、 さらにウェブサービスのバックエンドまでカバーできるので、 非常に強力なツールとなります。 阿久津:それから、
AI分野の盛り上がりがさらにPython人気に拍車をかけたと思います。Stapyの活動を開始した2015年は、 秋ごろにTensorFlowやChainerといった深層学習パッケージがPythonのライブラリとして公開されました。当時の勉強会の参加人数は30~50人くらいでしたが、 機械学習やデータ解析を特集にすると、 明らかに参加者が増えました。参加者からアンケートを取ると、 AIに注目している人が多かったので、 AI分野の盛り上がりが、 Pythonを盛り上げるひとつの要因になったと思います。
参加者の関心分野
- ――Pythonに関心を持つ人が増えているようですが、
多くのPythonのコミュニティのなかでも、 Stapyはメンバーが多く、 かなり人気があるように伺えます。Connpassのサイトを見ると、 毎回100名以上の参加者が来ていますよね。みなさん、 どのような関心を持って、 参加しているのでしょうか? 阿久津:参加者の関心は大きく分けると2つの方向に分かれます。1つはウェブアプリ、
もう1つは機械学習や統計を中心としたデータサイエンスです。この2つについてはそれぞれ特集を組んで、 勉強会を行っています。それからIoT、 ハードウェア系にも大きな関心が集まっていますので、 何度か取り上げてきました。 ただしいずれの分野においても、
実用レベルに達するにはプログラミングの知識だけでは足りず、 その周辺の知識が欠かせません。そこでStapyでは、 これらの特定の分野のプログラミングを扱うだけではなく、 バージョン管理システムやアジャイル開発など、 周辺の技術や知識もコンテンツに加えるようにしています。プログラミングだけだと、 どうしてもマンネリ化してしまうので、 アクセントをつけた企画を行うようにしています。
Stapyの振り返り
- ――3年間のコミュニティ活動を振り返って、
とくに印象に残った講演、 面白かった講演はありますか? 辻:毎回、
スタッフで面白い講演を企画しているので、 どれも興味深いものばかりですが、 とくにPepperの感情生成エンジンを作った東京大学の光吉先生の講演が印象に残っています (第10回:2016年1月)。Pepperの感情をカラーマップで示して、 言葉の抑揚を変えることができるのは面白かったです。なにより冬なのに、 タンクトップだった光吉先生にはさらに驚きましたが…… (笑)。 それから東京大学の加藤真平先生の自動運転用のOSS、
Autowareの話は強烈でした (第20回:2017年1月)。自動運転のOSSは発想自体が飛び抜けていましたが、 Udacityの創設者のSebastian Thrunと共同開発をするなど、 加藤先生の活動は日本発のベンチャーとしても面白かったです。 阿久津:どちらも10回、
20回と記念イベントとして、 とくに著名な研究者やエンジニアに話してもらいたかったので、 企画を練りました。30回も同じように記念イベントとして、 『いちばんやさしいPythonの教本』 の鈴木たかのりさん、『Pythonエンジニアファーストブック』 の関根裕紀さん、『PythonユーザのためのJupyter[実践]入門』 の片柳薫子さんと@drillerさんといった、有名なPython本の著者の方々に講演してもらいましたが、 この回も盛り上がりましたね (第30回:2017年11月)。
コミュニティとしての広がり
辻:コミュニティ活動を継続して、
参加者が増えてくると、 コミュニティとしての認知度もどんどん高まって、 PythonやITの界隈で有名な方にも講演してもらえるようになりました。Connpassを運営しているビープラウドの佐藤治夫さんが、 コミュニティマネージャーSummit2017というイベントで、 すごいコミュニティの1つとして挙げてくれたのはうれしかったです (スライド資料)。 阿久津:コミュニティとして成長すると、
企画・ 運営を手伝ってくれるスタッフも増えました。長野のGeekLab. Nagano というコミュニティを運営している中島祐樹さんは、東京の勉強会に参加した後、 長野にもライブ中継してほしいというリクエストをくれました。そこでデスクトップ共有のウェブアプリを使って、 長野のGeekLab. Naganoをサテライト会場として、 ライブ中継しました。中島さんにはStapyの長野支部長として、 月例の勉強会のライブ中継や巡業イベントを手伝ってもらっています。こうして地域的な広がりができたのもよかったです。 これまでに長野で2回、
日本橋の理研AIPとつくばでそれぞれ1回、 巡業イベントをやってきましたが、 それぞれ定例の勉強会とは異なる分野のユニークな講演が聞けて、 知見が広がるのが楽しいです。 - ――Stapyはほかのコミュニティとの交流に積極的ですよね。理研AIPやつくばの研究機関とも共同で、
アカデミック向けのイベントを開催しているのはユニークです。 辻:昨年5月に理研AIPで開催した
「Stapy x 理研AIP オープンソース研究会」 はエポックメイキングだったと思います。理研AIPと東京大学を兼任されている津田宏治先生に声をかけていただき、 理研AIPとオープンソースのコミュニティで交流するイベントの相談をいただきました。 ご存知の通り、
人工知能やコンピュータサイエンスの分野に限らず、 材料科学、 生命科学、 機械工学、 宇宙物理、 素粒子物理など、 多くの科学技術分野では大量のデータをコンピュータで解析します。最近では 「オープンサイエンス」 という言葉も普及してきましたが、 オープンソースの流れはソフトウェア業界にとどまらず、 アカデミックな科学技術分野にも浸透しています。 理研AIPでの研究会では、
Chainerの開発をしているPFNの大野さんや、 Pandasのコアコントリビューター (主要な開発者) として有名な堀越さんに講演していただき、 日本のサイエンティストやエンジニア、 プログラマがどのように世界のオープンソースの潮流に乗っていくべきかを考える貴重な機会になりました。
ハンズオンへの展開は?
- ――いろいろなテーマに取り組んで、
試行錯誤しているようですね。Stapyは毎回、 講演を主体にイベントを開催していますね。アンケートを取られていますが、 ハンズオンやチュートリアルをやってほしいという要望はないのですか? 阿久津:ハンズオンをやってほしいというリクエストはたくさんもらっています。ただ毎月、
限られた時間の中で、 限られた人数のスタッフでイベントを運営しているので、 リクエストに応えきれないのが現状です。 辻:実はハンズオンにはトライしたことがあります
(第4回:2015年9月)。ただそのときは、 参加者のレベル、 マシンのOSや実行環境もバラバラだったため、 全体をまとめきれませんでした。これは大きな反省点でした。勉強会の時間は2時間と限られているし、 参加者も多いので講演形式を取っています。 阿久津:スタッフとしては常にハンズオンをやりたいという気持ちはあります。今年3月、
2回目の長野の巡業イベントをやったときは、 参加者を限定して、 開発スプリントをやりました (長野第2回:2018年3月)。レベルもテーマもバラバラで、 自分が開発したいテーマを持ち込んでもらい、 半日かけてみんなで開発を行いました。 印象的だったのは、
Stapyスタッフでメンターとして参加した横山直敬さんが、 中学生プログラマSくんと一緒に並んで座りながら、 Djangoのプログラミングをやっていたことですね。プロのプログラマと中学生のプログラマがペアプログラミングに近い状態で、 開発をやっているシーンは巡業ならではの出来事だったと思います。
Stapyで伝えたいメッセージ
- ――リアルなイベントならではの人のつながりを楽しんでいるのが伺えます。あらためて、
Stapy参加者に伝えたいメッセージはありますか? 阿久津:私自身の経験として、
よく勉強会で 「Python学習のTIPs」 として、 T (Textbook:教科書)、 I (Internet:インターネット)、 P (People:人) が大切だと伝えています。 T
(教科書) はとくに独学者には重要なリソースです。たくさんの本がありますが、 玉石混交なので自分の力量や方向性にあった教科書を見つけて、 しっかりと基本を身につけたい。I (インターネット) は今は学習に欠かせない鉄板のリソースです。わからないことをウェブで検索して理解することはとても効果的ですし、 今ではMOOCのようなオンライン学習のコンテンツも充実しています。しかしノイズとなるムダな情報も多いので、 大量の情報に溺れないよう気をつける必要があります。TもIも重要なのですが、 私が一番大切だと思っているのがP (人) です。 コミュニティのイベントに行って、
仲間やメンターを見つけることが、 学びを広げるのにとても有効です。私のように周りに教えてもらえる人を見つけられず独学で学んでいると、 わからないことがあったときに先に進めなくなって、 モチベーションが保てなくなることがあります。しかし仲間やメンターがいると、 気軽にわからないことについてアドバイスをもらうことができます。逆に自分が知っていて相手が知らないことがあるときは、 さっと教えてあげる。そんな互助の関係を作る場としても、 コミュニティに参加することは有効だと思います。 さきほどの長野イベントでの出来事はまさに好例ですよね。コミュニティで得た恩恵を、
コミュニティに返すことで、 エコシステムが回っていくと思います。 - ――コミュニティに還元するという話はOSSにも通じる考えですね。でもエンジニアには対面が苦手な人も多いと思いますが、
どうすればよいのでしょう? 阿久津:それでも外に出て行って、
人と会ったほうがいいと思います。もしT (教科書) とI (インターネット) だけで十分に学習ができるのであれば、 それでもよいかもしれません。しかしP (人) と会って話すと、 必ず自分だけでは気づかない偶然の学びがあるはずです。コミュニティはそういう偶然の学びに出会う場として、 とても有効です。 3年前、
『Pythonエンジニア養成読本』 の読書会に参加して、鈴木たかのりさん、 池内孝啓さん、 関根裕紀さん、 清原弘貴さん、 嶋田健志さんといったPythonコミュニティのエンジニアと仲良くなりましたが、 みなさんからはPythonやIT関連の技術を学んだほか、 オープンソースのコミュニティの人たちとの息づかいというか、 考え方や文化を学びました。みなさん技術に詳しいことはもちろんですが、 知的好奇心が豊かで、 フランクで明るいんですね。私にとってはとても素晴らしい出会いで、 彼らにとてもインスパイアされました。 どうしても職場の固定された人間関係の中で閉じこもっていると、
クローズな思考になってしまいがちです。しかしコミュニティのイベントに参加して、 オープンソースの文化に触れることで、 クローズな環境では得られない新しい知識が増えます。実際にハードウェア中心の製造業である私の職場には、 Gitなどのバージョン管理システムや、 アジャイル開発のことを知っている人は少なかったのですが、 コミュニティで得た知識が自分の仕事の枠を広げるのにとても役に立っています。
『Pythonスタートブック[増補改訂版]』の注目ポイント
- ――ところで辻さん、
「Pythonスタートブック」 が2018年4月に発刊されましたが、の増補改訂版 だいぶ厚くなりましたね。かなり追記されたのでしょうか? 辻:はい。ウェブとデータ解析の章を追加しました。初版は2010年に発行しましたが、
それから8年の間にだいぶPythonの仕様やそれを使う実行環境が変わってきました。とくにPython 2系から3系へのシフトが大きな変化点でしたので、 第2版ではすべてのサンプルコードをPython 3系に揃えました。 - ――初版は2010年だったんですね。辻さんはかなり前からPythonに触れていたようですが、
いつごろからPythonを使ってきたのでしょうか? 辻:Pythonを使い始めたのは2006年でした。当時はPythonの生みの親、
Guido van RossumがGoogleに勤務していて、 Google App Engineなどのサービスを開発するためにPythonを使っていました。PythonはGoogleとNASAが使っているということで、 プログラマの間では注目されていたので、 私も使ってみたのですが、 ウェブ系のライブラリが揃っていて便利でしたし、 なによりもコードが読みやすいので、 ハマりました。 - ――改訂版ではウェブフレームワークについても触れているのですか?
辻:いいえ。スタートブックは、
Pythonの標準ライブラリに入っているモジュールを使うことを基本コンセプトとしているので、 ウェブフレームワークは使っていません。ただし本格的なウェブアプリを開発するときはウェブフレームワークを使ったほうが便利なので、 その点だけ10章の最後の方に書いておきました。 - ――データ解析の章はどんな内容ですか?
辻:データ解析を扱うと、
とても1章だけでは書き切れません。改訂版ではSQLの紹介も兼ねて、 turtleモジュールのカメを動かして、 ヒストグラムを描くという題材を載せました。実はクラスの継承の話題も入っているので、 最後の章にふさわしい難しさになったかなと思います。 阿久津:改訂版ではだいぶ内容が追加されていますが、
個人的には付録が充実したと思います。困ったときに参考にすべき、 書籍や標準ドキュメント、 Stack Over Flowなどが紹介されていて、 とても参考になりました。
Stapyのこれから
- ――最後にこれからStapyでやっていきたいことをお伺いします。
阿久津:Stapyは草の根コミュニティなので、
この活動を継続していくことが大切だと思います。私自身はプロのプログラマでもなければ、 データサイエンティストでもありませんので、 特定の技術分野について詳しいわけではありません。Pythonを軸としながら、 いろいろなIT技術についてキュレーションをするような感覚で、 イベントを企画しています。特定の分野に縛られないから、 人的なネットワークが広がり、 コミュニティの参加者も増えているのだと思います。長野のGeekLab. Naganoや理研AIP、 つくばの研究機関とのコラボは、 まさに草の根的な活動だからこそ実現できたと思います。ほかのコミュニティや団体との異文化交流が、 人と人の新しいつながりを作ります。それが何か新しいイノベーションやコラボレーションなどの具体的な行動につながることを期待しています。 辻:エンジニアやプログラマではない人でも気軽に参加できるコミュニティを続けたいですね。初心者向けのプログラミング勉強会という形でStapyを始めましたが、
これほど多くのニーズがあるとは思いませんでした。多くの方々のが参加してくれるニーズがある限りはこのコミュニティを続けていきたいと思います。 最近はAIがブームになっていて、
ちょっとデータ解析ができると、 会社の上司に 「じゃあAIの仕事をやってみてよ」 というムチャぶりをされて、 どうしたらよいか困ってStapyに来る方もいます。IoTとかブロックチェーンとか、 新しい技術がどんどん出てくるなかで、 それらにうまくキャッチアップできるよう、 Stapyが受け皿になれるといいと思います。 阿久津:それから私はとくに若い人たちをエンカレッジしたいです。Stapyのイベントは基本的に学生は無料で参加できるようにして、
意欲のある学生の参加を応援しています。毎回、 懇親会のとき、 自由に参加者にLT (ライトニングトーク) をしてもらっているのですが、 技術的に面白いLTを何回もやってくれる常連がいます。私は密かに彼らを 「LT王子」 と呼んでいるのですが、 初代LT王子の山田聡さんはPyConJP 2016でBottleのチュートリアルを務めた実力派のエンジニアですし、 二代目LT王子の横山直敬さんはLTをするために一生懸命に新しい技術を習得して、 発表ネタを作るという 「LT駆動学習」 という新しい造語も作ってくれました。今は修士課程2年生の藤武将人さんがDeep Learningネタで三代目LT王子として大活躍しています。彼らのように高いモチベーションを持っている若い人には、 発表の場をできるだけ提供して、 自分のスキルをアピールしてもらいたいと思っています。勉強会に出て、 新しい情報を聞くインプットはひとつの学びになりますが、 自分の学んだことをアウトプットすることはより大きな学びになりますし、 何よりも自信につながります。私はStapyに来てくれた人の中から、 いずれ世界で活躍する人が出てくることを期待しています。