エンジニアなら解けるかも?プログラミング経験ゼロでもSQLを無料で学べるpaizaのプログラミングゲーム「エンジニア騎士とクエリの魔女 DBエンジニア、魔法使いになる」で遊んでみた

GIGAZINE
2022年08月22日 12時00分
広告


仕事や趣味でプログラミングを勉強する場合、ウェブサイトや市販の教本を見て学習するのが一般的。プログラミング経験があれば、ある程度勉強のやり方が身についていますが、まったくの未経験だと何から手をつけていいのかわからず、モチベーションが続かないこともあります。ITエンジニア向け転職・就活・学習サービスのpaizaがリリースした「エンジニア騎士とクエリの魔女 DBエンジニア、魔法使いになる」は、「異世界に勇者パーティそして召喚された新人ITエンジニアの男女。目覚めるとそこは、剣(コード)と魔法(SQL)が支配する世界だった。騎士と魔法使いの冒険が、いま始まる。」というオープニングで始まる異世界転生プログラミングゲームで、SQLやプログラミングの問題を解くことで、ゲーム内で使えるパーツや衣装などのアイテムをゲットできるとのこと。そこで、プログラミング経験が皆無の超初心者である編集部員がプログラミングを学習しながらゲームを攻略してみました。

エンジニア騎士とクエリの魔女 DBエンジニア、魔法使いになる
https://paiza.jp/entry/code_and_sql_g/

DBエンジニア、魔法使いになる【プログラミングゲーム】 PV 30秒版 – YouTube
[embedded content]

「エンジニア騎士とクエリの魔女」のトップ画面はこんな感じ。プレイするにはpaizaのアカウントが必要なので、「無料登録 GAME START」をクリック。なお、公開を記念し、Amazonギフト券が当たるキャンペーンが実施されています。


登録後のホーム画面はこんな感じ。プレイヤーのアバターは剣士(男性)と魔法使い(女性)の2つ。魔法使いのデザインが気に入ったので、「魔法使い装備」をクリック。


「エンジニア騎士とクエリの魔女」はファンタジー系RPGのような見た目でありながら、プログラミングの問題を解いていくことで自身のプログラミングスキルをチェックすることができるというサービスです。この「エンジニア騎士とクエリの魔女」では装備を変えることで、各キャラクターの見た目が大きく変わっていきます。最初の段階では初期装備のみですが、問題を解いたりクエストをこなすことで装備をゲットすることができます。問題を解いてみるべく「冒険」をクリック。


「エンジニア騎士とクエリの魔女」で対応している言語は、Java・PHP・Ruby・Python 2・Python 3・Perl・C・C++・C#・JavaScript・Objective-C・Scala・Go・Swift・Kotlin・Haskell・CoffeeScript・bash・Erlang・R・COBOL・VB・F#・Clojure・D・Elixir・Rust・Schemeです。今回はさらにデータベース言語のSQLにも対応したとのこと。SQLは比較的難度が低めということなので、最も難度が低いレベルDでSQLの問題が出題される「魔法使いの街」をクリックしてみます。


エリア詳細が表示されます。この魔法使いの街をクリアすれば、新たな装備品として「魔導書」をゲットできるとのこと。「この問題にチャレンジする」をクリック。


表示された問題が以下。ある程度データベースやSQLのことを分かっている人向けの内容となっており、完全な初心者だと「テーブル?レコード?カラム?この下の図はいったい何ですか?」となってしまいます。


しかし、paizaはプログラミング学習サービスの「paizaラーニング」を運営しており、「ヒント」のリンクをクリックするとSQLを基礎から学ぶことができます。、「エンジニア騎士とクエリの魔女」の問題をクリアするためにpaizaラーニングでSQLを学習してみることにしました。ヒントのリンクをクリックすると、paizaラーニングのSQLレッスンに飛びます。


SQLの基本を学ぶことができるこのレッスンは普段は一部有料ですが、ゲーム公開を記念し2022年9月21日まで「新・SQL入門編」は無料で学習できるそうです。せっかくなので、レッスン1から学習してみることにしました。右側の「新・SQL入門編1: SQLをはじめよう」をクリックします。


日常業務で使うさまざまなデータをまとめるデータベースとは何かという最も基本的な部分の解説から始まるので、まったくの初心者でも問題なくSQLの学習を始めることができます。チャプター1の「データベースとは」の「このチャプターを受講する」をクリック。


学習はムービーベースで進み、要点が簡潔にまとめられて表示される上に、聞き取りやすいナレーションもついているので、理解が進みます。


データベースの基本でテーブルやカラムといった単語が登場し、「あ!これはさっきの問題に出てきた単語だ!」と気づきました。ちなみに、テーブルはデータが蓄積されている表で、レコードはデータの1行1行のこと、カラムはエクセルで言う列を表すそうです。


「新・SQL入門編」では、最初にSELECT文を学習します。SELECT文はテーブルからレコードを取得するものなので、「魔法使いの街」で出題された問題に対応できそう。


SELECT文はレッスン2~5で学習するとのことなので、ひとまずレッスン2まで学習してみます。


実際にSQLの言語学習が始まると、画面の右側にコンソールが出現しました。MySQLにアクセスする方法がムービーで解説されるので、その通りにmysql -u rootと右側のコンソールに入力すると、MySQLにアクセス成功。非常に簡単なことですが、その場で学習してコマンドを入力して反応が返ってくるのはワクワクします。


また、チャプターによっては「演習課題」を出されることがあります。


演習課題は学習内容を復習するためのもので、右側コンソールにコマンドを入力して与えられた問題を解決します。今回は「mysql -u root」でMySQLにアクセスしてから、「USE bookstore」でbookstoreデータベースを選択します。「Database Changed」と表示されてデータベース選択に成功したことを確認したら、画面下部にある「採点する」をクリックします。


すると、入力したコマンドがチェックされ、正解であればクリアとなります。


そんな感じで学習を進めていき、ひとまずレッスン2までを履修しました。レッスン2ではSELECT文を使ってデータベースからレコードを取得したり、さらにORDER BY句を使ってレコードの順番を指定したり、抽出するカラムを指定したりする方法を学習できます。


レッスン2まで履修した状態で、もう一度「魔法使いの街」の問題を見てみました。すると、前回はまったくのチンプンカンプンだった問題文の意味が理解でき、下にある図は各データベースのリレーションを示したE-R図であることもわかりました。問題文の意味が理解できると、問題としては非常に初歩的でシンプルなものであることがわかります。


今回はデータベース内にある「Hell」テーブルからidとnameのカラムにあるレコードを取得すればOKなので「SELECT id, name FROM Hell」で問題ないはず。その通りに入力したら、下部にある「提出前動作確認」をクリック。


すると、このコードで実際に出力される結果と、期待する出力が同時に表示されます。上下の出力結果が一致していることを確認したら、「コードを提出」をクリック。


「一度提出したら訂正できない」という注意書きが表示されるので、「OK」をクリックします。


すると、コードの検証が行われ……


見事クエストクリア!


冒険マップに戻ると、「魔法使いの街」のアイコンがクリア済みのものに変わっています。「この調子でクリアできるかな?」と、次にSQLで同じくランクDの「果ての平原」もクリックしてみました。


エリア詳細を見ると、アバターの表情を変えられる「タレ目・ツリ目」がゲットできるとのこと。「この問題にチャレンジする」をクリック。


今度は「Hellテーブルをid・name・strカラムで、str値で大きい順に並べて上位5つのレコードを出力しろ」と出題されていることだと理解。これは表示されているヒントにある通り、「新・SQL入門編」のレッスン2で学習するORDER BY句やLIMIT句を使えばできると気付きました


そこで今回の解答が以下の通り。「SELECT id, name, str FROM Hell」でHellテーブルからid・name・strカラムのレコードを出力します。そして、「ORDER BY str DESC」はstrカラムの値で降順で並べることを指定し、「LIMIT 5」で上位5つのレコードだけを出力するよう制限しています。


提出前動作確認をしたところ、上下で同じレコードが出力されていることを確認。「コードを確認する」をクリック。


問題なくクエストクリアに成功。装備が手に入ったので付け替えてみるために、「装備を変更する」をクリック。


今回は最初にゲットした魔導書を装備してみます。「WEAPON」にある魔導書をクリック。


魔導書のアイコンをクリックします。


すると、装備を杖から魔導書に変更できました。


今度はホーム画面に戻り、右下にある「試練」をクリック。


試練では、スキルチェックやランキング問題に挑戦したり条件を満たしたりすることで、装備アイテムが手に入る仕組み。今回は左上から3番目の「paizaでプロフィール基本情報を入力しよう」にトライしてみます。


paizaアカウントのプロフィール基本情報を入力し終わりゲームに戻ってページをリロードすると、「大剣」をゲットしました。こんな感じで「試練」を進めていきながら、装備をがんがん集めて冒険を続けていきます。


「エンジニア騎士とクエリの魔女」の見た目はファンタジー系RPGのようですが、その中身はプログラミングの問題を次々とこなしていけるサービスになっています。プログラミングの知識がない初心者がゼロから学んでいく内容ではありませんが、paizaが運営するプログラミング学習サービスのpaizaラーニングで学習しながら進めていけば、どんどんクリアすることができます。ゲームの進捗で自分のプログラミング習得状況が可視化され、転職や就活にも応用できるというのは大きいポイント。

また、「エンジニア騎士とクエリの魔女」は完全初心者のプログラミング学習にも役立つと感じました。仕事ではなく個人的な興味でプログラミング言語を習得する場合、プログラミング言語の文法や仕組みを学んでも、実際に使わなければ学んだことは単なる記憶にとどまってしまい、身につきづらいものがあります。「エンジニア騎士とクエリの魔女」は「この問題を解くためにはここまで勉強すればいいのだな」というように、各問題がプログラミング学習の課題目標となるので、教本のコードを打ち込む「写経」にとどまらず実際にプログラミング言語を考えて使うことにつながります。paizaラーニングなどによる勉強と並行すれば効率よくプログラミングを勉強できるため、「エンジニア騎士とクエリの魔女」はゼロから新しくプログラミング言語を習得したいという人にもおすすめできます。

なお、「エンジニア騎士とクエリの魔女」の公開を記念し、2022年8月22日(月)〜2022年8月31日(水)にGIGAZINE読者限定で、Amazonギフト券500円分が先着100名に当たるキャンペーンが実施されています。特定の問題をクリアした人が対象とのことで、詳細については以下のサイトをチェックしてみてください。

「エンジニア騎士とクエリの魔女 DBエンジニア、魔法使いになる」リリース記念!Amazonギフト券500円分を先着100名様にプレゼント!
https://paiza.jp/code_and_sql/gigazine_campaign

エンジニア騎士とクエリの魔女 DBエンジニア、魔法使いになる
https://paiza.jp/entry/code_and_sql_g/


この記事のタイトルとURLをコピーする

Source