Software development ("programming" in your taxonomy) is a solitary activity. Software engineering involves multiple people and the explosion of complexity involved.
I do like your point about knowing when not to program. Will keep that in mind next time I think about this.
A lot of my software engineering mantras are centered around empathy management, both of internal consumers (future you, your colleagues, etc) and 100% unquestionably for external consumers (heh, "future you in 6 months" and folks that are forced to use your software, people who you want to renew). The world sucks bad enough already: don't swallow error messages and voluntarily tell your users the equivalent of "have you tried turning it off and on again?"
The taxonomy is missing "designing," "architecting," "crafting," and more things people like to say they do. To feel important. More important than someone(s) else.
And I often call myself a "professional typist" because the whole taxonomy is pompous BS.
I get paid to solve business problems.
That's far more pretentious than any of the things you listed.
If you're a good programmer, you know how to find your way out of the forest without knocking all the trees. Call yourself coder, programmer or engineer I don't care your leetcode scores and your fizzbuzz one liners, and the amount of stickers on your overpowered laptop.
You're there to make the computer do the damn thing you want it to do with the least amount of resources. And of course it has to be maintainable, this isn't your bedroom.
So respectfully, sir, take your taxonomy and pipe it straight to where the light don't shine. /s
That's engineering. That you don't want to care about terminology doesn't change that.
They don't if there's no consensus
And I'm sure you ain't got the authority needed to affirm that those definitions are commonly used in those ways
Someone commented on an article about what is vs isn’t in terms of names for writing computer programs, at least by title alone, and the galaxy brain contribution you’ve got is “it doesn’t matter”, bitching that they didn’t give a reason why it matters yet you can’t offer anything to back your shit take up either. Delete your comment lol.
If you don't want to be banned, you're welcome to email [email protected] and give us reason to believe that you'll follow the rules in the future. They're here: https://news.ycombinator.com/newsguidelines.html.
Many modern software systems seem to lack such specifications or models. In these cases software development seems more like tinkering than engineering.
Or rather, they're used by different companies for the same type of jobs, some people make distinctions that other people don't know about, terms go in and out of fashion. They're all essentially synonyms because if there are differences, nobody agrees on them and there is no context in which they matter.
Same for junior, medior, senior, et cetera.
Except for architects. They're ex programmers.
The way I see it, these three all refer to the same things, but "coding" is hobbyist and "developing" is professional. "Programming" is somewhere in between / for both.
Don’t care how many years you’ve been “doing this” for, you clearly haven’t spent enough time sorting your own shit out.
The industry is sick. So much money has flown into it over the years without anyone battling eyelashes at the sheer waste of resources, and I mean this both from the body count as the cpu cycles.
I look at most products built today that cost millions to get off the ground and you have buttons busting out of windows, incoherence everywhere, 5 seconds to start the said product, and 2 seconds between 'pages'. Every version increment is a slow decent to hell.
It all starts with the industry self-reinforced pumped-up resume culture, with hell holes like linkedin."Engineers". Please, have you met a real engineer? One that can do the maths, the design and build of a product? You need to wake up, engineering isn't writing docker files, cobbling python scripts copy pastes together and claiming that yaml is clean code.
I know you can assemble at least a thousand Ikea cabinets while I hammer away on my carefully designed cabinet made from trees I've chopped down myself and nails I've forged. It fits perfectly with the table made by my great grandfather.
By the time you've assembled 5000 cabinets they collapse as fast as you assemble them but you need 50 000 so you have to hire 300 people mostly to talk about how it is going, document the process etc. Ikea switches to THEIR new cardboard line that is both cheaper, faster to assemble and last even shorter. You get an even larger building and hire 100 more people. Then you put stickers with advertisement on the cabinets because woah the operation is getting expensive!
You put cameras on them cabinets to track the user. Everyone is doing IoT now, you cant fall behind. You launch an app to open, close, lock and unlock the cabinets again with in-app advertisements and purchases.
Ikea goes out of business etc
I look at you, and back at my cabinet, and at you again... I have no idea what it all means. I wish I was the one to think of cardboard cabinets... or do I? I'm not Ikea, no one would have cared for it? I try to convince myself that building my own cabinet was a poor choice only to end up rubbing it with oil and carving Suum Cuique into its ornament.
What? a true carpenter joins wood without fasteners /s
You can't use the title (neither can your employer) unless you are licenced to do so.
- Coder: Can change scripts, HTML/CSS, SQL queries etc.
- Programmer: Can write scripts, small programs, declarative queries etc.
- Developer: Can write one or more of [applications, games, web sites, services] etc.
- Software engineer: Can create complex software with many moving parts.
Where I come from, certain braches of industry have simply made it illigal. For example, a nurse cannot call themselves doctors. It pertains to most knowledge-based branches of industry here, except for software development.
- Bug-fixer: Deals with problems that four others will end up ignoring because they all moved on to other jobs creating new systems filled with more bugs that will be fixed 5 years down the road. Bug-fixers can like the work, but it's not glamorous because a lot of the time, it doesn't introduce new value.
They say people are good as their last project. It has rung true for me for years. I have become the bug-fixer again in my new project. But, it usually includes trying to come up with incremental improvements if there result of the issue was direct or indirect lack of something else.
* coding = typing or clicking to have computers do stuff
* programming = knowing how to type or click to make computers do stuff given knowledge of the SDK, libraries, toolchain, and _ideally_ how to communicate effectively with the IDE
* software engineering = knowing when _not_ to program, knowing about components and the implication of their boundaries and contracts with the things outside of that component's boundaries, which in my world includes but is no limited to other methods in that same module, other modules in the same deployment, internal consumers, and most importantly any promises the code (or management) have made to _external_ consumers
---
* coding = able to use a hammer
* programming = able to assemble an Ikea cabinet, sometimes without the correct tools or complete instructions available
* software engineering = able to design an Ikea cabinet for others and striving for a very low RMA rate