Pythonの得意分野が盛り上がる今こそ学ぶべきタイミング
寺田:岩崎さんはどんな目的でPythonを使い始めたんですか?
岩崎:4年くらい前、僕はWeb系のインフラエンジニアと呼ばれる立場で、サーバーやネットワークの構築作業やアラートが発生した際の障害対応などのオペレーションが中心で、あまりコードを直接書く機会のない仕事をしていました。細かい作業の自動化を手軽にできる手段はないかと探していて、様々な言語をお勧めされたんですが、最終的に辿り着いたのがPythonでした。
寺田:PerlやRuby、シェルスクリプトと比べて、Pythonが手に馴染んだということですか。
岩崎:Linuxの環境があればすぐ使えるというのも大きかったですね。
寺田:今はWebアプリ開発もしていると思いますが、それまでのインフラの自動化とは行うことが全然違いますよね。たしかに、Pythonだと両方対応できるというよさがあるものの、開発の用途を変える際の苦労もあったのではないでしょうか。
岩崎:最初は無理矢理Pythonを業務にねじ込んでいきました。普段、手作業でやればすぐできることも、時間に余裕があればあえてPythonでコードを書いてみましたね。そんな地道なところから始まり、少しずつ機会を作っていきました。
Python製のFabricというデプロイツールがありますが、これはSSH経由でいろんな作業をPythonで自動化するツールなので重宝しました。あと、サーバーを管理するPHP製の社内アプリケーションのメンテナンスもしましたね。それがちょっと古すぎたこともあり、どうしても追加したい機能はPythonのWebフレームワークであるFlaskを使い、自分でアプリケーションを作りました。
寺田:だんだん応用範囲が広がっていったという感じですね。
岩崎:Pythonの幅の広さに助けられたと言えます。
寺田:岩崎さんはやりたいことがあってPythonに辿り着きましたが、今このタイミングで学ぶべき理由はありますか?
岩崎:僕は「学びたいときに学べばいい」という考え方です。ただ、最近は機械学習やデータ解析で採用されるケースも増えています。また、大学の授業でPythonが採用される話もよく聞くようになり、学校で最初に学ぶ言語としてPythonと出会う機会も多くなっていると思います。Python自体はわかりやすく習得しやすい言語なので、出会う機会が増えている今このタイミングで、本格的に触ってみてもいいですね。
寺田:目にすることが増えたという実感があるわけですね。私自身は十数年Pythonをやっていていろんな場面を見てきましたが、ここまでPythonが盛り上がっているのは初めてのことです。
Python 3に完全に移行したことも大きいですね。Python 2の時代は日本語の処理が大変で厄介でしたが、Python 3はかなり安定しています。機械学習だけでなくRaspberry PiといったIoTなどの応用分野も盛んでユーザーが増えていますし、サンプルコードが世界中に大量にあります。それを読めないのはマイナスでしょう。今はちょうど学ぶのにいいタイミングだと感じますね。
もう一つ率直に言えば、今はPythonができなくてもなんとなく許される雰囲気ですが、将来的には誰でも習得しておくべき基礎の言語になる可能性があります。だとしたら、今のうちに学んでおくのがいいですね。
岩崎:Pythonが得意とする分野が注目を集めているので、今乗っておきたいですよね。
寺田:LinuxやFabricで使われるなど用途が多々ありますが、サービスとしてはGoogleの中で使われているのは有名でしょう。Dropboxでもがっつり使われています。Instagramは元々Pythonの人たちが作ったものですね。
日本でもPython製のサービスや製品が増えているんですよ。PyCon JP 2016のダイヤモンドスポンサーであるフンザのチケットキャンプ、ディープラーニングのフレームワークであるChainerもPythonですから。
用途としては幅が広すぎてどこかに中心があるわけではなく、いろんなことができるというのがPythonの特徴と言えます。
Webで情報が見つからず消耗するくらいなら公式ドキュメントを読む
寺田:Pythonを学ぶとき、十数年前なら入門書もなかなかありませんでした。今は『スラスラわかるPython』も含めPython本がたくさん出ているので学びやすくなっていますよね。岩崎さんはどんなふうに勉強してきたんですか?
岩崎:僕が始めた頃も特別に情報が多いわけではありませんでした。ですが、ググったらいくつか技術ブログが出てきたので、それを参考にできることをとりあえずやっていました。目に入った情報で手を動かして試行錯誤、という連続ですね。
寺田:実は日本語の公式ドキュメントもどんどんよくなっているんです。私としては、技術ブログの真似をして「うまくいかない」と文句を言う前に公式ドキュメントを読む、という方向に進んでほしいと思っています。
とはいえ、公式ドキュメントをいきなり読むのは難しい。膨大な量がありますし、慣れるまで時間がかかります。そこはどう思いますか?
岩崎:僕の場合、最初はググって調べていたんですが、ダメだなと詰まってしまうことが増え、そこで入門書を改めて読み始めました。ひととおり勉強して、そこからはまたやりたいことを実現するためにWebで情報を探しました。
最初は個人の技術ブログが出てきても、巡り巡って公式ドキュメントに飛ばされるんですね。それで公式ドキュメントを何度も読んでいると、Pythonユーザーが丁寧に書いているおかげで形式が見えてきて、読み方がわかってくる。そうなると、公式ドキュメントを最初に見たほうが早く必要な情報に辿り着けるようになります。そこまでにけっこう時間がかかりますけどね(笑)。
寺田:公式ドキュメントは情報が豊富でも、決して読みやすいわけではないですからね。ただ、ユーザーが真面目にしっかり書こうとする風潮があるのはいいことです。
岩崎:Webで調べても結局見つからない、と消耗するよりは、ちゃんと公式ドキュメントを読んだほうが早いという境地に至りましたね。
寺田:初心者には公式ドキュメントにあるPythonチュートリアルに1回は目を通してみようと言っていますが、他の言語経験者なら難しくなくても、まったくの初心者だと厳しいんですよ。そういう意味で、本書があるのは重要だと思います。
Pythonで何かを作るという体験ができる
寺田:といったところで、本書がどういう読者を想定しているか教えてください。
岩崎:メインは、プログラミング未経験でPythonから学ぼうという人向けですね。なので、他のプログラミング言語の経験がない人でも読めます。
寺田:経験者から見たら本書はどうですか?
岩崎:そういう人にもPythonが初めてなら役立つと思います。たとえば普段PHPで書いているとしたら、Pythonだとこんなふうに書けるのかとイメージを掴めますね。
寺田:基本から学び直したい人にもお勧めできますよね。なんとなく書けてはいるけど、という人もそうです。今は知識がなくても機械学習をやりたいなら、本書から入るのがいいと思います。さっと読んで基礎を固めて、そのあとは本書を知り合いや新人などに渡してもらうといいかなと。
岩崎:付録では「さらにPythonを使い込んでいくために」というテーマで本書を読み終えたあとどうすればいいかという案内をしています。Webアプリケーションや機械学習、データ収集、カメラ制御など、Pythonが得意とすることを紹介しているので、今後の学習や、あるいはキャリアを考える際にも役立ててほしいですね。
寺田:本書は網羅性を控えめにし、何でもかんでも説明することは避けました。その代わり、本当に必要なところだけを厳選して解説しています。それについてはどうですか?
岩崎:網羅的な知識を得るよりも、Pythonで何かを作るという体験ができることが一番大事だと思っています。言語として厳密に押さえておかなければならないことは、正直網羅できていません。けれど、何も知らない段階で一気に説明されても理解できませんし、それで挫折してしまう可能性もあります。
中学校の数学で初めてグラフを習うとき、いきなり微積分を教えたらみんな逃げていってしまうでしょう。なので、本書を通じてまずはPythonを好きになってもらいたいんですよ。
寺田:監修の立場としては、PythonにはPythonらしいコードがあるので、らしくないコードは紹介しないように気をつけましたね。
本書は網羅的ではなくてもひととおりのことは学べますし、Pythonらしく書いてプログラムを動かすことにも挑戦できます。岩崎さんが言うように、Pythonを体験するのにふさわしい本になったと思います。
最初は話に耳を傾けているだけでも楽しい
寺田:Pythonを学ぶうえで疑問などもたくさん出てくると思いますが、本書以外にはどういう手段で情報を得るといいですか?
岩崎:やりたいことをベースに検索するのが基本ですが、1人でできることはそれくらいだと思います。より知見を広げたいなら、Pythonを使っている人とコミュニケーションを取るのが一番です。気になる人がいたらSNSでフォローしたり、あるいはメーリングリストを購読したりするのもいいですね。
寺田:新しい分野の情報の得る方法は難しいですよね。そこでコミュニティの力が重要視されます。Python自体もオープンソースで、Python Software Foundationという非営利団体がリリースし、知財管理しています。これもコミュニティです。
PyCon mini Kumamoto 2017で、Google Cloud Platformの開発に携わるイアンが「Pythonは文化である」というようなことを言っていました。要は、人と人とのつながりなど、Pythonを中心に集まっている人たちから学ぶことが多いということでコミュニティを重視しているわけです。当然と言えば当然ですが、コミュニティに所属しているほうが情報は圧倒的に得やすいですね。
岩崎:イベントなどで直接会話できなくても、周りのPythonユーザーが話していることに耳を傾けているだけでも楽しいですよ。僕も最初から会話に参加できたわけではなく、横で聞いているだけのことも多かったんです。でも、それだけで全然違うんですよね。
寺田:毎年9月か10月には日本で最大のコミュニティイベントであるPyCon JPを開催しています。それに参加して友達を増やせば、勉強していこうという気持ちも高まるでしょう。ぜひ今から、Pythonに触れてみてほしいですね。