... to become "good" and "confident" to create games from scratch (engine, etc.)
Game development and engine development are completely separate disciplines, at least in this day and age.
If you're interested in making games then I would suggest you try out some of the different off-the-shelf frameworks and engines out there (Unity/2D toolkit, XNA, Torque2D, etc.). These take care of a lot of "boiler-plate" stuff for you, and allow you to focus on actual "game programming" (i.e. focusing on "what" happens, instead of "how" it happens)
It can be a good learning exercise to try to do everything by yourself, and this will definitely give you a solid foundation, but ultimately if you're doing anything bigger than pong/snake/etc. then there are huge benefits to using an OTS engine or framework.
I would suggest XNA + C# would be a good combination, as you'd still be working with a C-like language.