Programming involves giving commands (input) to a processing unit which analyzes, converts to binary, and processes the commands. The processing unit then converts the results back and provides output. Compilers are specifically required for programming in languages like C/C++ and Java. General C coding knowledge includes including standard libraries, defining a main function that returns 0, and using functions like printf. C supports various data types that require different byte sizes of memory like integers (4 bytes), floats (4 bytes), and characters (1 byte). C also includes control structures like for, while, and do-while loops as well as functions and pointers.