本屋さんにもプログラミング関係の本がたくさん並んでいますが、中のサンプルプログラムで分類すると、多くは「実用的ソフト」か「ゲームソフト」に分けることができます。
ここで言う実用的ソフトとは、業務系ソフトやネットショップなど、すぐ実際の業務に役立ちそうなソフトということにしましよう。
では初心者が最初に学ぶ教材としては、何がよいのでしょうか?
最初にプログラミング言語を学ぶ目的がはっきりしている場合は、作りたいものに合った本を選べばよいだけなので、迷うことはないと思います。
業務に使いたいなら実用的ソフトの本を、ゲームソフトを作ることが目的なら、ゲームソフトの本が一番です。
でも目的が明確でない場合は、実用的ソフトから始めることをおすすめします。実用的ソフトはすぐに仕事に役立つことが多く、意外と難しい計算が少ないからです。
実用的ソフトでもゲームソフトでも、同じプログラミング言語なら基本的な文法は同じです。よく利用されるクラスが異なるくらいです。
以下にJava言語を例に、それぞれの特徴をまとめてみます。
【実用的ソフト】
・業務系ソフトは四則算(足し算、引き算、掛け算、割り算)くらいで、ほとんどの処理ができます。
・業務系ソフトやネットショップはデータベースを使うことが多いので、インスタンスは1つで済む場合が多いです。
*もちろん実用的ソフトでも複数のインスタンスを生成することがあります。例えば複数の学生に対する複数のテストのような関係の場合です。
*インスタンスとは、オブジェクト指向プログラミングで、クラスを基にした実体のこと。
【ゲームソフト】
・ゲームソフトは遊べるので、作っていて楽しい。
・キャラクタを動かすのに、座標や三角関数の知識が必要になります。
・弾や敵キャラを出現させる時に、複数のインスタンスを生成する必要があります。
ゲームソフトのほうがオブジェクト指向の便利さを実感しやすい、というメリットがあります。敵キャラや弾を複数表示して、それぞれ異なった動きをさせたい時には、オブジェクト指向が便利です。
ゲームソフトを作るには様々なノウハウが必要です。業務系ソフトではあまり使わない画像処理系のクラスを使ったり、画像や音楽ファイルも必要です。また抽象クラスやインターフェイスをバンバン使うので、プログラミングのレベルが向上します。
もしプログラミングの目的がはっきりしていない場合は、まず実用的ソフトを学んで、すぐ業務に活かしつつ、次にゲームソフトを学び、ゲーム作りの経験を実用的ソフトに取り入れると効果的です。