As a programmer, I often hear "writing a program" and "writing code" used interchangeably. The way I understand it, a program is a file which contains code written to perform a task or a series of tasks. Those who write computer programs (like myself) are typically referred to as programmers. However, the slogan of the popular website CodeProject is "For those who code," not "For those who program." Is there any difference in meaning between "I code for a living" and "I program for a living"?

  • 1
    They're interchangeable for most purposes. – milestyle Apr 24 '14 at 15:16
  • @milestyle: For what purposes are they not interchangeable? – Alex A. Apr 24 '14 at 16:34
  • Slightly off-topic, but I want to comment that the word program is broader than file. I think the word program encompasses any piece of software, not just the particular file or files it is written in. I would refer to Firefox or Outlook as a program, even though they are probably written over many many files. The files are irrelevant here as I cannot even access the source code / files for closed-source programs. – sgauria Apr 24 '14 at 18:15
  • In stead of being used interchangeably, you could be just hearing the use of synecdoche, where a part is used to represent the whole. Just as "Give me a hand" never means that your hand and your entire body are considered identical. – Oldcat Apr 24 '14 at 19:00
  • 1
    I'm unsure why there seems so much downvoting of these reasonable answers. – Oldcat Apr 24 '14 at 19:03

Though some raise a distinction, there isn't a generally accepted difference between the two.

However, non-technical people may be more likely to understand what you mean if you call yourself a "programmer" rather than a "coder". The word "computer program" and "programmer" have very wide comprehension, whereas the term "code" - as a synonym for a computer program - has a narrower reach and is more easily confused with other meanings. Even worse: "hacker".

  • Thanks for your answer! Could you please elaborate on narrower reach of "code" versus that of "program"? – Alex A. Apr 24 '14 at 15:34
  • 1
    You can compare the words here. The gap has narrowed, but both seem to be in decline. – ᴇʟᴇvᴀтᴇ Apr 24 '14 at 15:37
  • So by "reach" you mean the size of the audience that understands or prefers one verb over the other? – Alex A. Apr 24 '14 at 15:46
  • Yes. Your great Aunt Edna will likely understand if you tell her you're a programmer, but may be confused if you call yourself a coder. – ᴇʟᴇvᴀтᴇ Apr 24 '14 at 15:55
  • Hacker, when referring to a programmer and not a person who breaks into computer networks, has a distinct meaning. Roughly, it means a programmer who takes unwise shortcuts. – Henry74 Jul 19 '14 at 0:17

Programming encompasses coding, but coding does not encompass programming.

Programming is a blanket term for a set of activities, of which coding is one. See this explanation from WiseGeek:

"Generally, there are five basic stages of development that a computer programmer addresses in designing software. They are defining the need, designing a flowchart, coding the software, debugging and beta testing."

I would say rather that programming requires analysis, design, communication, coding, testing, and release management. A programmer not competent in at least a couple of these disciplines risks being a mere coder.

  • I think you've missed the point that Gary's Student and I have made; but in fairness, since you're taking the motto of the CodeProject website to be definitive, I'll put it another way: CodeProject's use of the sloagn "For those who code" has everything to do with the name of their site, and very little to do with a formal definition of programming. That is, it's a nice bit of marketing copy. As Gary's Student has also pointed out, coding is one phase of a process employed by programmers, and this is the real difference between "I code for a living" and "I program for a living." – William James Apr 24 '14 at 16:25
  • The WiseGeek quote refers to the "five basic stages of development", not programming. You've made the leap to development*=*programming. As an experienced developer/coder/programmer, I strongly disagree with this statement, as do the handful of colleagues I just polled around the office. In the WiseGeek quote, you can replace coding the software with writing the software or programming the software and the meaning would be the same. – Henry74 Jul 19 '14 at 0:39

Here's how the New Hacker's Dictionary defines

program n.

  1. A magic spell cast over a computer allowing it to turn one's input into error messages.

  2. An exercise in experimental epistemology.

  3. A form of art, ostensibly intended for the instruction of computers, which is nevertheless almost inevitably a failure if other programmers can't understand it.


code n.

The stuff that software writers write, either in source form or after translation by a compiler or assembler. Often used in opposition to "data", which is the stuff that code operates on. This is a mass noun, as in "How much code does it take to do a bubble sort?", or "The code is loaded at the high end of RAM." Anyone referring to software as "the software codes" is probably a newbie or a suit.

A program is something high-level, whereas code* refers to translation (e.g., English words → Morse code; C language → assembly or machine code); as the OED puts it, code is

Any system of symbols and rules for expressing information or instructions in a form usable by a computer or other machine for processing or transmitting information.

*from the Latin codex, meaning a tree trunk, book, or enumerated collection of things (e.g., legal canons)

A coder needn't be a programmer just like a telegraph operator needn't be a literary author. But programmers (those who make programs) do need to be coders (those who make code), just like literary authors need to encode their writings somehow (in the form of handwriting, typewriting, etc.).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.