Python学習チャンネル by PyQ

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

「Pythonに特化した学習サービスはどんな風に生まれたのか」マーケティングチームも知らなかった、PyQの開発エピソードを紹介します。

f:id:kenken0326:20200422120340p:plain

こんにちは。PyQマーケティングチームのkenkenです。

いきなりですが、「PyQはどうやって生まれたんだろう?」と考えたことありませんか。 私は「Pythonに特化したサービスをよく商品化できたな」と思ったことがあります。
そんな中、4月12日にPyQが3周年を迎えました。 せっかくなのでこのタイミングでPyQ開発メンバーに当時どのような思いでPyQを企画したのかを聞いてみたい!と思い、PyQ開発チームにPyQの開発秘話を伺うことにしました。

「プログラミング、Pythonで作りたいものがわからない」という人も参考になると思うのでぜひ読んでみてください。

インタビュイーの紹介

清原弘貴 @hirokiky

PyQの企画、開発を担当している。PyQを企画開発した初期メンバー4人中の1人。PyQアプリのシステム開発や、インフラ整備、Webサービス内のHTML/CSSコーディング、デザインなどをほとんど1人で担当している。

2012年10月よりBeProud所属。12歳のときからプログラミングしており、2011年から本格的にPythonを使っている。 Djangoが好きで、日本で最大級のDjangoイベントDjangoCongress JPの主催をしている。
PyQ以外にも個人で、原稿・記事執筆、レビュー、連携WebサービスShodoを開発している。 他にもdig-enPileMd、など多数のWebサービス・アプリを企画、開発している。 共著書に『自走プログラマー(2020技術評論社)』『Pythonプロフェッショナルプログラミング第3版(2018秀和システム刊)』、『Pythonエンジニアファーストブック(2017技術評論社刊)』がある。

どのようにPyQの企画が出たのかを教えてください

f:id:kenken0326:20200417185659j:plain
清原 PyQの企画は2015年ごろに始まりました。
そのときは今ほどPythonを勉強する教材もなく、オンラインでプログラミングを学習するサービスもほとんどありませんでした。
そのなかで「ちゃんとプロのエンジニアに成長できるサービスを作りたい」というのが企画の始まりでした。

世の中には転職の支援サイトなどは多くありますが、最終的には一部の優秀なエンジニアの人を取り合うことになるのではと危惧していました。
転職のサイトはもちろん存在しつつ、十分なスキルを持ったエンジニアの人自体が増えることこそが世界のためになるだろうと考えました。
そのために、誰でも・どこででも、プロフェッショナルなエンジニアとして必要な知識を学べるサービスを作ろうというのがきっかけです。

はじめからPythonに特化した学習サービスを作ろうと思っていましたか?

f:id:kenken0326:20200417185659j:plain
清原 いえ、プログラミングをトータルで学べるサイトということで、まずはSQLの学習サービスをプロトタイプとして開発を始めていました。 そこから何ヶ月か経っていたころに私清原がジョインしたタイミングで、コンセプトやビジョンなど企画から始めました。

私たちビープラウドが作るうえで何をすべきかと考えたときに「Pythonを学べるWebサービスを作ろう」と決まったのです。 ビープラウドには当時でも10年のPythonの実績がありました。その知識を活かしたWebサービスを作るべきだろうと考えました。

たった4年前のことですが当時はPythonが今ほど日本では流行っておらず、会社内でも「なぜPythonを学べるサービスを作るのか?」と反対意見もありました。
やはり学習する人口としてはPHPAndroidのほうが多いというのが事実です。なぜわざわざ、Pythonオンリーのサービスを作ろうとするのかと反対されました。

SQL

関係データベース管理システム (RDBMS) を操作して、データの抽出や変更などを行うためのデータ問い合わせ言語です。データベースの構造設計、表の所有権を定義をするためのデータ定義言語(DDL)とデータの抽出、追加、更新などを行うデータ操作言語(DML)に分類されます。

PHP

PHP (PHP: Hypertext Preprocessor を再帰的に略したものです) は、広く使われているオープンソースの汎用スクリプト言語です。Web開発に適しており、HTMLに埋め込むことができます。
URL:https://www.php.net/manual/ja/intro-whatis.php

Android

google社が提供するスマートフォンやタブレットなどのモバイル機器向けに設計された、モバイルオペレーティングシステムです。Android フレームワークや他のライブラリにある API を使用して Android アプリを作成できます。
URL:https://developer.android.com/guide?hl=ja

Python特化の学習サービスを作ることに不安はありませんでしたか?

f:id:kenken0326:20200417185659j:plain
清原 当時としてはアグレッシブな決断だったと思います。だけど、Python特化の学習サービスはきっと必要だと感じていました。
Pythonを学びたい人は確実に増えていましたし、PythonはWebアプリケーション開発や機械学習など幅広く対応できる言語だからです。
まだまだ入門書なども少ない時期でしたし、本や独学で学ぶのはどうしても大変なことです。ブラウザーだけで実際にプログラムを書きながら学べ、ビープラウドで培った知見を盛り込んだ学習サービスは良いものになると信じていました。

「ブラウザーだけでPython学習ができるサービスを開発しよう」という案はどのように生まれましたか?

f:id:kenken0326:20200417185659j:plain
清原 1番初期の企画段階からブラウザーだけで学べるようにしようという案はありました。けれども「Pythonというプログラムを実際に動かそう!」としたのは、当時の個人的な「お遊び」から実現できたものです。 ビープラウドでは社内で有志の勉強会が開催されているのですが、そのなかで同僚の中村さんが、コンテナーを使ってブラウザーごしにLinuxを使えるアプリを作っていました。 それは完全にお遊びの技術だったのですが、そのとき「これは良いな。絶対にうまくやれば商業化できる」と思っていました。

そのときにSQLの学習サービスを作っていたチームにジョインし、「お遊び」で実験していた技術を参考にシステムを作り直しました。 さらにその仕組みではPythonプログラムを動かしたり、GNU/Linux的なシステムをブラウザーだけで動かせられます。

もちろん、Webサービスとして実現するためのセキュリティの問題や、多くの人に提供するための負荷の問題などをクリアするのは非常に大変でした。

ですが、根本にあった技術的な着想は、同僚同士で楽しくやっていた「お遊び」から生まれました。

GNU/Linux

GNUプロジェクトが開発したソフトウェアをUnix互換OS「Linux」カーネルを使用するときに「GNU/Linux」と呼ぶようにGNUプロジェクト側が主張した呼称です。GNUは「“GNU's Not Unix”(GNUはUnixではない)」ことを表しています。
URL:https://www.gnu.org/gnu/gnu-history.ja.html

お遊びから生まれたなんて面白いですね。PyQはそのままスムーズに仕上がって行ったのですか?

f:id:kenken0326:20200417185659j:plain
清原 いえ、実際の実現には血のにじむような苦労がありました。実際に私はストレス性の機能性ディスペプシアと逆流性食道炎という病気になってしまいました。技術的な、セキュリティ的な難しさもそうですが、「どうすればお客様に喜んでいただけるか」というのが本当に難しい問題でした。すごいものを作っても、使いにくかったり、安全でなかったり動作が遅かったりすると誰も使いたくなくなります。そういった細かい部分を作り込みつつ、チーム一丸になって価値を生み出すというのは大変な作業です。

1番大変だったのはリリース後のあと1年後くらいで、当時には絶対にタイムスリップしたくないとも思います。

最後にPyQとPyQ学習者さんに対して伝えたいことをお話ください。

f:id:kenken0326:20200417185659j:plain
清原 PyQを作るためには本当に苦労がありました。でも、それは実際にプログラミング学習で悩んでいる人を助けたいと思っているからです。 今になってみると周りの人にとってPyQの存在は「当たり前」なので、「まぁまぁ良いもの作ったね」、「ラッキーだったね」と軽く言われて悲しい思いをすることもあります。

だけど人の役に立てるものを作ることは大変です。PyQ自体もまだ成長途中ですし、もっと改良すべきところがあります。 最近になってダッシュボード画面を刷新したり、模索しながら頑張っています。
でもそれは目の前にいるお客様のためだと思っています。困っている人を助けたいなと思っているからです。

これからもPyQには至らないところなどもありますが、これまでもこれからもチームとして頑張っていきますので、応援よろしくおねがいします。

関連記事

blog.pyq.jp

blog.pyq.jp

Copyright ©2017- BeProud Inc. All rights reserved.