プログラムって、英数字と記号で書くあの暗号のようなものです。プログラミングに興味があっても、どうしても難しく思えてしまい、なかなか始められません。
そこでご紹介したいのは、プログラミングをゲームで楽しく学ぶ方法です。
最近はとても楽しく利用できるサービスやアプリが出ています。しかも無料!
でも・・・本当にゲームでプログラミングを学べるなら、みんな苦労しないはず。本当にそんな楽な方法があるのでしょうか?
本記事では、プログラミングをゲームで学べるサイト3選を、現役プログラマのきびしい目線で評価してみました。さらに「本当にゲームでプログラミングができるようになるのか」を考えてみました。
これからプログラミングをゲームで学ぼうという方、ぜひお読みください。
- プログラミングが難しすぎると感じたら、ゲームテイストのアプリで学ぶのが有効
- Scratchやマインクラフト、スモウルビーなどのアプリが有名
- これらのゲームの経験から始めて、プログラミングの基礎を学ぶことが重要
プログラミングをゲームで学ぶ意味
プログラミングとは本来は英数字でコードを書くものであり、ゲームの要素はありません。なのにプログラミングをゲームで学ぶとはどういうことでしょうか?
プログラミングはそもそも難解
まずはともあれ、以下をごらんください。Javaという開発言語で「1から順に10を足す」というプログラムです。
public class Main { public static void main(String[] args) { int sum = 0; for( int i = 0 ; i <= 10 ; i++) { sum = sum + i; } System.out.println(sum); } }
何も知らない状態でいきなりこれを見せられると、思わずそっと閉じてしまいます。しかもこの手のプログラムは、残念ながらほぼすべての書籍で出てきます。
これをいきなり学びたいと思うでしょうか?
プログラミングに興味が持てない
それもそのはず、上の暗号のようなプログラムを見て興味がわく人はあまりいないでしょう。同じように「繰り返し」をプログラミングゲームの代表格であるScratchで実装してみました。
ファーストステップとしてどちらがとっつきやすいか、もう言うまでもないですね。
プログラミングをゲームで学ぶ意味
プログラミングをいかなる方法で学んでも、行き着く先は前述の「見た目は暗号のようなプログラム」です。プログラマたちは日々こんなむずかしいプログラムを量産しています。
どうせ最終目的が「むずかしいプログラム」なら、ファーストステップはラクに、楽しくいきたいものです。そうです、それがまさしくプログラミングをゲームで学ぶ意味なのです!
プログラミングをゲームで学べるサイト
早速、プログラミングをゲームで学べるサイトを見ていきましょう。各サイトを特徴/料金/プログラマ的評価の観点で解説します。
Scratch
キャラクターに指示を与えて上下左右に動かしたり、回転させます。与えた指示がビジュアル的に見られるので、目で見ながらより複雑な指示を与えたくなってきます。
キャラクターの動きだけでなく、背景を変えたり複数のキャラクターを動かしてアニメーションを作ることもできます。
・料金
無料です。プリケーションをインストールすることなく遊べます。動きをPCに保存できます。
・プログラマ的評価
いくつの動作を何回、ある条件によって分岐といったプログラミング要素がすべて出てくるのはさすがという感じがします。画像にあるのは制御文を実装したもので、for文やif文を想起させるような形なのがとてもよいです。
子供もすぐ使えるようになるし、キャラクターも可愛い!子どもたちに人気があるのも分かるような気がします。
残念なのは、Scratchをどれだけ頑張ってマスターしても、実際のソースコードを書けるようにはならないことです。ただし市販の本で、Scratchとプログラミング言語(Pythonなど)との対比を解説しているものがあるので、それらを利用するとよいでしょう。
MineCraft
・特徴
いわゆる「マイクラ」で親しまれたゲームです。
アドベンチャー的要素が加わったゲームです。クリエイティブモードを使えば自分でオリジナルの建物などを作ったり、誰かの作ったゲームを楽しんだりできます。
・料金
ニンテンドーSwitchやPlayStation、AppStoreやGooglePlayなどなど、さまざまなプラットフォームで楽しむことができます。WindowsやMacOSでも楽しめます。これらはすべて有料です。
・プログラマ的評価
確かにすごく面白く、大人でもハマる要素十分です。ただし、ここまでくるともはやプログラムとは関係なくなっているような気がします。
プログラミング以外の要素が強く、あまり時間をかけすぎたところで「プログラミングをビジュアルで学ぶ」という目的から外れてしまいかねません。子供の独創力を高めるのにはよいかも知れませんが・・・
スモウルビー
・特徴
キャラクターを疑似言語で動かすのは先の2つとほぼ同じ。このゲームがすごいのは、キャラクターに動きを与えると、その動きをRubyのソースコードに変換できることです。
上の画像をコードに置き換えてみましょう。
動きを表現し、それをコードに置き換えて理解すると、Rubyそのものの理解も進みますね!
・料金
無料です。アプリのインストールは不要で、ブラウザがあれば遊べます。
・プログラマ的評価
実際に子供の教育に使われているだけあり、壮大なスケールや多彩なキャラクタがないもののシンプルです。プログラミングの経験がまったくない大人に教えるときにも十分使用に耐えるゲームです。
強いて言えば、独特な記述が出てくるので、最初は専門知識を持つ人のサポートを借りたいところです。
現役エンジニアからフィードバックが受けられるプログラミングスクールはこちら
遊んだだけではプログラマになれない
今までプログラミングをゲームで学ぶという視点で解説してきました。ところで、本当にプログラミングをゲームで学んでプログラマとして就職できるのでしょうか?
プログラミングゲームがすべてではない
プログラミングゲームは、プログラムの要素すべてを網羅しているのではないのです。職業としてのプログラミング(Web系)は一般的に以下の流れです。
1. 変数
2. 繰り返しや分岐などの制御構造
3. オブジェクト指向
4. サーバやネットワーク、データベース
5. フレームワーク
この中で、ゲームで学べるのはあくまで1と2だけです。3から5はゲーム化することがむずかしい内容なので、ゲームでは学べません。
プログラミングゲームは、プログラミングすべてを網羅しているわけではありません。
面接でアピール材料にはならない
プログラマーの面接で、いきなりドヤ顔で「ゲームでプログラミングを学びました!」とアピールして評価されるでしょうか?残念ながら、NOといわざるをえません。むしろ面接官は絶句するでしょう。
違和感を持った方はそれが正解
プログラミングを学ぶゲームは今回解説したもの以外に多数あります。中にはとても複雑だったり愛らしいキャラクターが教えてくれたりといろいろです。
読んだ方の中には「本当にこれで遊んでプログラミングができるようになるのか?」と思った方はおられるはずです。そしてその違和感は正解です。
プログラミングはファーストステップの高さを下げてくれるのには最適です。ただし、プログラミングの要素すべてではないので、ゲームだけでは足りないのです。
プログラミングゲームのその後は
繰り返しになりますが、プログラミングゲームはファーストステップを下げてくれるものです。本当にプログラミングを学ぶために大事なのは、ゲームで楽しんだその後です。
ゲームでひと通り遊び終えたあと、プログラミングの基本概念はすでに身についているはずです。その感覚をもって、ふたたび英数字や呪文のような、本来のプログラミングの世界に戻るのです。
もう一度、先ほどのプログラミング学習の流れを見てみましょう。
1. 変数
2. 繰り返しや分岐などの制御構造
3. オブジェクト指向
4. サーバやネットワーク、データベース
5. フレームワーク
実は、初学者が挫折するのはだいたい3です。1と2でヘトヘトになり、3になって息絶えます。ところがプログラミングゲームで基礎を学ぶと、1と2はすでに終わっており、3に入ってもまだ気力は十分あります。
プログラミングを学ぶためにゲームは有効です。ですが、まだその先があることをお分かりいただけたでしょうか?
まとめ
プログラミングをゲームで学ぶのは、とても楽しくてラクな方法です。小学校の教育で使われているScratchや普通にゲームとしても面白いMineCraftなどで、プログラミングのエッセンスを学ぶことができます。
ただし、ある程度遊んだあとは、地道に基礎からプログラミングを学ぶ必要があるんですね。
メリット、デメリットを踏まえて、有効活用してください。
独習でプログラミングを学ぶのは無理がある…とお考えのあなたは、ポテパンキャンプのようなオンラインスクールの利用も検討しましょう。
プログラミングをゲームで学ぶサイトは、だいたいこのScratchと似た構成になっています。