Old, but fun read that argues that today’s programmers are not like typical Engineers and shouldn’t really call themselves that as Engineering requires certification, is subject to government regulation, bear a burden to the public, etc.
All this gate keeping is bullshit, but I do have to agree that we are really bad at actually engineering.
I don’t think gate keeping engineering is bullshit, software or otherwise. In fact I think it is one of the few eminently important things to gatekeep.
If computer systems have peoples lives depending on them, having accredited engineers that may be part of a chain of liability for their mistakes is a potentially life saving measure. It provides increased guarantee that someone will be held responsible, be it the firm, or in the case of bankruptcy, the individual engineer.
This provides a significant incentive to only sign off on work that meets all relevant safety criteria.
I’m not sure if that’s how it works in software engineering, but it certainly should.
There are separate titles for accredited engineers in the US and UK. If anyone cared enough they’d already be using them. The fact is, vanishingly few software engineers work on high risk (to human life) projects. Versus, for example, structural engineers doing it daily.
We’re kinda close because we make a tool that people in a dangerous line of work use to plan their dangerous work. That said, there are checks at each step (output from our software is checked by other software, which loads it onto hardware with its own checks, and then get double check everything before pushing “go”).
I mean you can’t go to the store purchase a stethoscope and call yourself a doctor. Similarly, programmers do not require any sort of certifications or are heavily regulated unlike engineers. It’s an interesting argument for sure.
It depends on the jurisdiction.
In Alberta, Canada, for example, employers will hire programmers from two distinct pools of educational streams: Computer Scientists and Software Engineers.
CS programs are governed by the faculties of science, software engineers by the schools of engineering.
The software engineers take the same oaths or whatever and belong to the same organization as the other engineers (in Alberta, APEGA) and are subject the same organizational requirements to be able to describe themselves as engineers. They can have the designation revoked the same way a civil engineer could.
Practically speaking, as someone who works with both, I don’t see a meaningful difference in the actual work produced by grads of either stream. But at least in my jurisdiction the types of arguments being made don’t really hold because it is a regulated professional designation.
From Alberta but not working there anymore. Found out somewhat recently, specifically in regards to Software, APEGA lost their protection on the word Engineer. Again, specifically in regards to Software.
The protected title for Medical Doctors is Doctor of Medicine. I can get a PHd in Software Engineering and call myself Doctor.
deleted by creator
You can, but if some cries out “Help I need a doctor!”, please don’t volunteer yourself. ;)
FWIW doctor comes from the latin for “I teach” and has been used by acedemics since the 12th centrury. Its usage meaning physician is a lot more recent.
If someone cried out “I need to engineer a web application and work with a whole group of people to bring it about” I happily would though because I’m an engineer even though I don’t have a degree
I mean, there’s plenty of mediocre/bad IRL engineering too.
Depends on how you define “engineering”.
There is a huge difference between a “programmer” who just codes, and a software engineer, who studied computer science and learned the skills for problem solving as an engineer. The latter is protected in many countries.
Yeah, and at least in my country, there are mandatory courses common with all technical (not sure how that should be translated properly to English) engineers, such as extensive physics, maths, electricity and such, that us software engineer students also have to pass along with our specialization to even get to the thesis part of the engineering degree.
After all this, I’ll have no trouble calling myself an engineer. Neither does the university I go to. Nor anyone, really.
Without the degree, sure. I’d be ashamed, even, to claim such a title. But that’s just because the whole engineer degree is well established and has a set meaning. I’d be software developer, as I am now, instead of the software engineer I aspire to be.
I may be self-taught, but I love the field of programming computers and have studied it in my own free time. I happily call myself an engineer if the 99% of engineers coming out of uni and entering the job market can be called one.
In Germany engineer is a regulated term. Computer scientists wanting to call themselves engineer or software engineer need to complete certain higher education programs. A B.Sc. program in CS is enough for example.
Same for the Netherlands.
Yep, but only the Dutch word is protected so we just use English titles everywhere
Same in France. Anyone can call themselves a “software engineer”. But the title of “engineer” (ingénieur) is specific for people who graduated from a school allowed to deliver engineering degrees.
In Dutch it’s also ingenieur, I wonder where we got that from
It comes from the Latin word ingenium.
Really? I thought Ir. is only with a masters
That is correct. There is both and Ing and Ir title that are Engineer. Ir for masters and Ing for higher education.
See Titels voeren.
The people doing software engineering without such a degree in the US are definitely in the minority, so there’s not much point to the hand-wringing generally speaking.
Weird hill to die on.
and the bar is getting lower. Fast iteration, releasing broken, poorly understood, barely maintainable pieces of shit as quickly as one can.
Fucking agile
Well… I did write an engineering thesis and later got a diploma, so I think I will call myself an engineer.
Meh. I don’t care. I’m a mechanical engineer by education. While I’ve used it in many jobs, none in a way that requires certification.
In the US, certification is needed in civil engineering and only small subsets of mechanical and electrical engineering. I’ve worked with many engineers who don’t even have a university degree in engineering. I’m not precious about other people calling themselves engineers.
Except for that stretch of time when hotels were trying to hire janitors as “custodial engineers” and offering like $10/hr. Eff that noise. That made an already deteriorating job search experience on LinkedIn worthless.
Yeah I was gonna ask, whether certification/government regulations are required for all engineering disciplines. I graduated with a CS degree and work as a software engineer now. I have family members who studied different engineering disciplines (industrial, civil, mechanical, etc), and only 1 of them ever needed certification (civil engineer). What makes one more “engineering” than others?
In the US, there aren’t as many certification requirements. In civilized countries, “engineer” is a protected professional title like doctors and others, and you have to have your PE cert to say you’re an engineer.
Given the general quality of software, I think it would be a good thing to make it a protected title in the US too.
I live in Australia, which I guess is not a civilized country.
In any case, what does that even mean for software engineers to be certified? Do we get certifications for specific programming language? Or a stack? Or is it specific to what industry your tech is based on? Cos I don’t think it makes sense for someone working on a social media platform to have the same certification as someone who’s working on health tech for example. Why does it need to be a protected title? Does the general public even care or is it just other certified engineers who care?
There is a professional engineer title in the U.S. top and misrepresentating your self is illegal. However since software engineer isn’t a real type of engineering it doesnt get covered. It’s like how a medical doctor is a protected term but if you misrepresent your self as a PhD that’s not protected
Tech bros have ruined the prestige of a lot of titles. Software “Engineer”, Systems “Architect”, Data “Scientist”, Computer “Wizard”, etc.
I prefer the term code wizard.
It’s not just tech bros, it’s the whole approach - weird names, version numbers turning into marketing tool instead of just numbers, attempts to hype up things that shouldn’t be hyped up.
When I was a kid in Russia in year 2003 (suppose), it was associated with everything Chinese. But then Windows Vista and iPhone and what not … came into normality. And now everything, not just toys produced in China, is something made of plastic and intended to break next day and be unfixable.
I’m torn between two things - one is to accept life as it is, because that’s truth, and another is that in future of my dreams we’d have good, reliable things, their price and availability helped by scientific and industrial development.
I guess what one can wish is for the developing world to finally develop in all its parts sufficiently to make the current paradigm of a few manufacturing countries making everything for the rest of the world, but using IP of a few designing countries, unworkable.
Decentralization and competitiveness help everyone.
I think IP and patent laws have been a tool to create stagnation. You won’t make Spectrum-like machines for kids in school, when you can have something from the Intel+AMD/ARM-ASML-TSMC ecosystem. And if you don’t accept US and EU and in general European world’s IP and patent laws, you’ll get practically embargoed. And those are close to legalized monopoly. And without breaking a lot of patents, even trying to build a competition to ASML and TSMC in like 40 years is going to be a few orders of magnitude less possible than with breaking them (still not very likely).
So what I’m trying to say - Speccy is probably not something to aim for now, it’s not problematic, just no demand. But aiming for something like Sun equipment of year 1997 would be a good idea. If hardware of that level were produced on scale in a few bigger countries, like Brazil or India or even China, it would make a lot of difference. I know China has Loongson. On scale.
And job listings, I had a longshot hope of getting into product development/product design. But 99.8% of job listings using those terms are for code monkeys.
As a software engineer, I think there are many places where there is a big difference between a SWE and a programmer/developer based around how active you are in designing the architecture, algorithms, and other systems of the software you’re working on.
That being said, people who try to exclude SWEs from engineering are just gatekeeping for gatekeeping’s sake. Up until COVID, you could be a PE in software engineering, they only stopped it because the field was changing too fast for the tests to keep up.
All the major engineering disciplines do the same basic formulas with different concepts. Fluid flow, mass flow, electrical ‘flow’. Are all the same basic equations. Software engineers don’t need to do that, they are further away from the actual math which is what makes engineering, engineering.
Make me
You should stop calling yourself an engineer unless you drive a train
Code monkey is the appropriate term
There is a big difference between a software engineer and a software developer/programmer. In the same way there is a difference between a civil engineer and a builder.
A software engineer is the one who scopes the project. They define the feasibility, the limitation and exeptions, the tools to use, as well as costing and time planning and management.
The programmers are the ones who work to this scope and utilise the specified tools and technologies to create the product.
I have a degree in software engineering and all of this was covered. From writing scoping documentation, to time and costing with Gantt charts. This is the actual difference.
You’d think that’s how it is but in reality they list software developer roles as software engineer just because they think it sounds better.
Yeah, fair enough that might be what HR/recruitment does. It doesn’t mean that there isn’t a difference though.
Also I’m not sure if that is more of a US thing maybe? I see most roles in Australia listed for “developer” not “engineers”
I’ve always used “software engineering” to refer to the other stuff that comes alongside actual development, like version control, testing, CI, debugging, code review, release management etc.
You’ve forgot the actual “engineering” parts which distinguish programmers from engineers: requirements engineering, software architecture and complex problem solving
Yes, yes. Hence etc.
I don’t control the job title my company gives me.
I know this is from 2015, but even then, it was a bit late to make this argument. This was already mainstream enough in the 90s to be the punchline in syndicated comic strips. By 2015, we already had “customer experience engineers” (i.e. tier-1 helpdesk). The ship has not only sailed, it has sunk.
Anyway, the phrase originated in an era when programming was very different from what it is today, when most programmers came from a background in electrical engineering or something along those lines.
As someone who has a formal education in Computer Engineering, I can attest that the degree is essentially a combination of modern Electrical Engineering and Computer Science degrees. In other words it is a dual major without any of the benefits.
Not all Software Engineers do actual engineering and that’s okay. The only problems I’ve seen with this in my time in the tech industry is when you have someone who can talk the talk, but when it comes time to do the difficult mental work, they fold like a deck of cards, or worse release a product that’s half-baked. You will see this a lot when a boot camp churns out talent hoping to make a quick buck and then they are given a truly important and hard problem to solve, such as healthcare or military applications.
For that reason, many SWE roles require education to be specified on resumes, rather than certifications as a hoop you have to jump through. If your job did not question your education when you were interviewing then that is usually a good indicator of the kinds of people you will be working with. With all of that said I’ve worked with many engineers that did not have a formal education and were very talented, some of which lied about their education to get where they are today. This happens frequently across all industries however, and isn’t unique to software.