失敗しとこう!正課しよう!の、段

良い提案をしよう。お前も正課をやらないか?

こんにちは、コーディング課2回生の23です。こないだPCゲームおすすめしてましたのに自己紹介書き忘れましたおバカ
アドカレ二回目の登場と言うことで、今回は2年間RiG++でコーディングをやってきて感じたこと、ちょっと趣向の変わった記事をゆるゆる書こうと思います。
ゲーム作ってそれを種にするつもりだったのに忙しくて間に合わなかったのは内緒です。

ずばり今回おすすめするのは、
みんな!!!はやめにたくさん失敗しとこう!!!!!
そして正課をしよう!!!!!

ということです。怒らないでくださいハラスメントではないですマジで

失敗のススメ

唐突になぜこんな話をするかと言うと、私自身が大学入学から2年間、正課にコーディングに四苦八苦して肌で感じたことだからです。

私は2年前入学してすぐRiG++に所属して、そこで初めてプログラミングというものを勉強し始めたプログラミング未経験者です。
しかし、先輩のやさしく説明してくださった講習を聞いてなんとなく理解し、1回生だけのグループを組み、なんとなくコードを書いて気分爽快な横スクロールアクションを完成させることができました。この経験を通して「自分もゲームらしいものが作れるようになった!」と感じたので、1回生秋学期には「にげろ!まおうさま」という企画を立て、ゲーム制作にチャレンジしようとしました。が、開発を始めてハタと気づきました。

何書いたらいいんかわからん。。。

コード自体はなんとなく書け、春期には1回生同士のチームで1作完成させましたが、いざ0から作るとなるとなにも書けない事態が発生しました。機能を追加することはなんとなく出来たのですが、ゲーム全体を管理したりそれらの機能をまとめるプログラミングの構造についての知識がまっっったくなかったからです。その上ゆる~い感じとはいえタクティクスゲームということで、経路探索やキューなどいきなりやったこともない概念を使う必要があったのも状況を悪化させました。調べても何をしているのかわからない、とりあえずコピペして改造したけど動かない、という状況でゲーム部分のプログラミングをしました。
結局、「経路探索、ターン遷移、キャラ管理をぜ~~~~~~んぶ1つの神クラスに任せちゃう」「ものすごい数のif分岐」「大勢のスクリプトが互いに相互参照してる」という、ザ・ダメなコードの見本市!みたいなプログラムができあがりました。チームメンバーが素晴らしい素材などを作成してくれて、可愛いキャラクターが見た目には良い感じに動いたので、結果的には完成して良かったのですが、内部的には上手くいっておらず意図したようなゲームにはなっていなかったので、申し訳ない気持ちでいっぱいになりました。

しかし、こうやってプロジェクトを立てて四苦八苦しながらコードを書いた記憶、経験は2回生になって多くの場面で役に立ちました。
2回生になってすぐ、まおうさま制作時にわからなかったポイントが授業で取り上げられたり、「オブジェクト指向」という概念を学んだ際にまおうさま制作での失敗と脳内で結びつき「こうすればよかったのか!」という強い印象と共に学びを得ることができました。
また、RiG++の開発でも、授業で得た知識を活かしたり、先輩から見にくいコードにしないための知識を得ることができ、プログラミングの知識をとても深めることが出来ました。
つまり、この失敗が活きたのです。

このように、一度失敗した経験を積んでおくことは、後々の知識習得や再挑戦時に役に立ちます。
失敗は辛いです。しかし、自身の経験から言うと、今のうちにたくさん失敗しておいた方が良いと思います。なぜなら失敗してもダメージは軽く済むので。
大人になってから失敗するのはお金をもらっていたりして責任が生まれてしまうので、なかなかできません。
(この言葉は半分ぐらいはこの間授業後に教授と話していて言われた言葉なのですが、本当にその通りだと思います。)
早いうちに失敗をしておいて、経験を積みましょう!

正課のススメ

しかしココまででおすすめした「失敗をする」ということはその後に反省する、知識を得るということがなければ成立しません。
では失敗を糧にするにはどうしたらいいのでしょうか?

そこでおすすめする一番手軽な方法が「正課に取り組む」ことです。
「大学生なんだから、正課に取り組まなきゃいけないのは当たり前だろ」と思われるかもしれませんが、やはり自学したりするよりは一番手っ取り早くて簡単な方法だと思います。特に自分のようなタイプだと自学では自分の興味のある知識にのみ偏ってしまったり、全然進まなかったりします。正課は(しなければ単位を落とすので)強制的にその解決が出来る上、自学だけでは身につかないコーディングに関わらない幅広い情報分野の知識を得ることができます。
これは完全に内輪向けの話にはなってしまいますが、特に個人的には「オブジェクト指向論」と「情報技術実践」という授業はおすすめです。
「オブジェクト指向論」は、プログラムをわかりやすくするために、機能を分割してプログラムを書こう、という考え方を学ぶ科目です。これを知っていれば安易にクソ長コードを書いてしまう恐れを減らせます。個人的にオブジェクト指向はRiG++1回生のうちに知っておきたかった概念第1位です。
「情報技術実践」は基本情報技術者試験の勉強をする科目なのですが、コーディングの知識に限らず、専門科目でやるあらかたの分野の軽い知識はここで学べますし、なにより資格試験の勉強になります。また全講義終了後に行われる試験に受かれば、単位に加えて基本情報技術者の午前試験免除ももらえます。

あと、正課ではないですがコーディングの知識を身につけられる本として……「リーダブルコード」という本はまじでおすすめです。ある程度プログラムが書けるようになった人(1回生の時の私みたいに「クソ長コードでも、とりあえずなんとなくプログラムを完成できる」人)向けですが、読みやすいコード、明快なコードにするヒントがわかりやすく書いてあります。僕も今まさに読みこんでいるところです。




と、ここまでお話ししてきましたが、かく言う私も正課で学ぶことはできたものの、それを活かしてまおうさまのリベンジ的に1本開発することはまだできていません。そのため来年の抱負として「開発をたくさんしたい!」という一言を掲げてこの記事を締めさせて頂こうと思います。
私も頑張りますので、一緒に頑張りましょう!

コメントを残す

CAPTCHA