>>18872
It's a good start, but look into some basic compsci.
basic math (sets, functions, trees, graphs, and the common algorithms thereupon (nothing like you learned in school, this is actually useful and interesting)), basic complexity theory (google: big O), first order logic (not the gritty formalisms, but enough to use and understand it), searching and sorting (covered by common algorithms, but needs emphasis), and knowing about grammars and the automata that can recognise them would also be a nice bonus (google: chomsky hierarchy).
Programming is to software development what learning how to operate a telescope is to astonomy.
Important, indispensable, and enough to get some really interesting results. But ultimately a combination of luck and reliance on others telling you what to do without understanding why.
The good news is that learning to program is easy. But learn about functions first in math, otherwise it'll be a bitch.
Learning how to develop software however is fucking hard. Really fucking hard. As in the entire industry is still fucking it up on a regular basis hard.
"Of the IT projects that are initiated, from 5 to 15 percent will be abandoned before or shortly after delivery as hopelessly inadequate. Many others will arrive late and over budget or require massive reworking. Few IT projects, in other words, truly succeed. "
http://blog.codinghorror.com/the-long-dismal-history-of-software-project-failure/
You'll also need to cultivate mathematical literacy so you can understand the reference books you'll need on stuff like physics.
Long story short, you can be writing a SNES era RPG in under a year.
And I strongly recommend you do. Do NOT start there however, and certainly don't start higher.
The most important part of programming isn't in any book, although most talk about it. It's intuition. Where the languages fades into the background and problems become simply a matter of design. It'll come with experience, not with study.
At the start don't use an engine. You don't need an engine for pong, and designing one yourself will be a rich source of mistakes to learn from. Often-times it's hard to see the purpose of something until one's suffered at the hands of the problem it solves. SDL would be good library to start with, but don't touch graphics until you have programming down. Introducing graphics adds a whole lot of complexity. It you really want to write games from the very start then write text-based games like hangman, minesweeper, sokoban, and nethack.
PS: Don't worry about language. C is in fact an excellent choice because you'll be forced to actually understand what you're doing. It's very easy in higher level languages to stumble along without any idea what you're actually doing to the computer or what's happening behind the scenes. Once you're comfortable in C however look at higher level languages.
PPS: Studying can be dry, so here's some juicy bits for you, though you'll need some math for most: fast-growing hierarchy, googology wiki, undecidability, halting problem (and the proof it's undecidable), conways surreal numbers, the long line in geometry, recursive but not simple-recursive functions (ackerman), omega (the ordinal), omega+1 (the ordinal), quines, godels incompleteness theorems (see godel, escher, bach), LISP (the land of lisp is fun), peano arithmetic, banach-tarski 'paradox', russels paradox
And I strongly recommend "Godel, Escher, Bach" by hofstader, it's a whirlwind intro to compsci that's incredibly entertaining.
The last piece of advice I'll give in this post is the most important. ==You must enjoy the learning process.==
You mustn't write the simpler games because you were told it would help, but because you find it fun to do so.
The amount of willpower it takes to do so much for one goal is inhuman. But if you enjoy it then it will be effortless, and one day you'll wake up and realise that you're capable of what you used to dream about. Take your eyes off the goal, and enjoy doing what's just outside of your present ability. It may be a winding path, but it's mostly downhill.