【体験談】神里よしとさんのレッスンで、 Ruby完全初心者が対戦ゲームを作ってみた




こんにちは、まゆです。

プログラマカレッジに通い始めて、1ヶ月半。

Javaの難しい&長〜いコードと格闘する日々を送っています。

ECサイトを作るべく、Javaとデータベースを接続できるようにしたり、ブラウザから入力された情報をサーバーに渡して、ブラウザに戻すといった仕組みをJSPとかサーブレットを使ってプログラミングする方法を勉強しています。

※ECサイトとは、Amazonや楽天のようなインターネット上で商品やサービスの売買を行えるサイトのことです。

まゆ

ね、難しそうでしょ?

なぜレッスンを受けようと思ったのか

とにかくJavaのコードは長いし、初めて目にするプログラミングが一気にたくさん出てきて、ここ数週間くらいモチベーションが一気に下がっていたんです。

そんなとき、こんなツイートに目が止まりました!

え、めっちゃ受けたいんですけど!

ということで、早速で返信。

なんと!幸運なことにマンツーマンでレッスンしていただくことに!

もともと、Rubyは勉強しなくちゃなと思っていたのと、Javaにやっつけられていたので他の言語に触れたかったんです。(切実)

また、かねてよりお世話になっている神里さんにお会いできる!というのもレッスンを受けようと思った理由の1つです。

なにより、2時間1,000円ですよ。超ありがたい!

 

ちなみにこの時点の私のRubyの知識は、

まゆ

Rubyは文字を出力する時に、putsを使う!

くらいなもんでした。

 

神里よしとさんについて

レッスン内容の前に、講師の神里よしとさんについてご紹介します。

神里よしとさんとは

神里さんは、元化学系研究者から29歳で転職し、ITエンジニアになられました。

ご自身はプログラミングスクールに通っていたそうですが、「スクールに通わなくても転職はできる」と気づかれたそう。

そのことを伝えるため以下の活動をされています。

上の画像は神里さんのブログよりお借りしていますが、お洒落でかっこいいですよね。

プログラミングレッスンだけでなくデザインも教えてらっしゃるんですって。

こちらも興味あるなぁ。

神里さんとまゆの関係

なぜ私が神里さんにお会いしたかったかというと、ブログ立ち上げの際に色々とお世話になったから。

「プログラミングの勉強を第一にしなければならない」という思いからブログには手を出せずにいたのですが、神里さんの存在を知りブログ開設を決めました。

「アラサーで未経験からエンジニアを目指す」という共通点がありましたし、なによりブログ運営も成功されていたから。

また、ブログ開設について相談させていただいた際、こんなアドバイスも頂きました。

神里さん

未経験からプログラマになるまでのストーリーをブログに書くことで、ファンづくりができる。

実際プログラマになるまでにはたくさんの試練を乗り越えねばならず、楽ではありませんし、ブログも短期で結果が出るものではありません。

だからこそ、他人には真似できないブログが作れると思いますよ。

この言葉にすごく背中を押されました!

私は、ただのフツーのOLで、何の取り柄も特技もないけれど「プログラミングを頑張る姿勢」は発信できるなと。

さらに、はじめて書いた記事もみていただきアドバイスをいただいたり、とにかく神里さんにはお世話になりっぱなしなんです。

 

いよいよレッスン

ツイッターのやり取りから、日程もトントン拍子に進み、都内のカフェでレッスンをしていただきました。

持ち物はPCだけ!

 

まず、macの便利な使い方から教えていただきました。

『command + tab 』でアプリの切り替えができるよ、とかそういうこと。macの使い方がまだまだわかっていないなぁ、と再認識できた。

研修では、あらかじめ設置されているPCを使っています。しかもwindows。

まゆ

家に帰って同じように動かそうとすると、なんか上手くいかないことが多くて、その都度調べて時間を取られてたんだよね。

実際に自分が使うmacで「ここをこう動かすとこうなるよ」と教えてもらえるのは、ありがたかったです。

 

次に、Sublime Text(サブライム テキスト)というテキストエディタをダウンロードし、そちらにコードを書いていきました。

神里さんが私のレベルを確認しながら、実際にコードを書いてお手本を見せてくださり、それと同じように自分でも書いてみるというやり方。

書いたコードは、ターミナルで実際に動くかどうか確認。

この作業を繰り返し行い、1時間ほどで以下のコードを使えるようになりました。

  • 文字・数字の出力(puts , print)
  • 四則演算
  • ターミナルから数字を入力できるようにするコード(gets.chomp , gets.to_i)
  • while true(無限ループ)
  • if,elsif,else
  • ランダムな数字を出すコード(rand())

ここまでできたら、神里さんから最後のお題が!

神里さん

ドラクエ風の対戦ゲームを作ってみましょう!今まで学んだコードだけでできますよ!

えー!ゲームなんて本当にできるのかな。

完成したものは・・・!?

最後のお題だけは、神里さんのお手本は無し。

代わりに以下の条件を提示していただきました。

  1. まゆ、スライムのレベルを宣言
  2. 「戦う」か「逃げる」かを選択できるようにする
  3. まず、まゆが攻撃。4回に1回「会心の一撃」を繰り出せる
  4. 攻撃を受けたスライムの様子を出力する(ダメージによって反応が変わる)
  5. まゆの攻撃後、スライムが攻撃してくる
  6. まゆの受けたダメージ数と、残りのHP数を出力する
  7. どちらかが死ぬまで、攻撃をループさせる

うーん。難しそう。

でもよく考えると、確かに今まで習ったものを使えばできるんですよね。

「戦う」か「逃げる」かをターミナルから入力・選択できるようにするには、「 gets.to_i 」「 if文 」を使えばいいでしょ。

4回に1回の「会心の一撃」は「 rand(4) 」を使う。

攻撃されて減っていくHPは、四則演算で書けるし、攻撃のループは「 while true 」でできる!

という具合に上の7つのお題を一つ一つクリアしていき、いよいよ実行!

 

まゆ

あれ?うまく動かない・・・

神里さん

どこが、おかしいと思いますか?ちょっと考えてみてください。

エラーの数だけ、成長に繋がりますよ〜

 

書けた!と思っても実行してみると、攻撃のループがうまくいかなかったのです。

動き方から、whileの位置がおかしいんだ!と気づき、コードを書き換え今度こそ実行!

まゆ

わ〜!できたできた!会心の一撃も出せたし、スライムに勝った!

実行できた瞬間、頭がスッキリして、「うわー、やっぱりプログラミングってたのし〜!」って思いました。

最近、味わっていなかったよ。この感覚!

神里さんにヒントいただいたり助けてもらったけど、『一から自分で作ったプログラミング!』という感じがして、本当に嬉しかった。

帰っていろんな人に自慢して、実行してみせました。

まゆとスライムのレベルが同じくらいなので、たまに会心の一撃が一度も出ず「まゆが死ぬ」こともあったり・・・笑

 

神里さんのレッスンを受けてよかった!

Ruby完全初心者の私でしたが、2時間でスライムとの対戦ゲームを作ることに成功しました!

私は、理解度が高いわけでも勉強がすごく出来るわけでもありません。

神里さんに指導してもらったから出来たんです。

 

神里さんは、まず自分の頭で考えさせてくれる。

どうしても分からない時は、ヒントをくれる。正解を教えるのではなく、例えを出したりして正解までの「道筋」を教えてくれる感じ。

エラーが出たら、「どうしてそうなったと思いますか?」とまた考えさせてくれる。

教え方が一方的ではないんです。

生徒に向き合って、常にこちらがどう思うかを聞いてくれ、その上で正しく指導してくださる。

だから、一つ一つをちゃんと理解できるし、コードを自分で使えるようになる。

神里さんが少人数制のレッスンにこだわる意味がわかった気がします。

こりゃ大人数には出来ないよね、手厚すぎて。

 

神里さんのレッスンを受けて学んだこと
  • macの便利な操作方法
  • ショートカットキーは、最初は不慣れでも覚えた方が良い
  • Rubyって便利で簡単!
  • 少ない知識でもプログラミングはうごく!
  • コードは自分で考えて書くのが重要。写経には限界あり
  • コードは実行してみて、不自然なところを改善していくと良い
  • エラーを解決することが成長につながる

たったの2時間1,000円でこれだけのことを学べるなんて、お得すぎる。

「Rubyやりたいけど、やったことない」という方や、「もっと理解を深めたい」という方に超オススメです!

私は、ちゃっかり質問したいことを用意しておいて、転職や今の職場、今後どうされるのかなんかも聞けちゃいました。

めちゃくちゃ勉強になりました。

未経験からエンジニア目指している方、神里さんに会えるだけでもお得ですよ!

同じ道を目指すなら、すでに成功している人に聞くのが一番の近道ですからね!

 

おまけ

レッスン後に、自分でプログラミング作ってみました!

大好きな宝塚歌劇団のネタです。

すみません、自己満です。意味がわからないと思うので、説明させていただきます。笑

だいもん・・・まゆの愛する、雪組トップスター「望海 風斗(のぞみ ふうと)」さんの愛称。4回に1回「驚異の歌唱力(30P)」を出せる。

 

みりお・・・花組トップスター「明日海 りお(あすみ りお)」さんの愛称。イケメン。

 

攻撃はそれぞれ「ウィンク(だいもんは10P、みりおは10~15P)」で、生き残った方がトップスターになれる!というプログラミングにしました。

 

※実際は、相手を倒してトップになるということはありません。笑

ちなみに、まゆが攻撃を受けたら一発で死にます。

んー!ジェンヌさんの写真が掲載できないのが残念!気になる方は、こちらをのぞいてください。

 

話が宝塚へ脱線しましたが、プログラミング楽しんで勉強しています♪

上のコードを載せておきますので、コピペして遊んでみてください。

こうした方が良いよ!というアドバイスがあったら、ぜひ教えてください!

この楽しい体験のおかげで、プログラミングの楽しさを再認識できました。Javaも挫折せずにすみそうです。

まゆ

改めて、レッスン受けてよかったなあ。神里さんありがとうございました!