「算数が苦手な娘のために」Pythonプログラミングを学び、計算ドリルを作ったお父さんの話。
今年3月、Qiitaと世界最大級のオンライン学習プラットフォーム「Udemy」とのタイアップ企画として記事投稿イベントを開催しました。(イベントについて詳細はこちら)
そのイベントで優秀賞の1つに輝いた記事、「プログラミング未経験者がPython覚えて子ども用計算ドリルを作る」の筆者が今回インタビューをした大友渉さん(@sotogawaさん)です。
大友さんはちょっとした思いつきをきっかけに、未経験ながらもプログラミングを学ぼうと決意し、子ども用計算ドリルを作るに至りました。そこで今回はこの計算ドリルができるまでのいきさつ、大友さんの「学び」へのモチベーション、忙しい中でどのようにスキルアップに取り組んでいるのかなどについてお話を伺いました。
目次
・「目的の明確化」「対価を払う」をプログラミング学習のモチベーションに
・Pythonを使った計算ドリルを作るに至った経緯とは?
・学びは、気負わず、細く、長く続ける。モチベーションを維持する秘訣
・エンジニアともより深いコミュニケーションが取れるように
プロフィール
目次
「目的の明確化」、「対価を払う」をプログラミング学習のモチベーションに
──優秀賞を受賞した「子ども用計算ドリル」についても後ほどしっかりとお聞きしたいのですが、まずはプログラミングを学ぼうと思ったきっかけについてお伺いできますか?
大友:そもそもプログラミングは以前から興味があって、最初は書籍を何冊か購入してみたんです。でも書籍を読みながらだと「分からなくなってそれっきり」みたいなことも多くて。そこで動画だな、と。動画なら実際に講師が説明しながらプログラムの動いている様子が見られたり、基礎的な説明でも音声とスライドで説明されているので分かりやすいんですよね。
それから単に「Javaを覚える」、「Pythonを覚える」といった内容だと続かないというのもありましたので、「これを学べば何ができるか、何が身に付くか目的が明確になっている」こともポイントでした。
動画やオンラインのプログラミング学習サービスはたくさんあるので、手始めに無料のものを利用してみたりもしたんですけど、無料だといまひとつ身が入らなくて、「対価を払う」のも学ぶモチベーションに必要そうだというのも分かりました。
これらの条件に合っていたのがUdemyの講座だったんです。最初に選んだのが「みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習」でした。
AIも流行っているし、Pythonの学習を通じて人工知能や機械学習について理解を深めてみたいという、割と軽い気持ちがきかっけでしたね。この講座をやってみて、よりPythonの基礎を知りたい気持ちが出てきたので、「プログラミング言語 Python 3 入門」も購入して学びました。
──それらの講座でPythonを学んで、実際いかがでしたか?
大友:講座を通して実際にPythonを触ってみたら、すごく分かりやすかったんですよ。実は僕、プログラミングを学ぶに当たって配列とリストの違いがイマイチ分からなかったんです。でも、動画で説明されると「なんとなくこういうことなんだ」という考え方の糸口が見えたというか。
プログラミングの書籍で理解できなかった部分で、苦節6年くらいのつまずきがやっと解決できました。実際、イロハのイくらいのところだと思うんですけど(笑)。
Pythonを使った計算ドリルを作るに至った経緯とは?
──ここからは優秀賞を獲得した「子ども用計算ドリル」の話を伺わせてください。どういったきっかけでアイデアを思いついたのですか?
大友:今、子どもが小学校1年生で。学校で算数の計算カードが配られていたんですね。1枚目に1+1が書いてあって、2枚目に1+2が書いてあるみたいな。英語の単語帳みたいなイメージですね。でもそれだとめくるのがまどろっこしいしカードをめくりながら答えを見ちゃったりするんです(笑)。
そこで、妻が100マス計算ドリルを買ってきたんですけど、一冊終わったらまた同じドリルを買って来るのをみて、何度も買うのはもったいないと思ったことから、数式を考えながらエクセルに手打ちして問題を自作していたんです。ただ、これって自動でできるよなぁって思い始めて。
──そうだったんですね。
大友:その状態からしばらくして、2+9や7+4などの数式をランダムに表示させるちょっとしたプログラミングを作ったんです。ランダムに表示された数式の配列を、エクセルに手打ちする仕組みでした。
いちいち書き込むのが面倒だと思いながら続けていたんですが、ある時、たまたまPythonを使ってエクセルに直接、書き込みができることを知ったんです。できるのであれば試しにやってみようと。まずは1つずつ数を表示させるところからスタートしました。「1行目に数が入った!じゃあ2行目だ!」みたいな。試行錯誤の繰り返しで大変でしたけど(笑)。
──1週間で「子ども用計算ドリル」が完成したそうですね。スケジュールはどんな感じで組んだのですか?
大友:会社から帰宅して家事が終わってから、さぁ、作ろうみたいな。毎日コツコツとって感じです。しっかりと開発スケジュールを組んで作ったわけではなかったですね。
翌日の通勤中に「昨日はここが上手くいかなかったなぁ」ってぼんやり考えながら電車に揺られて、どうすれば上手くいくのか試行錯誤するような感じでした。スマホで改善案をメモっておいて家に帰ったら試すみたいな。
実際、できればいいなくらいにも思っていたので(笑)。「やってみたらできた!やった!」くらいの感じだったんですよ。
──完成した「子ども用計算ドリル」を見たご家族の反応はいかがでしたか?
大友:妻はびっくりしてましたよ。「すごい!」って言ってくれました。これで毎回違う問題出し放題だって。子どもは「もっと足し算やるのかぁ」みたいな反応でしたが(笑)。
──お子さんにとってはそうかもしれないですね(笑)。とはいえ成果もあったのではないでしょうか?
そうですね。毎回違う足し算が並ぶので、最初の頃は問題を解くのにとても時間がかかっていたのですが、日を追って計算が早くなってきました。以前は7分かかっていたのが、今では1分を切れるように成長して。改めて積み重ねは大事だなと思いました。
──足し算だけでなく、引き算もできますよね。
大友:はい。応用で掛け算バージョンもありますよ。まだまだカスタマイズしたいポイントがあるので、子どもの成長に合わせて実装していきたいです。
学びは、気負わず、細く、長く続ける。モチベーションを維持する秘訣
──ちなみに、お仕事もあるなかで、プログラミングを学び続けるってそう簡単ではないと思います。大友さんの場合はご家庭もあるわけですし。取り組み方のコツみたいなものはあるんでしょうか?
大友:最初から気負わずに大きな目標を立てず、空いている時間にコツコツやっていました。家に帰って家事をして妻と子どもが寝た後や通勤中に動画を見るとか。あんまり高望みしちゃうと、勉強自体が辛くなっちゃうのかなって。目標は高く持たずに、楽しければ続けていく。僕はこれくらいのスタンスで学習を続けています。
興味を持ったものがあれば、ちょっとチャレンジしてみるくらいがいいのかもしれません。実際、僕はWebスクレイピングが面白そうだからやってみたんですけど…挫折しました(笑)。またチャレンジしたいんですけどね。楽しめることがあればラッキーくらいで十分ではないでしょうか。
Udemyを利用するにしても、例えば「お金出してUdemyのコンテンツを1つ買った」で第一関門クリア、次に「5分学んだ」で第二関門クリア、くらいの感覚でいいと思うんですよ。最初は積んだままでも、一週間に一度でいいから、ちょっとコードを書いてみたり、目を通してみたりすればいいわけですし。
少し時間が空いたとしても自分を責めずに、また学ぼうとしている自分を褒める。実際、自分のためにやっているので、無理する必要はないと思うんです。
あとは学びを発表できる場を利用するというのもいいかもしれません。僕自身、UdemyでPythonを学んではいたのですが、覚えた知識がそのまま寝ていたみたいな状態でした。そんな時に丁度「【Qiita×Udemy特別企画】学習応援イベント」の開催を知ったんです。
もしかしたらこれは、これまで学んだことが発揮できるチャンスかもしれないなって。このイベントがなければPythonの計算ドリルも作っていませんので。
エンジニアともより深いコミュニケーションが取れるように
──実際にプログラミングを学んでみて、仕事で活きた点などはありましたか?
大友:Pythonではないのですが、ちょっと前にUdemyで「【世界で30万人が受講】フルスタック・Webエンジニア講座(2017最新版)」というコンテンツを購入したんです。HTML,CSS,JavaScriptについて学習してみたのですが、ここの学びが活きてますね。
僕の場合、実際の仕事でコードは書いていませんので、HTML,CSS,JavaScriptに詳しくはなかったのですが、Udemyの講座を通じてCSSやJavaScriptでどのような動きが可能になるかという知識は手に入れました。
その知識を活かして、例えばお客さまから「画面でこういったグラフが出したい」というご要望をいただいた際に、「CSSやJavaScriptでどうすれば実現することができるか?」を考えるようになりました。
以前であれば、社内のエンジニアにお客さまの要望をそのまま伝えていたものが、もう少しプログラミングの話も交えて具体的に会話できるようになったと思います。社内のエンジニアとより深くコミュニケーションが取れるようになったのは大きいですね。
──仕事でもプログラミングの知識が活きているのは素晴らしいですね。ちなみに次に何か作りたいというお考えはあったりしますか?
大友:美術館・博物館に関するサービスを作ってみたいなと思っています。美術館や博物館を見て回るのが好きなんですけど、自分にとって便利な美術館・博物館に関するサービスがないんですよね。みんなに使ってもらう、話題になってアクセスを集めるというよりも、自分が欲しいものを作りたいんです。
作り始めたら、また必要な知識を学ぶためにUdemyを利用する機会があるかもしれないですね。「プログラミングを学ぶ」というとプログラマーやエンジニアになって年収アップみたいな方もいるとは思うんですけど、僕はそういう感じでもなくて、自分の欲しいものを実現していきたいです。
──最後に受賞を記念して読者の方へメッセージをいただいてもよろしいですか?
大友:人によっては「プログラミングを学ぶ」という言葉自体に敷居の高さを感じるかもしれませんが、もっとカジュアルにレベル感など気にせずに学んでみるといいのではないでしょうか。
何かしら立派なものを作る必要もありませんし、僕が作った「子ども用計算ドリル」みたいなシンプルなものでも十分、役立ってます。仕事や家事、育児でのちょっとした困りごとをプログラミングで解決してみようくらいの気持ちで、自分のペースで始めてみることをお勧めします。
編集後記
大友さんの学習スタンスがとても素晴らしいと感じました。会社で用意されている研修や社内試験などではない、自己研鑽のための学習にはなかなか気持ちが向かない方も多いのではないでしょうか。
「自分から始めたのだから最後までやりとげないと…」、「挫折してしまってお金や時間を無駄にしたくない」など、自己研鑽の学習はつい気負ってしまいがちです。ですが、まずはそういった意識を”カジュアルなモード”に切り替えることから始めてみるといいのかもしれません。
他人にひけらかすわけでもなく、直接的な金銭につながらなくてもいい。自分や身の回りの大切な人たちのために、学習したことを活かしたい。そんな自分だけのプログラミング学習と開発があってもいいはず。
初心者はとにかくやってみるのが大切です。その第一歩として、Udemyにどんな講座があるのか調べてみてはいかかでしょうか。
取材/文:川野優希
撮影:松木雄一
Udemyとは
Udemyは、「Improving Lives Through Learning(学びで人生をもっと豊かに)」を事業コンセプトとして掲げる米国法人Udemy,Inc.が運営する世界3,000万人以上が利用するオンライン学習プラットフォームです。
Udemyは、C to C(Consumer to Consumer)プラットフォームで世界中の「教えたい人(講師)」と「学びたい人(受講生)」をオンラインでつなげます。
最新のIT技術からビジネス、趣味まで幅広い領域の学びをオンラインで学ぶことができ、世界で約10万コース、42,000名の講師が登録しています。隙間時間にPC・スマートフォンなど好きなデバイスからのアクセスが可能で、学習期限はないため、必要な時に必要なだけ学習を進められます。
QiitaZineの読者におすすめの最新講座をご紹介します。これを機に皆さんも新しいスキルアップに挑戦してみてはいかがでしょうか?