Hi. At the time I'm answering - Marduk is the closest to correct.
2) Programming - The act of programming is actually taking a pre-defined action that a computer can understand without additional software & entering it into a computer to be executed by the computer. Programming is working directly with the hardware in a system without any add-ons or overlays. So the sftware that's used to CODE things in a specific language are actually translation programs that run on the computer.
3) Software development - This is where it gets truly expandable, Software development means everything from deciding what You want the computer to do, through what it needs to do everything with, through integrating with the hardware it's going to run on, through detecting & fixing bugs (in both code & hardware firmware), through what the next release is going to be and any patches or fixes that are necessary.
There are a LOT of people who get most of these terms wrong, and sadly a LOT of them are actually employed in technology fields & jobs. PLEASE don't be one of those people.