C++ is simultaneously the best and worst language to learn, IMO.. It's the best because it forces you to learn not just how to program, but how to manage the memory that your application is using. It is literally as flexible as you want it to be; you can define your own data types, define your own classes, and get into seriously advanced computer science concepts: polymorphism if you want, lambdas if you want, all manners of pointers/references, etc... Or you can use none of those features, and still probably write some sophisticated software. In C++, the world is your oyster..
And that's also what makes it terrible to learn, especially as a beginner. Learning C++ (especially if it is your first programming language) is very much a sink-or-swim endeavor. More often than not, it's sink first, inhale some water, and nearly drown... and then swim. So I echo what others have said before me: don't get discouraged.
You also have to contend with years of C++ standards changing underneath your feet. The code style in 2017 is very differnet than it was in 2007 (or even 2013), which in turn was very different than it was in 1997, and so on.. Yet, the language has to remain backwards-compatible; so you might read some blogs that have old-style code that doesn't look like other blogs or articles you read, and yet it works. And that sucks, but you just have to keep trucking along. Study code and learn what's what, and practice writing code (practice writing lots of code).
Also, remember that game development is VERY, VERY DIFFERENT than other types of software development. Of course, it incorporates known computer science/programming principles. But it also follows some design principles that other types of applications do not, and you'll want to be aware of that. Check out this book as a reference: http://gameprogrammingpatterns.com/contents.html
And lastly, as others have said: Just write a thing and finish it. Don't worry about how "perfect" it is. Don't do any Big O analysis or optimization. Just focus on finishing the program. And then, see if you can get more experienced developers to review your code. You'll discover that the code you write the first time around sucks hard. You'll also discover new "unknown unknowns" -- things you were unaware that you didn't know. But all of it will be good; you'll learn better ways to design code as you iterate.