Absolutely. I went to school with (and am close friends) with many engineers. They worked very hard on their studies while I sorta goofed off and didn't finish school. I respect their dedication to process, standards, not reinventing the wheel when not needed, and commitment to projects that last an entire career. Their tasks include making things work better for people in general and not just a segmented community. It's also good to remember "Engineers" make decisions that other people's lives depend on.
I am proud to call myself a programmer or a web developer. Our work is hard, it's dynamic, and it has the potential to impact many lives. But we should be sensitive to the engineering community as lives depend on their work and calculations not falling apart.
I agree with both of you, and feel pretty strongly (without any real concrete evidence, but with lots of anecdotal personal experience to back it up) that the vast majority of pro coders are software developers but by no means software engineers. I personally put "Software Developer" on my resume/linkedin for all of my dev jobs, regardless of what my employer/client calls the position.
On the whole engineering vs developing thing I think that dev is still in its infancy. Professional certs that are really meaningful and indicate some level of knowledge on various dev subjects would be a good baseline in the future, IMO. In Canada, to be a P.Eng. (https://en.wikipedia.org/wiki/Regulation_and_licensure_in_en...) one must, by law, be licensed.
From that link:
> The regulation and licensing of engineers are accomplished through a self-governing body that is given the power to license and discipline professional engineers, as well as regulate the practice of the professional engineers...
> A self-governing body's prime purpose is to protect the public.
The problem is that the line is not as clear as you'd think. Is someone who makes electronic circuits, but is mostly self-taught, an engineer? How about for software? There is usually very little difference between the best self-taught programmers and the best engineering-school taught ones, up an including knowledge of calculus, algorithmic complexity analysis, ML/stats, etc. Finally, there are people like me who did a bachelors in CS inside a school of sciences, rather than a school of engineering, is 'Software Engineer' justified in the later case, but not the former? Why?
Also, this discussion is a bit like asking why you can be a Data "Scientist" without a Ph.D. and without peer-reviewed publications. In reality, most people understand the difference between a scientist working in neurobiology or particle physics, and a data scientist working on ads (a competent data scientist working on a private non-profit in epidemiology might actually be harder to classify, though). So, same goes as to the difference between a civil engineer and a software engineer.
Edit: If anything, I know a few UX designers that reject the engineer label, but only because it makes the process sound more mechanical compared to designer (in my understanding, both are about discovering and satisfying constrains, but constrains are more strongly defined and more externally enforced in engineering than design, even for software).
In certain parts of the world, including much of Europe, the question is less ambiguous than it seems. There are countries where this, for instance, has a very clear answer:
> Is someone who makes electronic circuits, but is mostly self-taught, an engineer?
If he's accredited by that country's authority on the matter (e.g. the Engineering Council in the UK), then yes. If not, no.
Around here, you're only allowed to call yourself an engineer if you have a degree from a technical university.
Sure, the company can give you any title they want (I mean, if they're allowed to give obnoxious titles like Senior JavaScript Ninja or whatever, surely they can call someone an engineer, too), but from a legal standpoint, that's null, with all the consequences that follow (e.g. legal documents that require an engineer's signature have to be signed by someone that the state agrees is an engineer, regardless of what the company thinks).
Edit: FWIW, while I'm legally allowed to claim that glorious title (my diploma says "Instrumentation Engineering"), I tend to avoid it, too. My job has always been to program computers, and if I'll be able to do that until I retire, I will. Consequently, I see no reason to call myself anything other than a programmer. My employers disagree for paperwork reasons, so the paperwork they do says otherwise, but "programmer" is what I want everyone to call me. There is very little of true value to be found in a name; people who chase the title of engineer, rather than the engineering education, are missing the point.
I like the way you've stated this. While in general I am not fond of arguing semantics and don't often think it's worthwhile, in this case I would say it's warranted.
When I think of "engineer", I think of P.Eng., and the licensing/accreditation that goes along with it has useful connotations to it. So I'd say while some of us devs might be doing engineering type of work, and may even be eligible for something like an P.Eng. license in their place of residence, they simply are not engineers, because they are not licensed.
On the other side of that coin, I don't believe there is ever such a hard-and-fast rule that is applied to the word "scientist". As such, I don't believe that Ph.D. or getting published is required - what's required is instead to be someone who practices science.
That ship has sailed. Engineer has been genericized. Some countries still have laws regulating who can use the term, but in most places there is a difference between engineer, and something like Professional Engineer (which requires licensing).
My father is a "true" engineer. He has said to me that the amount of education I have and work I have done would make it easy to be certified as a P.E.
I don't want to be mean, but I guess this is - jobs that have certifications are not often engineering in the software world. Such as the oldtime way to get big bucks "certified netware engineer", oracle pooh-bah certified admin.
One day there will no doubt be real engineering accrediations, like peng for software, but we aren't there today.
Yes. I went to school to become an aerospace engineer, worked in that field for a while and recently switched to doing game development. Yet even though the title I was given when I was hired at my present job includes the word "engineer," I'm thoroughly uncomfortable using it.
It's generally frowned upon in the UK, where an engineer must be accredited and chartered with the Engineering Council. Software development is considered a very immature discipline that is not yet subject to the same regulation and strict principles that civil engineering for example is.
I can't say I've ever seen dev jobs advertised as 'software engineer' positions here before. It's always 'software developer'.
Nah. If you're going to be pedantic about traditional definitions you get no credit for half measures, and engineering being an academic discipline as opposed to a generic term for an occupation/skillset is a relative novelty.
I completely agree. Its like someone carrying a board up a flight of stairs and calling themselves an engineer.
Did you get an typical engineering degree for it? Exactly!
I wasn't trying to dimension the challenge and skills needed to be a developer. I'm more so questioning the use a label which traditionally has a certification process attached to it.