A compiler knows how to speak binary - NOT English!
But it knows C++, C#, VB, Java, Pascal, FORTRAN, COBOL, etc...
Algorithm in English -> Program Code -> Compiler -> Binary Code -> Computer
C#
Say "hello" ==> System.Console.WriteLine("hello"); ==> 010010010010...
C++
Say "hello" ==> cout << "hello" << endl; ==> 010010010010...
Problems:
Constructing the algorithm
Logic errors
Constructing the program
Syntax errors