Reading this reminds me off myself 3 years ago, so I think I can give some advice back for what I learned and how I did it the last 3 years
After I knew I want to use C++ and SFML (tackled SDL a bit also) I looked for articles on how "to start learning" game development. I found
this article on how to start. It clearly tells you, you start by just doing it, with easy starting projects and advance from there.
So I started learning some SFML via the examples provided by SFML itself. After that I started Pong as my first project. I got it working after 20 to 25 hours of coding I think. No menus, no sound, no music, just the pure game. From there I wanted to fine tune the game, add menus, sounds and so on. I found
this tutorial which explains how to build Pong with SFML and all these cool features. Careful, no C++11 used, the code quality can be updated to be a lot better, but it gives you an idea on how and why to do things.
From there on I rewrote my first Pong version six times now, and I'm still not completely satisfied with the result
Which leads to the second learning aspect: After you finish something, revisite the code and refactor it, get rid off owning raw pointers, decouple the game objects and so on...
Early 2014 I bought the book
SFML Game Development and started working on it. The concepts in there proved very valuable to me, especially the state stack and the context patterns used. From there I read the already mentioned online book
Game Programming Patterns which is an awesome read, after you grasped the code of
SFML Game Development. After that I bought a (german only) book dedicated on learning C++11 to get all those new cool C++ features which were tackled in the SFML Book.
After that everything in the code base made so much more sense to me and with having the proper knowledge and tools on how to program, I started making a Breakout clone. Not finished yet but hopefully in a few weeks. Which leads me to my last point: finish what you started. Take a small scope project and finish it, make it work. This gives you the satisfaction that you achieved it, which in turn motivates you to go on with the next project, which should add some new feature you never programmed before.
So short answer: Take it easy, start small, advance in little steps. Revisite what you did and make it better. Strife to be a better programmer.
Hope that helps you, as it helped me a lot.
Cheers and all success!
Edit: Oh and I completely forgot one of the most important things, something I had to learn the hard way: Get your math right. 2D vector math is your bread and butter, even for such a "simple" game like Pong. Some focus points: unit vector, length of a vector, carthesian and polar coordinates, radians and degrees