Pythonエンジニア列伝は、「Pythonエンジニアたちのインタビューを通して、Pythonを使う人達がどんな人なのか、どんな場面で活用しているのか、なぜPythonに出会ったかなどを紐解く」連載です。 連載はトピックごとになっているので記事単体でも読むことができます。この記事では、cocoatomoさんご本人のPythonとの関わりやキャリアパスについてのお話を聞きました。この記事はPythonエンジニア列伝第四回の6記事目です
バックナンバー
- その1…cocoatomoさんの紹介と技術ドキュメント翻訳との関わりや歴史を聞きました。
- その2…Pythonドキュメント日本語訳プロジェクトの足跡を聞きました。
- その3…PEP454と翻訳にともなうグローバルなコミュニケーションのお話を聞きました。
- その4…プロジェクトへの参加方法とPythonコミュニティのメリットを聞きました。
- その5…語学面でのドキュメント翻訳の難しい所や、モチベーションの保ち方を聞きました。
- この記事はPythonエンジニア列伝第四回の6記事目です
- バックナンバー
- cocoatomoさんのPythonistaとしてのこれまでをお聞きします
- 次回の内容と配信スケジュール
- バックナンバー
- エンジニア列伝アーカイブ
cocoatomoさんのPythonistaとしてのこれまでをお聞きします
Pythonを学ぼうと思ったきっかけ
ここまで、代名詞的な活動としてドキュメント翻訳のお話を主に伺ってきましたが、cocoatomoさんPython自体を始めたきっかけは何ですか?
CPythonの翻訳に関わる前からPythonを使っていたんでしょうか。
仕事で使っていました。IBMの製品でWebSphere Application Server、通称でWASっていうのがあって、その管理ツールで使っていました。 WASについて説明すると、Java仕様に準拠したパッケージファイルに、JAR、WAR、EARとあって、後ろに行くにしたがって規模が大きくなります。一番大きいEARっていうのは、エンタープライズアーカイブの頭文字をとって、EAR。そのEARをデプロイできるアプリケーションコンテナがWASです。なので比較的大型のものですね。 管理ツールは使用可能な言語がJythonとJaclで、そのときはJythonが推奨だったんです。なので、私のPythonの導入はJythonなんです。CPythonからじゃないんですよ Pythonの処理系の一つで、Javaで作られたPython(通常PythonというときはC言語で作られたCPython)。JythonはJVM上で動作するので、Pythonの文法をJavaの資産を活かして使える利点がある。
はい、それでJythonを知って、ちょうどそのタイミングで「エキPy」の第1版が出てて。発売直後だったので清水川さんが勉強会をやってくれてたんですね。 そうです、翻訳された日本語版の出版記念で、清水川さんが先頭から読んでいって。懐かしいですね。Jython
そこに、Pythonってなんだろうっていうところを解決したくて参加していました。せっかくなんでCPythonも勉強してみようという。
そうですね。何かしらOSSをやってみたい、でも、どうしたらいいかよく分かんなくて。
うろうろしてたときに、たまたまDive Into Pythonを見つけたんで。で、ライセンスを見てみるとGPL(GNU General Public License)で、条件を満たせば好き勝手に翻訳して公開していいと、じゃあやろうかな、って。
Dive Into Python
http://www.diveintopython.net/
Python入門書で、GNU General Public License(リンクはwikipedia)に則りフリーで内容が公開されている。
2009年ごろにcocoatomoさんが翻訳を手がけたのはPython2の内容を扱うDive Into Pythonで現在はファイルが残っていないそう。
参照リンクはその後2011年に別の方が同様のライセンスに則り公開したDive Into Pythonと、 現在のバージョンであるPython3の内容に合わせて改定されたDive Into Python3(※現在Pythonの参考書籍として読みたい場合はこちらをどうぞ)。
参照リンク
- Dive Into Python:https://sites.google.com/site/diveintopythonjp/
Dive Into Python3: http://diveintopython3-ja.rdy.jp/
競技プログラミングについて
JythonからPythonを始めた。JythonからPythonを始めた人はなかなか珍しいと思いますね。
IBMの製品でPythonでカスタムするためにJythonを使っていた。でもずっとそれだけというわけではないですもんね。そのあと何かに使うことはあったんですか。
その後は、自分で遊んでただけですかね。何かを作った覚えもあまりなくて。
あ、でも、Googleの競技プログラミング。Google Code Jamには参加していました。自分にとって一番早くコードを書けるということで、Pythonを使いました。
競技プログラミングというとC++のイメージがあります。Pythonは実行速度が遅いと、定説のようによく言われますね。そのあたりはどうでしたか? 取りあえず時間オーバーしなければいいんですが、計算量だけは気を付けたほうがいいですね。
どこかで失敗して他人の模範解答を見て、改善点に気づくこともあったりしました。Nの3乗にしてたけど本当は2乗でいける、というようなミスだと、普通はもうアウトになるんです、時間切れで。
そうですね。ここからちょっと自慢なんですけど、Google Code Jam、予選が何回かあって、世界で1,000人以内に入ると、Tシャツがもらえるんです。そのTシャツはもらいました。 はい。クリアすると昔の人の回答や上位の人の回答も見られるので、それを見て、インプットはこうやって処理するんだとか、定型文とかを勉強していました。とてもプログラミングの勉強になったと思います。
「グッド・マス」について
私、ずっとcocoatomoさんは数学を研究されてる方かと思ってました。
職業も謎ですし、雰囲気とかイメージで、どこかの大学の先生なのかなと思っていました。
『グッド・マス』、どうですか。僕は数学、詳しくないですけど、プログラマーで知っておいたほうがいい数学ってあります? 『グッド・マス』に書いてあるのがだいたい、プログラマーで知っておいた方がよい数学という範囲の内容になりますね。基本的には全部、プログラミングネタとなんかしら関わってる。
元はブログなんですよ。「Good Math / Bad Math」という名前で、本になったときに後半が落ちたんですけど。
読んで、絵がいっぱい載ってて普通の本より読みやすかったです。
著者が数学の本は難しい、というかさっぱりしすぎているから、いろいろ骨も肉も付けて書きたいという動機で書かれたブログ由来の本なんですよね。
エンジニアの人で数学が知りたいなという人がつまずかずに知っていける、そんな感じの理解でいいですかね。 プログラマーをやっていて、数学の話題が出てきて気になるような人ですね。
プログラムと数学は、文化が違うと思うんです。例えば数学の分野ではあまり「実装」という概念がないんです。実体はよく分からないけど、こういう性質のものがあるよ、と定義するのが今の主流な数学です。
たとえば、Cのインターフェースファイルしかないような状態ですね。あとはテストがあるぐらい。実装はよく分かんないけど、取りあえず宣言は書いてある。そういう物だけ使って、うーんってやって、こう組めばいいかなってコードを書いていって、中身のよく分からんバイナリーをリンクすると動いたっていうような。
そういう概念的な仕組みをプログラマー的に説明してあるので、導入には良いと思います。
僕は数学とかそんな慣れてないので、機械学習の本を読んだときに、数学の話とか数式の話とか出てきたときにやはりどうしても読めないんですよね、すっと入ってこない。
概念的な部分がよく分かってないというか、腹落ちしてないというイメージなんですけれども、そういう人にお勧めできるんですね。
グッド・マス ギークのための数・論理・計算機科学
- Mark C. Chu‐Carroll (著), cocoatomo (翻訳)
- 単行本(ソフトカバー):280ページ
- 定価:2808円(ソフトカバー)/2600円(Kindle版)
- URL(オーム社):http://shop.ohmsha.co.jp/shopdetail/000000004647/
- URL(Amazon):https://www.amazon.co.jp/dp/4274218961/
次回の内容と配信スケジュール
次回はcocoatomoさんのこれからのPythonistaとしての展望をお聞きします。次回が第4回cocoatomoさんとの対談記事の最終回となります。次回もどうぞお楽しみに。Pythonエンジニア列伝の次回配信は 4/27(木) 配信予定です。どうぞお楽しみに。
バックナンバー
- その1…cocoatomoさんの紹介と技術ドキュメント翻訳との関わりや歴史を聞きました。
- その2…Pythonドキュメント日本語訳プロジェクトの足跡を聞きました。
- その3…PEP454と翻訳にともなうグローバルなコミュニケーションのお話を聞きました。
- その4…プロジェクトへの参加方法とPythonコミュニティのメリットを聞きました。
- その5…語学面でのドキュメント翻訳の難しい所や、モチベーションの保ち方を聞きました。
エンジニア列伝アーカイブ
過去回も充実した内容です。次回配信までにいかがですか?
第一回:清水川貴之さん
- 手をいつでもあげられるように素振りをしよう 〜 Pythonエンジニア列伝 Vol.1 清水川貴之氏(前編) - PyQオフィシャルブログ
- ダメで当たり前なのでどんどんやる。アウトプットしていこう〜 Pythonエンジニア列伝 Vol.1 清水川貴之氏(後編) - PyQオフィシャルブログ
第二回:鈴木たかのりさん
- Pythonの人たちが集まって何かが生まれるといいな 〜 Pythonエンジニア列伝 Vol.2 鈴木たかのり氏(前編) - PyQオフィシャルブログ
- 自分が知らないすごい人に出会いたい! 〜 Pythonエンジニア列伝 Vol.2 鈴木たかのり氏(後編) - PyQオフィシャルブログ
第三回:石本敦夫さん