No offense, it's interesting, but copying a bunch of code to files, and and running "make" does nothing to teach one what each part of the code means, and why it's where it is, as to the order in which it's presented. To be able to write the code, one must know what each symbol, or charstring, means, as well as why it is structured in the manner it is, as one must know the meaning of each word, as well as proper structure, to be able to write a meaningful sentence, then combine sentences to make paragraphs.
This teaches the use of a makefile, which is good, but doesn't explain the meaning of the contents of said file. We know it works, without knowing how, or why, it works, so to make this meaningful, the next lesson should be a dissection of the code in hello.cpp, and the makefile. It is the how, and why, that will allow one to actually write one's own code.
For those that don't know;
charstring=character string; an arrangement of single typed characters into a unit, or string, as in a group of letters arranged to form a word.