"Context defines meaning.
As mentioned already:
1. In general usage: the word coding means the entering or the putting of information into a system, almost always synonomous with either ciphering (like into a code, or the older word for reading and writing) - remember that decoding is the same as to decipher meaning from a less natural form, or entering information (just like typing / data entry). The word program (noun) means either a chronology of what is to occur (like a play's program or a print out of a computer program), or (verb) the act of issuing instructions that MUST be carried out (such as programming your VCR, or programming a brainwashed assasin to kill a target).
2. In the computer world in normal usage, they are perfect synonyms.
3. In the computer world some groups in some context choose to distinguish the words differently. Some consider coding to have connotations that imply a lighter, less planned nature, more like a hobbiest would do - as directly opposed to the types of programming your would be doing if you we're doing software engineering. In this context, the word programming would cover both of these acts and everything in between.
4. In another usage, people use the word coding in a derogatory manner, as in "he's just a simple coder" (implying they cannot design their own systems, but are more of a junior programmer).
Every group has their subgroups who use their own slang."
Source:
http://www.gamedev.net/topic/392174-diff...nd-coding/