Think of little projects to create. They can be simple things such as a project to containing multiple classes, where some contain others. They can maintain collections. A container object could walk through all of the objects it contains and have them do something, e.g., like dump their attributes out to a file that is provided by the container.Now that I write that it is not so simple, so start small with it.Write a program with 2 classes, one that will hold the other. Based on input have the first class (container) create that number of the second class objects (child).Have both classes do something special at initialization (perhaps set attributes).Have the container class delete all the objects it has.Once you have that, then try the iteration through all the contained objects. Then extend that to saving information to files.Once you have that then add serialization to the classes. Serialization is the ability to save the current object state to a file.Once you can serialize out, then serialize back in. Learn how to recreate the objects you saved based on the data in the serial file.These are a number of challenging things to try and will cover a lot.WHen I was learning I would think of something I would like to have automated and code that up. For example, I had several archives of stuff. Some of disk, some on floppy and some on tape (which would be replaced by CD). So, I created an application that would keep a list of what I had. Created the base system that worked with floppy. I then extended it (using inheritence) to support other media.They don't have to be practical or complex. Although the more you experiment the more you may thing of things.I've added references to 2 really good books on effective C++ development. These are great jewels to have in your collection.Also, this site http://www.cplusplus.com/doc/tutorial/ is a really good tutorial site which may help you along.