Python学習チャンネル by PyQ

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

「PyQの問題ってどうやって作られているの?」PyQの問題作りについて聞きました。

f:id:kenken0326:20200507150531p:plain

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

前回「どのような思いでPyQを企画したのかを聞いてみたい!」と思い、 PyQ開発メンバーのhirokikyさんに、PyQの開発秘話を伺いました。
そのPyQができるまでの過程を語ってもらった記事が好評だったので、 今回はPyQの問題作成を担当するkamekoさんにもインタビューしました。

PyQができるまでの思い出話に加え、kamekoさんがPythonに興味を持った理由、PyQの問題作りなどについても語ってもらいました。
ぜひご確認ください。

インタビュイーの紹介

大村亀子(kameko) @okusama27

PyQの問題作成を担当している。PyQを企画開発した初期メンバー4人中の1人。 2015年8月よりBeProud所属。理系大学出身。大学1年生のときに実験用にポケコンが配られ、初めてコンピューターに触れる。 PythonコミュニティPyLadies Tokyoの運営メンバーの一人としても活動している。

PyQの思い出

いきなりですが、PyQの企画が出たときの思い出を教えてください

kameko 当時、ビープラウドに入社する前はずっと受託開発のお仕事をしていて、「数ヶ月で開発に参加して終わり」というプロジェクトをこなす日々でした。 「自分が作ったと胸を張っていえるサービスを作りたい!」「受託開発も好きだけど、契約が切れたら終わってしまってなにもできなくて寂しい」というような話を当時の経営陣にしていました。

そんな時、タイミングよく自社の教育サービスを作ろうと経営陣が思っていたらしくラッキーなことにアサインしてもらえました。

ビープラウド(PyQの運営会社)の社長のharuさん(ビープラウドでは社長、メンバーをハンドルネームで呼び合います)が「これからはPython学習だ!少ないエンジニアを業界で取り合うのではなく、初級者を中級者に成長させるサービスを作る!」とホワイトボードに三角形を書いていたのが懐かしいです。

f:id:kenken0326:20200507143725j:plain

f:id:kenken0326:20200521120107p:plain

今まで作った問題

すごく良いタイミングでPyQにアサインされましたね。kamekoさんはPyQの問題作成者ですが、今までに何問くらい作られましたか?

kameko 私が1から作った問題は600問くらいです。主にPythonの基礎の方を作りました。他の人が作った問題も日々改善していますので全問題が我が子のような感じです。
f:id:kenken0326:20200507143725j:plain

600問!!ちなみに最初のリリース時には問題を何問作られましたか?

kameko 最初のリリース時は250問くらい作成し、100問くらい別のメンバーが作って350問くらいをリリースしました。
f:id:kenken0326:20200507143725j:plain

問題が完成するまでにどれくらいかかりましたか?

kameko 250問分作成するのに半年ほどかかりました。毎日、問題を作る日々で無限に終わらない気持ちでした。
f:id:kenken0326:20200507143725j:plain

1から問題を作ることは大変ですか?

kameko リリースする問題のカテゴリーを決めて計画するのですが、優先度をつけるのが大変でした。1つのカテゴリーの問題数もどれくらいに設定すれば良いのかがまったく見当がつきませんでした。

また、最初の時点で問題の粒度や難易度などのイメージがチームメンバーで共通のものがなかったので、レビューを受けてもどのように修正したら良いのか見当がつかずに悩みました。 ベータ版のリリース後はモニターの方、ベータユーザー、社内のメンバーに意見をもらえるようになってから徐々に方向性が定まってきた感じですね。

f:id:kenken0326:20200507143725j:plain

他にも苦労したことはありますか?

kameko PyQは単純に画面に出力される結果を利用して判定をしている場合と、そうでない場合があるのですが、そうでない場合は開発で書くようなテストでは判定できない場合があって苦労することもあります。
f:id:kenken0326:20200507143725j:plain

問題作りで意識していること

現在はどんなことを意識しながら問題を作っていますか?

kameko 初級者の方にも伝わるようにかみ砕いて説明を書くようにしています。でもあまりに長くなると読まれなくなるので分量は調整しています。

ありがたいことに利用者様からフィードバックやお問い合わせをいただけるので、それを元にフィードバックが多い問題から順に修正しています。

f:id:kenken0326:20200507143725j:plain

フィードバックやお問い合わせはとても参考になるので、これからもどんどん送っていただきたいですね。これから増やしたいと思っている単元はありますか?

kameko 現在、プログラムを全くやったことがない状態でPyQをはじめられる方向けの問題を制作しています。 最初は何かしらプログラム経験がある方がPythonを学ぶ需要が多かったのですが、最近のPythonとプログラミング学習の需要の高まりから更にわかりやすい問題づくりを心がけていきたいと考えています。
f:id:kenken0326:20200507143725j:plain

今後直していきたい問題はありますか?

kameko 最初に公開した時は問題を作る人によって表現、難易度、実装がバラバラだったのでお客様を混乱させていたと思います。そんな方向性が定まる前に公開した問題は少しずつ修正しています。 また、「難しすぎる」というご意見をいただくことがあるので、該当の問題を細く分けたり解説を増やしたりしています。

自分が作った問題以外もメンテナンスしているので、退社されたりして問題を作った人と連絡が取れない場合に「これはどういう意図だったのだろう?」と困ることがあります。ただ、その場合でもチームのメンバーやビープラウドの他のメンバーに相談できるので、最終的には解決できますが。 バックにPythonのエキスパートの集団がついているのは心強いです。

f:id:kenken0326:20200507143725j:plain

Pythonに興味を持った理由

ここからはkamekoさんがPythonに興味を持った理由を聞いていきます。
kamekoさんは理系の大学を卒業されていますが、いつ情報系に興味を持たれたのですか?また、初めてコンピューターに触れたときの思い出も教えてください。

kameko 初めてコンピューターに触れたのは大学1年生のときです。実験用にポケコンが配られ、初めてコンピューターを手にしました。 その時はBASICのプログラムを写してゲームを動かしましたが、何をしているかはあまりわかっていなくて、ただ写してただけでした。 その後、Windows 95が発売されてパソコンが普及し、個人でもパソコンが買える時代になりました。 インターネットで家から世界中の人とつながれる世界に憧れて、とても高額でしたがアルバイトをたくさんしてパソコンを買いました。
パソコンの使い方としては、まだレポートを買いたり、パソコン通信をしていた程度でした。
f:id:kenken0326:20200507143725j:plain

BASIC

初心者向け汎用記号命令コードを意味する「Beginner's All-purpose Symbolic Instruction Code」の略語です。 初心者向けのプログラミング言語として、1970年代以降のコンピューターで広く使われました。

当時パソコンはとても画期的なアイテムだったのですね。どのタイミングで、パソコンを使う仕事をしようと思いましたか?

kameko 当時、大学の先輩に誘われて19歳のときにゲーム会社の夜間事務のバイトをはじめました。そこには情報系の院生のアルバイトさんがたくさんいましたが、私は電話番くらいしか仕事がなかったので、空いている時間で院生の方々にプログラムを教えてもらいました。業務効率化のためにVBAとかCGIを書き始め、そのときにVB6SQLPerlも覚えました。段々とプログラミングが楽しくなって、そのままアルバイト先の会社に就職しました。
f:id:kenken0326:20200507143725j:plain

VBA(Visual Basic for Applications)

主にマイクロソフト製のMicrosoft Officeシリーズに搭載されているプログラミング言語です。

CGI

Common Gateway Interfaceの略語で、プログラムをHTTPサーバーで動かすための仕組みを指します。

VB(Visual Basic)6

マイクロソフトが1990年代に開発していたプログラミング言語です。Windows 95用のアプリケーションの開発に使われました。


URL:https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-basic-6/visual-basic-6.0-documentation

SQL

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

Perl

Perlは、テキスト操作のために開発されたプログラミング言語ですが、今では システム管理、ウェブ開発、ネットワークプログラミング、GUI 開発などを 含む広い範囲で使われている汎用プログラミング言語です。 ラリー・ウォールによって開発されました。


URL:https://perldoc.jp/docs/perl/5.26.1/perlintro.pod

いろんなプログラミング言語を学習されたのですね。Pythonはいつ、どんなきっかけで触り始めましたか?

kameko ビープラウド入社前はお客様のデータを集めて分析の準備をする仕事をしていたので、GoogleのBigQueryにデータを上げるためだけのPythonスクリプトは以前にも書いたことがありました。

それ以外でPythonを真面目にやり始めたのは、2015年に就活しているときにharuさんに出会ってからです。 簡単にいうとPythonに強いビープラウドに入るために本腰を入れて取り組み始めました。なにかのプログラミング言語のプロフェッショナルになりたいと考えていたので、そのときにしばらくはPythonに没頭しようと思いました。

f:id:kenken0326:20200507143725j:plain

BigQuery

Googleが提供するエンタープライズ・データ・ウェアハウス(データ管理システム)です。Googleのインフラストラクチャの処理能力を活用してSQLクエリを超高速で実行します。

私はkamekoさんがPythonに興味を持ったのは、「どうしてもやりたいことがあって、それがPythonでなければできないから」という高尚な動機があるからだと思っていました。意外ときっかけはみんなが考えるようなことだったんですね。何だか安心しました。

コミュニティ活動について

kamekoさんはPyLadies Tokyoなど、様々なPythonのコミュニティ活動に関わられていますよね。最初にPyLadies Tokyoに参加された理由を教えてください。

kameko ビープラウド以前に働いていた会社には女性のエンジニアがほぼいなかったので、女性のエンジニアとお友達になりたくて参加するようになりました。
PyLadies Tokyoでは、女性が女性だけの力で色々なイベントを開いていて、当時の代表が「女だからといって初心者向けのことばかりをやっているのではなくてちゃんと仕事もできるし、技術もやっているというのを示していきたい!」とおっしゃっていてとても共感しました。
f:id:kenken0326:20200507143725j:plain

PyLadies Tokyo

Pythonが好きな女性を結ぶ国際的なコミュニティです。 Pythonが好きであれば初級者/熟練者問わず参加できます。


URL:https://pyladiestokyo.github.io/

PyQ学習者さんに伝えたいこと

PyQの問題作りの話からコミュニティの話まで様々な質問に答えてくれてありがとうございました。最後にPyQでPythonの独学に励まれている学習者さんに伝えたいことをお話ください。

kameko PyQに出会っていただけてありがとうございます。プログラミングスキルは、自転車に乗れる料理ができると同じように一度身につけたら人生のいろいろな場面で役に立ってくれるスキルです。ある程度の基礎が身についたと感じたら自分が作りたい、自分に必要なサービスやスクリプトを作ってみたり、自分の周りの問題を解決したりするとさらに実力がアップすると思います。PyQがその第一歩目のお役に立てるととてもうれしいです。

フィードバックやお問い合わせもお待ちしています!気になるところや励ましのメッセージなどいただけると嬉しいです。

f:id:kenken0326:20200507143725j:plain

関連記事

blog.pyq.jp

blog.pyq.jp

Copyright ©2017- BeProud Inc. All rights reserved.