PyQオフィシャルブログ

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

手をいつでもあげられるように素振りをしよう 〜 Pythonエンジニア列伝 Vol.1 清水川貴之氏(前編)

f:id:kamekokamekame:20170824143804p:plain

チャンスに恵まれている人って、普段から素振りをしながら色々なところに網を張っているからこそ、いざという時に運を捕まえられますよね。僕も素振りをしていた期間は長かったですね。

Pythonエンジニア列伝は Pythonエンジニアとして活躍する方にインタビューしよう! という連載です。 PyQオフィシャルブログとして、Pythonを単なるプログラミング言語としてではなく、日常や仕事で使えるものとしてお伝えしたいと考えています。Pythonエンジニアたちのインタビューを通して、Pythonを使う人達がどんな人なのか、どんな場面で活用しているのか、なぜPythonに出会ったかなどを知ってもらいたいと思います!

Pythonエンジニア列伝 Vol.1 - 前編 清水川貴之(シミズカワタカユキ)氏

さて、栄えある第一回目は、株式会社ビープラウド所属の清水川貴之氏をお招きました。 Sphinx*1コミッターであり、一般社団法人PyCon JP 会計理事を担当されています。

f:id:kamekokamekame:20170824143039p:plain:w150

最近、Pythonとどのように関わっていますか?

f:id:kamekokamekame:20170824143145p:plain:w100

仕事では仕様書を書いたり、データ系プロジェクトに参画しています。仕様書を書きながら読みやすいドキュメントのありかた、みたいなことを考えたり、書き方を変えて試したりしてます。また、データ系のプロジェクトでは、お客さんが別のところで用意した機械学習のPythonコードをWebアプリに組み込んでいます。昨年から社内で開催されている機械学習勉強会に参加して学んだことが、ここで役立っています。と言っても、機械学習の用語やニュアンスが分かって、おかしいなと思ったことをJupyter Notebookで検証して、という程度ですが、これだけでもコミュニケーションコストがかなり低くできています。

OSS(オープンソースソフトウェア)では、もちろんSphinxですね。毎月、Sphinx-users.jpで主催しているSphinx+翻訳 hack-a-thon*2 に参加しています。

f:id:kamekokamekame:20170824143200p:plain:w100

Sphinx+翻訳 hack-a-thonではどんなことをしているんですか?

f:id:kamekokamekame:20170824143145p:plain:w100

Sphinx+翻訳 hack-a-thonでは、参加者それぞれが好きなことをやってます。私や、小宮さん: @tk0miya 、レギュラーメンバーのうさたーん: @usaturn は、Sphinxの本 *3の改訂作業をやっていたり、Sphinxそのものの開発を行ったり、新しく来た人にSphinxのことを教えたりしています。他の参加者は、Sphinxのインストールから始める人もいれば、Sphinxドキュメントの翻訳を手伝ってくれる人、SphinxのGUIフロントエンドを作ろうとしている人など、さまざまです。

f:id:kamekokamekame:20170824143039p:plain:w150

Pythonをはじめたきっかけはなんですか?

f:id:kamekokamekame:20170824143104p:plain:w100

Zope*4をカスタマイズしたくて、そのためにPythonを覚えました。アプリケーションをカスタマイズしたい気持ちが先で、その手段としてPythonがついてきました。

f:id:kamekokamekame:20170824143043p:plain:w100

Pythonを知る前はC言語、C++を大学生、社会人とやっていました。最初の仕事は組み込み系エンジニアでした。

f:id:kamekokamekame:20170824143039p:plain:w150

もともと組み込みの人なんですね!

f:id:kamekokamekame:20170824143043p:plain:w100

朝、会社に1時間早く行って勉強していました。仕事のコードをPythonで書いてみて、始業時刻になったらC言語でプログラミングということを2ヶ月ほど続けました。会社のみんなはPythonをインストールしていないし、Pythonをバイナリで配布しようとすると数十MBのファイルを配る必要があって、2005年当時は手軽とはいえなかったので、配布は断念しました。

f:id:kamekokamekame:20170824143757p:plain:w100

Webの人はずっと昔からWebやってるってイメージ持たれることあるんですけど、他業界から転向考えてる人には後押しになりますね。

f:id:kamekokamekame:20170824143034p:plain:w100

初めて参加したコミュニティはなんですか?

f:id:kamekokamekame:20170824143145p:plain:w100

初めて参加したコミュニティイベントはZope Weekend*5でした。他にもPlone*6研究会にも参加するようになり、Python関連の知り合いが急に増えました。田原悠西さん: @tahara001 *7 が開催したZope3勉強会にも参加するようになりました。勉強会のあとの飲み会で、参加した他のエンジニアと話すのがとても楽しかったです。

あまりに楽しく、タイムインターメディア社に転職しました。2004年、29歳のときでした。そのままZope部に所属しました。

f:id:kamekokamekame:20170824143054p:plain:w150

Zopeで部署あったんですか!?

f:id:kamekokamekame:20170824143145p:plain:w100

はい。Java部、Zope部とか言語が部署名でした。となりにアジャイル部もありました。

f:id:kamekokamekame:20170824143145p:plain:w100

2009年にZope/Plone開発勉強会*8を寺田さん: @terapyon、鈴木たかのりさん: @takanory(両者ともに一般社団法人PyCon JP 理事)と飲んでいるときの話の流れで、プログラミングする場が欲しいよねー、という話になり立ち上げました。さらに知り合いが増えて、いろいろあってエキスパートPythonプログラミングの翻訳の仕事も舞い込みました。

f:id:kamekokamekame:20170824143034p:plain:w100

その後、フリーになるんですか?

f:id:kamekokamekame:20170824143043p:plain:w100

海外のZope関連の会社が、日本支社を立ち上げるという話があり、そこの技術スタッフとしてオファーがあって、参加するつもりで退職しました。しかし、その話が無くなってしまったのでフリーランスでしばらく仕事をすることにしました。

前職でRuby on Railsでの開発などもしていた関係で、万葉さんのお仕事をさせてもらってました。その後、個人事業主としてビープラウドを含め何社かの仕事をしていましたが、大きめのPythonの開発案件のオファーを頂き、1人では規模的に難しいと思い、ビープラウドに相談し一緒にやることにしました。その流れで案件が長くなりそうだったので入社しました。

f:id:kamekokamekame:20170824143039p:plain:w150

けっこうふらふらしてますね。組み込みやったりして。Pythonを本格的にやり始めたのはZope部に入ってから?

f:id:kamekokamekame:20170824143104p:plain:w100

そうですね。自分のサイトもZopeで動かしていたんで、使い勝手は知ってました。

f:id:kamekokamekame:20170824143149p:plain:w100

いろいろ手を出して繋がったんですね。点はいっぱい集めておかないと線にならない。まさにコネクティングドッツ*9ですね。

f:id:kamekokamekame:20170824143043p:plain:w100

チャンスに恵まれている人がいるという話は、普段から準備していろんなところに網を張っているからこそオファーを受けられる。野球だと普段から素振りをしていないといい球が来ても打てないですよね。 会社の命令でやっているわけじゃないし、自分がどれだけの時間を使うかは自分次第。チャンスが来た時に準備ができているかどうかも自分次第です。

エキスパートPythonプログラミングの翻訳もPySpa*10で英語原書の目次を見せたら、「おー、この本いいんじゃない?」となって、4人で翻訳する流れになりました。書籍の出版については、ASCIIの鈴木嘉平さん: @kahei とPlone研究会で顔見知りだったため、持ち込みで相談して、出版のメリットなどを説明して出版会議にだしてもらい、無事出版できることになりました。

f:id:kamekokamekame:20170824143104p:plain:w100

書籍の翻訳が私のデビューだとすると、2010年、35歳まではずっと下積みだったといえそうです。 最近、30歳は新しいことを始めるには遅すぎるという話を聞いたりもしますが、やりたい時に始めれば遅いということはないです。若くてすごい人はたくさんいますが、比べても仕方ないですしね。

(後編に続く)

blog.pyq.jp


こちらはPython入門者の集いで清水川氏が発表したスライドです。

www.slideshare.net

PyQオフィシャルブログでは『Pythonエンジニア列伝』を不定期掲載します。Pythonに関わっているさまざまな人にインタビューし、これからプログラミングを学習する方にエンジニアが普段考えていることややっている活動などを紹介していきます。

(聞き手:佐藤治夫: @haru860、清原弘貴: @hirokiky / 執筆:大村亀子: @okusama27

*1:多くのPython関連のドキュメントの作成に使われているドキュメント作成ツール。PyQのドキュメントもSphinx製です。

*2:エンジニアが集中して開発するイベント

*3:Sphinxをはじめよう, 2013 オライリー・ジャパン

*4:Python製Webアプリケーションフレームワーク

*5:参照: JZUGがZopeイベント「Zope Weekend 4」を7月31日に開催 - ITmedia エンタープライズZope Weekend 4 会場より - モジログライトニングなトークをしてきました — 清水川Web

*6:Zope上で動くコンテンツ管理システム

*7:株式会社Nexedi 代表取締役社長。元タイムインターメディア社所属

*8:現在のPython mini Hack-a-thon

*9:アップルコンピューターの創業者であるスティーブ・ジョブズ氏がスタンフォード大学の2005年の卒業式のスピーチした際の明言。"you can’t connect the dots looking forward; you can only connect them looking backwards. So you have to trust that the dots will somehow connect in your future. “(訳)先を見通して点をつなぐことはできない。振り返ってつなぐことしかできない。だから将来何らかの形で点がつながると信じることだ

*10:Pythonエンジニアで温泉に行くイベント