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"?
-
1They'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
-
1I'm unsure why there seems so much downvoting of these reasonable answers. – Oldcat Apr 24 '14 at 19:03
-
Using coding or coder signals to other experts that you are a real programmer not some gimp who's read Teach Yourself Java in 24 hours. – Apr 25 '14 at 22:45
-
It might be nice to either expand this question or add a separate question about programming vs developing software. – Henry74 Jul 19 '14 at 00:21
-
I think it's just fashion. For some people (not me but I'm ancient and distinctly uncool) the word "programmer" sounds like someone who trained in FORTRAN or COBOL and worked to the design of a systems analyst whereas a "coder" is young, cool and dynamic, works in a web-based environment, does their own analysis and design and wouldn't know a mainframe if they fell over one. It's a bit like calling cordwainers shoemakers:-) – BoldBen Jan 26 '19 at 13:26
-
Programming starts with meetings. Coding starts after the meetings. – Hot Licks Jan 26 '19 at 22:43
3 Answers
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".
- 1,715
-
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
-
1You 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 00:17
-
This is a decent answer, though I believe coding is actually gaining ground in modern, popular usage. It's shorter and catchier than programming, and I actually find that it has less competition from other common meanings right now (mid-2014). Folks keep asking me (because I'm a programmer) whether they should get their kids to learn to code. No one asks me if their kids should learn to program. Programming feels a little old-fashioned these days, to be honest. – John Y Jul 19 '14 at 00:55
-
@Henry74: Hacker has a distinct meaning to whom? Have you read this or this? I disagree with the simplistic "unwise shortcuts" characterization. You said roughly, but I contend that's too rough. You have to also include the brilliance angle. – John Y Jul 19 '14 at 01:05
-
@JohnY, at work, I frequently say, "this is such a hack" and I mean exactly what I said above, I took an unwise, short-sighted shortcut because I was in a hurry and I couldn't think of anything better. I agree that there is another definition of hacker that has the creativity/thinking outside the box implication, but I think this is a separate definition. The first link in your comment even refers to these as separate senses (2nd paragraph). And in any event, my main point is that it is not a straight substitution for coder or programmer. – Henry74 Jul 19 '14 at 01:20
-
@Henry74: The first link in my comment is, I think, the better one by far. What it is trying to say is not so much that hack has multiple meanings (which it does, strictly speaking), but that hacking encompasses all of them, and that a hacker is just as likely to make a quick-and-dirty hack as a brilliant, ingenious hack... and that sometimes those are one and the same hack. – John Y Jul 19 '14 at 01:43
-
Thanks, @JohnY. That was an interesting article and I see what you mean about my definition not encompassing what hacker means. However, this is all the more to the point that hacker has a distinct meaning from programmer or coder. You can be a programmer and still not be a hacker. Anyway, I see that there are several other hacker threads on this forum. Thanks for the interesting discussion. – Henry74 Jul 19 '14 at 06:20
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 00:39
Here's how the New Hacker's Dictionary defines
program n.
A magic spell cast over a computer allowing it to turn one's input into error messages.
An exercise in experimental epistemology.
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.
and
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.).