There isn't a difference. They're two different words that mean the same thing. They can be used interchangeably in most contexts.
Like, sure, playing weird synthesizers is 'MIDI Programming' and you can't really swap it out for 'MIDI Coding' and you wouldn't call TV shows 'TV Coding' but in the context of work with software, yeah, they mean the same thing.
This happens all the time:
Are you a 'developer,' a 'programmer,' or a 'software engineer?' It's an identical job at three different companies.
I've yet to meet someone who can nail down the actual difference between UI and UX
- Which jobs are 'Ops' and which jobs are 'IT'? I feel like I've never worked in IT since I don't know how to set up a phone system, but I have worked at a company where the whole software team had
department: ITprinted on their paychecks
how does this happen?
I'm not a linguist so I can't tell you why this happens in general. I will note this is not a specific issue to tech: words and terms that have the same meaning are so common they wrote a book about it. What I can say is that part of the reason specific to text is marketing. It's just so tempting to try and label your product (which is kinda sorta similar to other stuff) as something so new and exciting it deserves a whole new word.
User Interface? nah dog, we got a whole User Experience. We're like if a web page could also go paragliding with you on the beach.
Usually this doubling of terminology is kinda hard to spot: coders all have different jobs on different stacks so it seems like language differences must point to meaningful distinctions. Some programmers know how every version of a mobile browser renders the
<em> tag, some know about limitations of a Unix file system. If you give those two people different labels, it sort of seems to make sense.
If you're unsure if this is right, try doing a find-replace of your terms and see if it reads right. If two words can be used interchangeably in the same context, guess what you've discovered a new synonym.
Top comments (8)
Interestingly, law often makes a distinction where laypersons see synonyms.
In Germany, a software developer and software engineer can be considered (among laypersons) synonymous, while as per law the former is a title everyone can use freely, the latter can only be used by those with the proper (academic) degree.
Very true! In fact in my home state of Oregon a board of civil engineers tried to prosecute someone for saying 'I am an engineer' in an email!
I've never heard of anyone getting in trouble in the US for calling themselves a 'software engineer' but I'd be interested to see it happen!
This has only come up for me when trying to get a mortgage and, during the extensive autopsy of my finances, my constantly shifting titles became a problem. If I'd gone from 'developer' to 'engineer' to 'programmer' I had clearly changed professions thrice in five years like some wandering vagabond 🤣
It's sad that people try to do so. While I understand the need for certifications and professionalism, I believe a title is not the proper way to achieve this.
In my experience, titles are usually used as gatekeepers. And that is sad. Because titles often say more about people's privileges and less about their competence and skills.
When my friends ask, I'm a coder; when my parents ask, I'm a programmer; and when the in-laws ask, I'm Software Engineer.
The idea that UI and UX are in any way separate is nonsensical. If you aren't designing UIs around user experience, then you aren't designing UIs at all, you're just playing with your widgets.
I don't know if this was rhetorical, but the difference between UI and UX:
UI is what you see, UX is how you use it.
i.e. UI is the physical appearance of your login screen. UX is at what point in software use you decide to show it. UX is also "How do we pace out the steps of the login flow, which items should go on which form", vs UI which is "How do we lay out the items on the screen in a visually cohesive way."
UI is about appearance, UX is about user actions and deciding when to present information to the user.
There certainly is overlap - bad UI can lead to a bad UX, and good UI makes for better UX overall - but I wouldn't say that "We should show the user the login button after they click purchase" is a UI decision. It's a UX decision. What to make the button look like, implementing the timing / look of the login modal or redirect is UI. But the flow itself is UX.
I hope this was helpful.
Synonyms often hide subtle differences.
Like your MIDI synthesizer example shows, coding is not the same as programming: some machines can be programmed without using code (e.g. an alarm clock), but code is usually meant to program (though you could argue it might be used for other things, maybe).
Another off your examples: observability is actually not the same as monitoring. You can monitor without doing observability (and you'll often end up regretting it the day something you haven't foreseen breaks) or collect metrics without monitoring anything (if you haven't seen any dashboards or alerts based on them)...
When I find two words that seems interchangeable, I usually think: "hey, it seems I don't know enough about this subject yet to tell the difference. Great opportunity to learn!" 😁
Coding is the part where you type out the files that will be compiled into a program. Programming is the process of designing, constructing, and debugging a useful program or system. A programmer can do her job 100% with pen and paper (perhaps the way Dijkstra had done on occasion) and then hand the pages with the finished program to a 'coder' to have it typed in to a computer, compiled, and assembled into an executable file. It's a bit like how writing a novel is the process of editing, while the physical act of writing that produces the garbage first draft that requires the editing is just a tiny part of actually producing a work of literature.
The distinction is tremendous. In the actual industry, where programming is done in meetings and on whiteboards, programmers fix what coders write. The existence of synonyms doesn't mean that many words have duplicate meanings, but rather exactly the opposite: that similar words are necessary to refer to concepts that may be similar but are certainly not equal. You can see this in how geneticists refer to 'coding' being done by proteins in working with RNA, and how mathematicians refer to 'dynamic programming' in algorithms that break down a complex process recursively. (Remember, in your Algorithms course, wondering why it was called that?)
"Computer science is no more about computers than astronomy is about telescopes." You'll never be much of a programmer if you don't learn to look for and understand subtle details, like the difference between synonyms like "coding" and "programming".
Yeah they pretty much do. What's in a name/job title, right?
Personally, I would not want to be called a coder. To me, the term coder describes a hobbyist rather than a person that codes software solutions and the like for a living. Yeah, coders code too. The purpose (at least in my eyes), is different from that of a software engineer or developer.
But frankly said; screw job titles. They only mean much when it comes to salaries 😂 Or so I believe.
Some comments have been hidden by the post's author - find out more