If you are maths oriented then Project Euler. If you are more games oriented then simple text based games and slowly progress. Other wise here is a list:
Fully Useable Linked List, and Que that Inherits from it.
Some sort of db, maybe add ur own SQL like language (if you're up to it)
A web server (requires A LOT of technical reading)
A bignum class
Model a CPU
I wouldn't bother making text-based games unless you genuinely want to. Don't do it because you think it's easier: often, it won't be. No, you don't have to deal with rendering sprites or keyboard-and-mouse input, but that stuff is easier than text processing, unless you want to have hard-coded options for every situation (which will make the game boring to play and tedious to write, and requires the player to type everything exactly as you expect them to (unless you strip punctuation (easy), make everything lower-case (easy), check for synonyms (not so easy) and equivalent sentence structure (hard!))). Finally, the kind of thing you learn for text-based games won't really transfer to graphical games, so like I said, unless you actually want to make text-based games, don't bother.
If you want to learn to make games, the best way is to make some games. Where to start depends what genre of game you're into. Get a library for loading and rendering 2D sprites (I recommend SFML; it can do 3D as well (via OpenGL), but you should start with 2D graphics, as 3D is pretty complicated) and learn to use it. Then, start making something. Aim high, but be realistic - 3D FPS and MMORPG games are going to be out of your grasp, especially if you're on your own. A lot of people start with Pong, Space Invaders, etc. clones. That's probably the best way to start. You could also make clones of side-scrollers like Sonic the Hedgehog or top-down games like Pokemon and Zelda. Or you could make something totally new. Games like Pong and Space Invaders are probably easy because they don't have many different graphics and they have a static camera, so you don't have to worry about loading regions of a map. If you want to have a moving camera, the easiest perspectives are probably side-scrolling and top-down.