only through complete understanding of a problem and its solution can you express a correct program for it, and only through constructing and testing a program can you be certain that your understanding is complete.
Cpp
my conspect of the Stroustrup C++ book. + additional C++ topics.