The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.
When I started work, in 1972, the other two terms did not exist. I was a "computer programmer".
That is what I put on my tax return and on the reentry card each time I returned from an overseas trip, and anywhere else that asked. So that is what I continued to call myself until finally, 2 years ago, I switched to "Retired."
Other people over the years have referred to me as, and I have answered to "Software Developer", "Software Engineer" etc but never "Coder".
A "coder" is a semi-derogatory term for someone who can translate pseudocode (or something similar) into a programming language, more or less mechanically, without being concerned about its use or place in a larger picture. A junior programmer who either have no aspirations, or is not trusted to make any decisions about the code structure. He is the runner boy on the software development site.
A "programmer" translates somewhat abstracted designs into a programming language. He makes significant decisions about how to realize the design, but the design is done by others. He is the skilled carpenter on the building site.
A "software engineer" is like a construction engineer: He decides on the structures and interconnections. In a small company, he may be present on the building site, even handling the hammer (/compiler), but in a larger company he leaves the menial tasks to the coder.
A "desginer" is an architect. Some architects decides on the structures and interconnections, like a software engineer, but he might as well be elevated above the physiscal construction - whether the design is realized in wood or concrete (/c++ or Python) and other real world details.
A "software architect" hardly knows what a compiler is, but knows how to structure the customer's problem into subtasks that can be left to a desginer for the details. He knows what the end product should look like to the customer, whether realized as a web interface or with WPF.
There are certainly no clear cuts, but great overlap. "Developer" is a diffuse term somewhere around software engineer, but it may cover a lot of the programmer's tasks, or the desgner's task.
The borderlines may depend a lot on the context. In open source environments, the recognition of designer and sorfware architect skills is essentially limited to the needs of a software development context; they rarely consider it necessary to ask a professional programmer what he wants in a photo editor, a musician what he wants in a music editor. On the other hand you've got the huge companies like MS, and IBM in the old days, whose architects could care less about NTFS versus ext4 (except for the marketing aspects).
I find it very useful to relate the roles in software development to similar roles in mechanical construction, like architect, engineer, carpenter, runner boy. Not everybody agrees with me, but use the terms in more arbitrary ways. So we may disagree at times.
As someone working solo on a big project "developer" seems to fit better than just "programmer". In addition to programming I do UI/UX design, feature planning, testing, artwork, and even handle support email.
As to "programmer" vs "coder", I can think of a couple of possible explanations. Some programmers are anal about efficiency. Clearly, "coder" is much more efficient than "programmer". Alternatively, given some of the "coders" I've known, it could just be that it's not as tricky to spell as "programmer".
I see this as very simple. Coders do what they are told to do. Developers ask why things need to be done so they can solve the actual problem. Just about anyone can be taught to write code but understanding what the business whats to do and how they do it can mean a completely different solution is produced. e.g. a coder can be asked to produce a report and they build it. A developer should as if they can make it generic and have inputs such as a client Id so it can be reused. without building the same report 10 times for 10 different clients. (I see this sort of thing a lot).
Suspend To Disk
Synchronous Time Division
Save the Date (did not know this one)
State Transition Diagram
Subtropical depression (meteorological, not psychological )
Synthetic Training Device (love this one, sounds dirty)
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.