A lot of it depends on what level of programming experience you have. In the following text I'm guessing that you're a beginner with little to no programming experience. I don't know much about your background but I think you're about 15 years old and you probably don't have much income. So I think free or inexpensive and easy to learn tools are your best bets right now.
Flash is great because it's well documented and there are many good books on the subject, so that's a plus. The bad thing about Flash is that it's expensive. It's $700 expensive. Also, it wasn't really designed to build games. It was designed for interactive advertisements and animations. Of course, you'll probably still be able to get simple games running in Flash fairly quickly, and it's always rewarding to be able to see results fast.
On the other hand, there are tools like Game Maker
that aren't very powerful (don't expect to make Halo), aren't very expensive (I can't see the price until I create an account and login? What the Smurf is that about?), but will gently introduce you to programming concepts with an overly simplified scripting language. And once you get better at understanding how drag and drop stuff gets things moving, you can enable advanced mode to actually use code.
You could also get a "real" game engine, something that was actually designed to produce games, for less than the cost of Flash. For example, Torque Game Builder
, a 2D engine, is $100. The biggest problem with TGB is that the documentation isn't that great (but it's improving) so it would be very helpful if you were already familiar with basic programming structure and you should definitely be prepared to read the forums a lot
to find answers to questions. The good thing is that the community is pretty helpful on the forums most of the time.
There are also free/open source game engines out there. But again, depending on your skill level you may have some difficulty figuring out how they work. I started a thread here nearly two years ago titled Game Engines and Apps
in which we rounded up a number of game engines. You should check out that thread for some reviews of some other engines.
My advice then, as far as programming goes, would be to get started programming in some
language, even if it's not related to games, such as PHP, to familiarize yourself with programming structure, variables, loops, conditional statements, arrays, functions, etc. That way if you go to another programming language, you'll at least be able to adjust what you know to how this other language does it, and that in itself will be a good head start.
My advice for education would be to take all the math classes you can! And keep your notes and your books! Getting a degree in video games (Real-Time Interactive Simulation?) or Computer Science involves some of the higher levels of math. Make sure you like math and that you have a good understanding of it.