I'm a novice programmer and know C++ and Java. The problem I was having was that when I wanted to make a program I didn't know where to start. I knew nothing about software design or data structures or and thing, all I knew was the programming languages and I know that software development isn't only about writing code. So I download a lot of ebooks and right now I'm reading a book about software development as a whole. What I mean by that is the book goes through requirements, design, implementation, testing, deployment, and maintenance and explains them in detail. The next book I plan to read is about data structures and algorithms. Then I'll probably read a book about SDL or OpenGl because I plan on going into game development so I need and API with C++.So my question is, what else should I learn?