1) program is written in high level language, such as C. File(s) of the program are the 'source code'.
Yes but you could also have header and or makefiles to help compilation
2) program is then 'compiled' to turn it into low-level code that is both hardware - ie Intel/AMD/ARM processor specific, and also Linux distribution specific. This resulting files are called the binaries.
Depending on the options you pass to compiler, but generally yes you end up with an executable
What do you mean by the following:
also Linux distribution specific
If I compile a program on Ubuntu or Gentoo the resulting executable will be the same (as far as I am aware)
3) i can go from source code to installed and usable program by doing these steps:
Yes these basic steps will produce an executable but other supplementary steps may be required / suggested,
ie. you may have to patch some files to get it to work how you wish or for your architecture, etc