I am getting to the point with C++ where I can write some usable code and read most code without to much trouble, and I feel like I am ready for the next step, but I'm not sure what that next step should be. My career goal is to work in the video game industry, ideally as an independent designer or member of a small independent team. I need to know what I should focus on learning to make myself as valuable as possible in that field. I had two ideas for things I might look into next. The first idea is to start working with open-source game engines learning the basics of the design side of things. My other idea is to learn to make my own simple 2D engine with something like SDL.
Which approach do you think would be most beneficial for me, or is there something else I should be learning? Advice from someone with experience in the video game industry would be greatly appreciated.
I meant what should I learn next about programming, but I will definitely try to learn some management skills. I don't just want to be an "idea guy" or someone who just bosses people around, I want to actually contribute directly.
IMHO you should look into developing something with an already available and established open source engine. Then, once you have some experience with a tool like that you can try your hand at home brewing one. I went the other way and tried to start out by building my own engine from the ground up with out any idea about what makes a good one. Needless to say I haven't accomplished much in that regard.
There is not a simple answer to that question. Basically it covers all the steps of software design from assessing the requirements to maintaining the software. This is one company's specific description: http://www.pmi.org/About-Us/About-Us-What-is-Project-Management.aspx