You are correct about the language choice as being attainable, but only over time. I recommend going from C++ to Java, as the many simularities between them make this an easier step than many. Then Javascript (very much like Java, yet different in some key areas) for the web programming, and then assess whether you really need Python and Ruby. At this point, they will be much easier, but you may be able to do all that you need without them.
Code::Blocks is interesting - an IDE that integrates with a range of compilers. If you are happy working with it, keep going. It does have a good reputation, although I haven't tried it myself. The trick is to find what works for you. You are unique, so the preferences of others may not suit you, no matter how many bells and whistles their favorite tool has.
Now about those projects: The best way to learn a language is to try to do something with it. If that "something" interests you, it will motivate you to overcome the difficulties of not knowing how to do it. I recommend the utility programs to start with, keeping the visual elements simple (graphics in C are particularly frustrating when you are a beginner, even with the aid of the helpful librarys out there). The advantage of learning as you go over formal courses is that you remember the language that you have used, instead of memorising language that you might never need. (I used to teach in the distant past - this way really works!)
Move on to graphics as you get more confident. It's at this point you might want to look at some of the freely available libraries that take the work out of it, but don't rush to get them, the more you understand how graphic programming works, the better your understanding of how to get the best from the library.
Robotics is much more accessible and affordable now, thanks to units like the Raspberry Pi and the Arduino. Thankfully, these can be programmed from your computer, which takes some of the complexity out of it. Get into it early, then if its seems too complicated, put it in the bottom drawer for a year and try again. You will get to a point where your other programming brings you to a level where you can figure it out.
Build up your confidence by sticking to the easy stuff until it begins to be less fun, then move to the next more complex that you really want to do, so that it remains fun. If you do this, learning programming will seem easy.
Don't rule out the many free, formal courses available online. When you get stuck (we all get stuck at some time - that is often half the fun) it is useful to find the part of the course that seems to relate most closely to where your problem is. Most of the programmers I know are registered on at least one course web site, with half completed courses because they dip in to the parts that interest them. Do the same with the books that you acquire - use them as references. Doggedly working through the chapters is the quickest way to make yourself loose interest.
The next source of help is your search engine. Type in a description of your problem, and your will probably get links to where someone has had the same problem, and others have supplied the solution, or at least pointers to it. Over time you will find the sites that work best for you, in terms of complexity level, style and language. I rarely have a problem that hasn't been had by someone else before me.
When you are happy with the C/C++ and want to move on to other languages, consider the Eclipse IDE. It is highly recommended by programmers at all levels, primarily for Java/Javascript development, but it works well for several other languages. C++ to Java is an easy step.
There are many free database engines out there, and some of the big companies like Oracle sometimes offer a cut down version of theirs for free if you are not going to make money out of it. (Read the small print.) For the bits you are likely to need during the first few years, they all work pretty much the same, as far as you will be able to tell.