皆さん、こんにちは。
先端メディアサイエンス学科の Iida です。
この記事では、私がプログラミングを学び始めたときから今に至るまで、どのようにしてプログラミングをするモチベーションを保ってきたのかについて書こうと思います。(本当はゼミで開発していたゲームについて書こうと思ったのですが、時間が足りなさそうなのでテーマを変えました…。)
また本記事はほとんど初心者向け、Processingユーザ向けの話題となっています。
人生初のプログラミング
私は今、学部2年生でプログラミングに初めて触れたのは大学1年生の5月頃でした。
最初に触れたプログラミング言語はProcessingというもので、初学者向けの言語です。
まず大学の授業で資料が配られ、最初はその資料に書かれたソースコードを模写し続けるところから始まりました。
最初は、コードを打つことによって画面上に様々なものが映って、自分自身はそれを楽しんでいたと思います。
しかし、内容が複雑になり、for文やら配列やら難しい要素がどんどん授業で扱われるようになり、授業で出題される問題も次第に時間内に解けなくなっていきました。
恐らく、当時の私はプログラミングに対して少なからず苦手意識を持っていました。
さらに授業が進むと、毎週のプログラミングの授業が憂鬱になり、プログラミングへの苦手意識は深刻になるばかりでした。
プログラミングの楽しさに気づいた夏休み
結局春学期はプログラミングへの苦手意識を払拭できないまま終わってしまいました。
さらには、夏休みを迎えてもプログラミングの課題からは逃れられることができませんでした。
夏休みに出された課題はずばり、
プログラミングで人を楽しませる作品を作ってください
というものでした。
つまり、テーマは自由で、とにかく人を楽しませるような作品を作れと言うお題です。
当時の私は思いました。
### \(^o^)/オワタ
そもそもテーマが自由な時点で何を作ればいいか分からず、だいぶ思い悩みました。
現実逃避をして数週間が過ぎ、さすがにそろそろ作品制作に取り掛からないと単位が危うくなってくると思ったので、アイデアを探すために、Google先生で「Processing 初心者 作品」などと検索しました。
ヒットしたのは、「本当にProcessingで作ったのか!?」と驚いてしまうような作品ばかり…。
すると、Processingでゲームを作る方法について書かれている、初心者向けの参考書を見つけました。
少し見てみると、本の中身には横スクロールアクションゲームやRPGゲームのプレイ画面が!
ゲーム好きの私にとって、それはとてもテンションの上がる内容でした。
そこで私は腹をくくって、その本を購入することにしました。
※実際に購入した本はこちら
そして本が家に届いてからは、その本に書かれている内容の模写と理解を徹底しました。
しかし、授業と違って自分の好きなゲームに直結する内容なので、全く苦ではありませんでした。
そこからはひたすら参考書の説明どおりにソースコードを打ち込み、徐々に自分のパソコンの画面でゲームが出来上がっていくのが身に染みて分かりました。
###オレはいまゲームを作っている!!
当時の自分はすっかりProcessingでゲームを作ることに没頭していました。
当時を転機に、私の中のプログラミングへの印象は暗いものから明るく楽しいものへ変化していきました。
好きなものを実現するためにプログラミングを学ぶ
夏休みの半分ほどはProcessingでゲームを作るのに時間を割いていました。
というのも、それは私がゲームにもともと興味があったからです。
そこで私は考えました。
「好きなものを実現するためにプログラミングを学ぶこと」がプログラミングを嫌いにならないための秘訣なのではないか…?
この記事を見て下さっている皆さんにもきっと好きなものや実現したいものがあると思います。
例えば私のようにゲームだったり、はたまたウェブサイトだったり、便利なアプリだったり…。
プログラミングが嫌いになりそうになったときは、自分が実現したいものをイメージしてみるといいと思います。
でも、きっとこう思うでしょう。
###「そんなこと言われたって作り方分からんし!」
安心してください、私もでした。
だから私は外部の情報を頼りました。
ウェブの記事でも本の内容でも構いません、とりあえずソースコードをマネしてみることをおすすめします。
自分が実現したいことに直結しなくても大丈夫です。
こうすることでまず知識量が格段に増えると思います。
そして知識量が増えると、きっと「あれはあの知識を使えば実装できるかも…?」と思える機会が増えてきます。
知識量が増えて、実装のノウハウが増えていくと、自分が実現したいものが手の届く存在になっていきます。
または、マネしたソースコードに羽をはやしてオリジナルの要素を加えることもいいかもしれません。
色々と語ってしまいましたが、ここで私が伝えたかったことをまとめると、
- 好きなものを実現するためにプログラミングを学ぶ
- そのためには外部の情報も頼る
- ソースコードをマネして知識を取り入れる
という感じになります。
終わりに
ここまで長々とお付き合いいただきありがとうございました。
私は大学1年生の夏休みに自分が好きなゲームを、プログラミングで実現することによってプログラミングに楽しさを見出しました。
プログラミングを使って、自分で何かを実現することは想像以上に可能性を含んでいます。
例えば、ひとつのゲームを作るにしてもジャンルや使う音楽、キャラクターの見た目、演出はすべて自分次第です。
私は、そんなプログラミングの奥深さと楽しさに気が付いて、今日までFMSで何とか生き残ってきました。
そして今ではUnityというゲームを作ることに特化したツールを使ってゲーム作りにトライしています。
さらには未だに、私はUnityのウェブサイトや参考書のコードをマネしていて、まさに知識量を増やしている真っ最中です。
長くなってしまったので、そろそろ終わりたいと思います。
ここでの話が皆様の役に立てば幸いです。
ありがとうございました。