Just today I got this cute email from a 13-year old:
Dear Mr. Romero,
I'm a thirteen-year-old boy who absolutely loves the games that you've made throughout the years, so much that I really want to start programming, however, I don't know where to start.
BASIC seems too small a language to aid me in what I want to do, create the games graphical engine, but C# and C++ seem a little robust for a beginner. What do you think?
I really want to program, and I know that I do want to learn C# and C++, it's just that I'm not sure if they're the best languages for me to start in. I'd sort of like to learn BASIC, but I really can't find any good tutorials online, do you have any that I could possibly use?
Anyways, I hope that you take time out of your busy schedule to reply, but I won't be absolutely crushed if you don't. Thanks.
This was an absolutely great, well-written email with an excellent question. My answer is pretty much the same every time: if you want to learn how to code, you should be learning C. You can learn C++ later but I still believe it's best to go the C/C++ route rather than Visual Basic or some scripting language.
My personal favorite environment is the Visual Studio C++ Standard or Professional Edition. The Standard Edition is around $280 online and has everything you'll need for quite a while if you're a beginner.
visual c++ expressIf you're on a budget, like, a no-money kind of budget, then you should download, for free, the Visual C++ Express Edition product by Microsoft. There's even a nice book for complete beginners on Amazon.com that will help a lot.
This dev environment can get you through PC game development, handheld development (PocketPC anyone?) and with enough tweaking you can get it to work with external compilers for special hardware.