Vamos a ver programar es indicarle los pasos a un ordenador para hacer algo. Sin embargo como para hacer los pasos directamente para que los entienda el ordenador es muy tedioso, se crearon los lenguajes de programación. Compilar es TRADUCIR un lenguaje de alto nivel, a uno que entienda el ordenador. Así en vez de hacer en un lenguaje de bajo nivel esto(es para calcular el largo de una cadena):
strlena:
pop edx
pop ecx
xor eax, eax
bucle:
inc eax
cmp byte ptr [ecx+eax],0
jne bucle
jmp edx
El anterior código es el lenguaje ASM , que es el lenguaje anterior al código máquina(el que entiende el ordenador) que son ceros y unos.En C++ sería así (facilitando al programador las cosas):
std::string str ("Test string");
int largo = str.length();
Compilar es convertir el código anterior a:
010101010101010101110110110101110101010101010101101010101010111110101101010101010101010...
Es solo un ejemplo no es real.
Para comenzar a programar tienes que aprender el lenguaje de programación, luego escribir algo con ese lenguaje en archivo, y después compilarlo(traducirlo a ceros y unos para que lo entienda el ordenador). Y ahí tendrías tu programa.
Entiende que esto está explicado a muy grosso modo aunque es lo que hay que hacer.Hacer códigos complejos de manera simple es imposible, para que me vayas entendiendo es muy difícil que hagas un juego como Call of Duty solo, o un sistema operativo.