realmzmaster wrote:Definitely the best way to start is small.
Seconded!
realmzmaster wrote:Yes , I know many game designers and programmers will say learn C++, because that's the "gaming language".
Speaking as a C/C++ programmer, I would strongly discourage anybody from learning a C-based language as their first foray into software design, whether it's for gaming or any other application. To put this into context, C was the first language I learned from the age of 12 (well, aside from a scattering of BASIC before that), and I know how many headaches it caused me. Luckily I studied Computer Science at university, so I managed to unlearn the awful habits I'd picked up without too much pain.
In pure C, pointers and memory allocation issues make it easy enough to shoot yourself in the foot. When you add in C++'s multiple inheritance, templating and operator overloading, it even hands you the shotgun, points it downward and says "hey, do you want me to pull the trigger for you?"
This is not to say that C++ is a terrible language by any means! It makes it possible to write efficient code that runs damn fast. But it's a lot easier to learn to build flat-pack furniture as a first step to DIY, rather than just turning up to a forest with a saw and trying to assemble a chest of drawers.
Wow, I truly do have a talent for terrible analogies, don't I? Sometimes I even impress myself.
If you want a clean language to learn the basics of coding, I'd personally recommend Python - it's a very clean language, which handles some of the trickier low-level stuff for you. You're not going to write the next episode of
Half Life in it, but the
pygame libraries look like they offer some potential for basic games. Not that I've used those libraries myself, but I've written a fair bit of Python code.
Many of the principles of writing software are similar across most "normal" languages (Prolog notwithstanding), and you're usually better off learning a higher-level language that takes care of some of the complexity for you so you can pick up the underlying concepts. Even if you need to progress to something like C++ later, you'll certainly benefit from the firm grounding you'll have gained.
As an aside, if you've got any C++ or Python questions, feel free to drop me a message or something - I can't promise I'll have time to help out, but I like a challenge!
