本当に初心者目線に立ったプログラミング学習とは 日米英で1位獲得:Pocket Programming
1 2
いわゆるプログラミング学習で、初心者にとっての本当の壁とは何か。
「書いてある言葉の意味がわからない……」「パソコンがないと勉強を始められない……」「覚えることが多そうに見える……」このような問題をサポートしてくれるアプリが人気を集めている。
9月1日にリリースされた、『Pocket Programming - Ruby/Rails編 -』は、現在アジアや欧米など全世界約50カ国で利用されているプログラミングの初心者を対象とした学習アプリだ。11月2日には、『Pocket Programming(ポケットプログラミング) - Android/Java編 -』がリリースされたばかり。『Ruby/Rails編』は、新着有料教育カテゴリで米国・オーストラリア・イギリス・日本で1位を獲得している。
「プログラミングって楽しそう”と思えた人の、次のステップに」
昨今プログラミング学習の重要性は世界的にも増しており、その重要性が各所で取りざたされている。だが、実際には途中で挫折してしまう人も少なくない。モチベーションの問題や指導環境、目的意識のあるなしで変わってくるが、学ぶ機会を設けたとしても、まだまだ敷居が高いと感じる人も多い。
Pocket Programmingが人気を獲得した理由は、そのような初心者プログラミング教材で特に重要と考えられる部分へのフォーカスにある。基本的にはクイズ形式でのプログラミング学習だが、アプリだけで終わるものではないのがポイントだ。
重要な部分に集中して理解できるように4択のクイズ式問題には、必ず補足説明内容が入る。最初のうちはキーワードや押さえなければいけない要素の説明が中心で、1日10問を4週間続けることで学習の習慣化が図られる。
また勉強を始めるのに重い腰を上げる必要がないように1日ごとにスコアが表示され、間違った箇所は解説と共に振り返りができる。1週間を終えると独自のアルゴリズムで苦手分野が分析され、アドバイスと参考になる書籍やウェブサイトが紹介される。そこからより重点的に学んでいける仕組みとなっている。
プログラミング学習に必須となるパソコンについても、アプリ上ではコードを書く必要もなく、通勤電車の中や自宅のソファといった場所でのプログラミング学習ができるのもポイントだろう。「すぐに必要でない知識はあえて捨て、独り立ちできるようになるまでの知識に特化」している部分もあり、覚える範囲が絞られるため初心者にはうれしいはずだ。
初心者のおよそ9割が挫折するプログラミング教育の課題
『Pocket Programming』を開発・配信したのは、ドイツ・ベルリンに本拠を構える現在起業準備中のプレスタートアップ・ffab0(ファブゼロ)。共同代表を務める星野圭亮氏、北國悠人氏に気になるところを聞いてみた。
――世界的にもプログラミング教育の重要度は日々増しており、需要は高いと想定されますが、なぜ『Pocket Programming』を作ろうと思ったのでしょうか?
プログラミング教育のブームというのは、世界的に大変高まっていると感じています。そして、プログラミングを学ぶということへのハードルもだいぶ低くなってきたなと感じています。
ただその一方で、例えばプログラミングスクールのようなものに数万円の大金を払ってもうまくいっていなかったり、動画などを見て学んでも、いざコードを書くとなると、知識が定着していなくて思うように書けずに挫折してしまったりという学生を数多く見てきました。個人的な感覚では、およそプログラミング初心者のおよそ9割が挫折し、最終的にエンジニアとして働くに至る人は1割程度しか残っていません。
初めは、挫折者が非常に多いことは「学ぶ方々のやる気や目標設定の問題」だと感じていました。しかし、挫折者が9割近くいる状況を目の当たりにして、「初心者がスキルを十分に習得するまで、挫折せず、楽しく学習する最適な方法がないことも原因ではないか」と考えました。
私たちは二人ともエンジニアですが、もともと文系出身で全くプログラミングができないところからスタートしています。当時のことを改めて振り返ってみると、初心者の段階では不要な知識が学習段階では出てくることも多かったり、あるいは「あんなに回りくどい難しい言葉を使わなくても、こういう言い方をしてくれれば理解できたのに」ということなど、教える側にも大きな問題が潜んでいると思ったのです。
そこで、挫折や成功も含め、プログラマー初心者がこれからたどる道を等しく経験してきた私たちだからこそ用意できる学習方法を提供したいと思ったのが、『Pocket Programming』誕生のきっかけです。
――「本当に初心者目線に立った学習教材」という点で、触りやすく学びやすい印象を受けました。同様のアプリとの違い、セールスポイントを教えてください。
私たちが考える「本当に初心者目線に立った学習教材」というのを具体的に示すと、下記の3点に集約されるかと思います。
1. 無駄な横文字などの難しい言葉は避け、重要な点に集中して理解できるように説明
2. 勉強を始めるのに重い腰を上げる必要がないよう、気軽で楽しく
3. すぐに必要でない知識はあえて捨て、独り立ちできるようになるまでの知識に特化
「1問1答のクイズ形式を1ヶ月間続けることで力がつく」設計や、解説での振り返り、独自アルゴリズムでの苦手分野分析による本やウェブサイトの紹介は、これらを具現化した部分です。
既存のプログラミング学習サービスでは、動画を見てそれを真似しながらコードを書く形式のものやチュートリアルの例題を見た後に数問問題を解く形式のものが多いです。これらの学習スタイルはプログラミング学習の導入期には相応しいですが、それだけで力をつけることは難しいです。なぜなら、自分の頭で考えて覚えるという作業が少ないためです。
例えば、数学を勉強するときも最初は授業で概要を教えてもらいながら、その後に何度も自分で練習問題を解く必要があります。プログラミングの学習も数学のそれと同様です。「教えてもらう」の次のステップは「自分で知識を整理し、定着させる」ことが必要です。Pocket Programmingはまさにその役割を担っています。
1 2