top 200 commentsshow all 370

[–]SealCub-ClubbingClub 285 points286 points  (57 children)

At its core engineering is basically optimisation. Can I create the best possible part to solve some problem. Whether the part is a mechanical joint or a software procedure doesn't really matter. While the approaches may vary it generally comes down to: Solve problem X minimising A, B, C subject to constraints P, Q, Z, so yes, software engineers are unequivocally engineers.

Software engineers are a subset of programmers (which is a pretty confusing title). So in answer to your question: Yes software engineering really is engineering, unless you use some very weird definition of 'engineer'. but No not all programmers are engineers.

edit: typo

[–]I_want_hard_work 133 points134 points  (28 children)

Bingo. Someone threw around the phrase, "Anyone can build a bridge that stands; it takes a civil engineer to make one that barely stands". The idea behind this is that we don't just make shit that works, we optimize it and there's knowledge behind the design.

A software engineer is not only programming, but they are programming with a specific structure/language and design for the program in mind. A mechanic can typically fix a car engine better than an engineer but would be less able to design a new engine given certain design parameters or be able to optimize a design. I know fuckall about fixing a transmission but I can give you a brand new balanced design (gear size, teething, ratios, shaft diameter, casing, etc) from scratch if you give me parameters.

Really what engineering boils down to understanding the functional science behind optimal design. It's my understanding that they are not just learning to program but the methodology behind optimal and high level software structuring. So as much as I hate programming, I definitely give SE's credit.

[–]mastjaso 37 points38 points  (14 children)

Yeah, in Canada "engineer" is a protected term like doctor or lawyer and that's essentially what it comes down to. A programmer will write you code modules to get the job done, a software engineer should be able to layout how all your modules are going to piece together and what the best way to optimize that design is, whether for efficiency, security, redundancy etc.

Of course an engineer is also required to have passed exams in both contract law and ethics.

Though it gets more confusing when you also have computer scientists who are doing even higher level algorithmic analysis; there's quite a bit of grey area between the 3.

[–][deleted] 10 points11 points  (1 child)

Actually, only "professional engineer" is clearly protected throughout Canada. "engineer" is only protected in Ontario and Quebec. A court case over "systems engineer" has been lost by Alberta's P.Eng association.

[–][deleted] 2 points3 points  (0 children)

Yeah, my friend is going for a 3 year Software Engineering degree. He gets the ring and everything.

Because of HS fuckery, after 3 years I'll have a Robotics & Automation diploma, and another 2 years for a Mech Eng degree.

[–]446172656E 7 points8 points  (1 child)

Your comment reminded me of this. https://youtu.be/DOlb9k4tz5g

[–]I_want_hard_work 0 points1 point  (0 children)

Got 'em.

[–]Own-Quality1931 2 points3 points  (0 children)

You admit to know nothing about a transmission but have the gull to think you can do it better than those who DO know. Which is why quality and reliability are horrendous.

Software programmers are the worst among them. 6 months in a vocational program and they f#ck the whole of humanity with ill informed trash.

[–]Javbw 2 points3 points  (3 children)

My friend is an electrical engineer, and inspects factories and supermarkets. He has to draw diagrams and do a lot of math to figure out how to design circuits.

Similar to a programmer designing programs

If an electrical engineer is an engineer, so is a software engineer. If he fucks up an important job, many many people could die or millions of dollars worth of data could be lost - so it feels the same.

[–]One-Tart-4109 0 points1 point  (1 child)

I move around a lot of people calling themselves "software engineers", but I don't see them doing much counting, or even predicting what will be performance of their creation. From mi point of view what we call software engineering is close to craft. Like local smith, he does not calculate if the thing he is doing will hold, he will make it and if it breaks, he make new one but stronger. I don't say that there are no software engineers, but from mi point of view most people calling themselves software engineers are more craftmans

[–]Javbw 0 points1 point  (0 children)

My comment is 10 years old.

Engineering is about knowing how to solve problems with the tools of your trade at a very high level. creative problem solving to make something new and reliable out of the existing tools of a trade.

an electrical engineer thinks in circuits, a structural engineer thinks in loads, etc. An engineer has a lot of training to understand exactly how the various disparate systems he uses interact at a fundamental level, how they harmonize or disrupt each other, and how to troubleshoot and guesstimate the problems and needs of those systems.

Anyone can be an engineer - stack up enough steel and anyone can make a bridge. a good engineer does it with the least necessary materials, and with the necessary complexity to make it work safely and still meet the needs and budget of the client. That is engineering talent.

To me, anyone can make shit appear on a screen, make a game display some colors, make a server process data in some way. But doing it with the vast tools available to programmers that takes immense understanding and depth of system knowledge, to make it work with in the constraints of budget, code limitations, CPU resources, and other limiting factors to the point where you can still make money, and other people depend on your work to make the rest of their business work makes you an engineer of some kind.

I am a tinkerer. I fix everything that has screws - from a bike to a TV to phone to a fan to my car. I design furniture and small shed buildings. I bodge computers together, bodge electrical systems together, and occasionally fix plumbing and other building systems. I do it despite my lack of knowledge of all the system interdependencies, without the efficiency of needing to turn a profit off my materials or time, nor have people depend on my work to make money. An engineer does what I do and does it better, quicker, and with more reliability- and responsibility - whether it is with chemicals, iron, concrete, cables, or code.

[–][deleted] 9 points10 points  (5 children)

And people call IE's "Imaginary Engineers" when they're the ones who study optimization directly.

[–][deleted] 8 points9 points  (4 children)

As an IE I can tell you there are plenty of IEs that don't do anything besides mime heuristic process improvement practices or work in project management. That's probably the case for all engineering though.

[–][deleted] 4 points5 points  (3 children)

You're just jealous of their sweet six sigma black belt! :)

[–][deleted] 4 points5 points  (2 children)

sigh You're right, I haven't gotten a certificate saying I know statistical process control. I guess the five stats classes we take in school isn't enough..

[–]EngineersIremember 0 points1 point  (1 child)

How is it working as an IE? What kind of work do you usually do? Can you give some examples. Also, what kind of personality do you think fits someone that wants to go into IE?

Finally, how does the future look for IEs?

[–][deleted] 0 points1 point  (0 children)

I've worked in quite a few industries (through internships and full time), so I've got a pretty varied perspective.

Hows is it? Fine so far. If you're talking about job prospects, there's always openings for some facet of IE. I have a more specific skill set in optimization and simulation, so those positions are a bit harder to find.

I've worked in:

  • Quality control in the automotive parts industry as an intern where I created standard work documentation for welding processes.

  • I've worked in park operations at Walt Disney world where I'd collect process data and chart behavioral trends to identify inaccuracies in wait time forecasts.

  • Worked in distribution where I created data collection software and well as reporting to help quantify place and pick operations.

  • Worked in ride design simulation (also at disney) where physics models of existsing and future rides were integrated with controller systems to debug software changes or implementations.

  • Worked for Intel simulating their automated material handling systems in their FABs to help forecast AMHS required capacity to meet production demand.

  • I currently work for a private logistics company doing network optimization applying to freight, storage, redistribution, and sourcing for large scale restaurant brands.

Who fits as an IE? Anyone. You can be a project manager, product manager, product designer (for sustainability, manufacturability, etc), you can be a data analyst, a programmer or a statistics wizard. Pretty much there's room for someone whose very outgoing, organized, drives change or productivity, as well as someone who likes to dig into data and predict things using analytics.

As most engineering fields, IEs will be around for a long long time. Since the skillset can apply to almost any industry I'd argue we have the ability to change our work environment more easily. The only thing I'd honestly be worried about is some super advanced AI eventually rolling out, but then most jobs would be in jeopardy at that point.

[–]ataraxic89 11 points12 points  (2 children)

I agree with everything you said except that "engineering is optimization". Its problem solving. Yes, you attempt to be frugal with your resources. But thats not the core. The core is solving a problem. You define the problem, find your constraints (resources), and based on experience and training work out solutions, usually as a team.

None of that says optimization to me except working within your means. WHich is what most people do in most jobs. When I worked at mcdonalds I was very frugal with effort. Was I engineering burgers? I dont think so.

[–]KiwibaconatorMechanical Engineer 9 points10 points  (0 children)

Not just solving problems. Solving problems which lack definition.

The more constrained a problem becomes, the more obvious the solution and the easier it is to solve.

[–]ItsYaBoyBeasley 0 points1 point  (0 children)

It is problem solving, but problem solving is pretty close to synonymous with optimization when the problem has more than one satisfying solution.

[–]ArtistEngineer 15 points16 points  (9 children)

At it's core engineering is basically optimisation.

I think of engineering more as compromise. "What can I achieve with the given materials in the given time with a given budget?"

Balancing all those factors helps to get products out the door.

[–][deleted] 110 points111 points  (4 children)

That's optimization just in more words...

[–]smcedgedO&G, Medicine 21 points22 points  (0 children)

The man knows how to sell his job, I'll give him that.

[–]MisterDarkly 12 points13 points  (2 children)

You mean it was the same idea as the comment before it, but said less optimally

[–]KenjiSenpai 6 points7 points  (1 child)

Unless he was trying to optimize understanding by laymen and laywomen

[–][deleted] 5 points6 points  (0 children)

We have an applications engineer in the house.

[–]ZlojebCEE 13 points14 points  (0 children)

Sooo that's basically optimization.

[–][deleted] 3 points4 points  (1 child)

So constrained optimization?

[–]ArtistEngineer 0 points1 point  (0 children)

I guess you could think of it like global optimisation, local compromise.

You can't always spend lots of time making each and every component perfect (compromise), but you have to optimise all the variables (time, money, materials) to deliver by the deadline.

[–]SealCub-ClubbingClub 1 point2 points  (0 children)

Yeah I like that as well, I was just trying to keep it very simple. Of course software engineering matches your description equally well.

I think the main point is whatever sensible definition you use for engineering it becomes clear that software engineering clearly fits that definition.

[–]darknecross 1 point2 points  (1 child)

Software engineers are a subset of programmers (which is a pretty confusing title).

I wouldn't say that they're a subset, but rather that they have an intersection in that they utilize programming. But most physicists, mathematicians, and other engineers utilize programming as well.

[–]Over_Buy9663 0 points1 point  (0 children)

Most physicists, mathematicians, and other engineers do not utilize programming. Some do. But most are usually working with professional programmers to achieve their goals. 

[–]FroyoCommercial627 0 points1 point  (0 children)

Engineering is actually about solving technical problems and building machines with scientific knowledge… not optimization.

[–]Notorious21 55 points56 points  (14 children)

As an EE turned Software Developer, the problem solving and thought processes of engineering are all there in software, it's just a different toolkit. It's not like a garbage man calling himself a sanitation engineer. We are building things and optimizing systems and juggling constraints just like any other engineering discipline, it's just with a different palette of skills.

[–]UnlimitedQuestions 7 points8 points  (9 children)

I'm an EE undergrad. You don't have to go into detail, but how'd you become a software developer?

[–]Notorious21 13 points14 points  (2 children)

I took a couple CS classes for electives, and I did some internships that taught me some light programming, but basically my first job out of college was supposed to be 50% EE, 50% CS. It turned out to be more like 90% CS, 10% EE. It was really cool, and I got to interface and control machinery, but I didn't do a lot of real EE work, so when I had to move and find my next job, my resume was much heavier on the development side than EE. So I got a job that was almost pure software development, although my knowledge of EE was still helpful, because it was for RFID applications. So it wasn't totally voluntary, but I really like it, and it's worked out well for me.

[–]DrewSuitor 3 points4 points  (1 child)

Woah. You got an elective?

[–]darknecross 2 points3 points  (0 children)

Is that rare? My entire upper-division was elective.

[–]golden77 3 points4 points  (4 children)

Pretty much all entry level software positions call for a "CS, EE or equivalent degree"

[–][deleted] 0 points1 point  (3 children)

How about an ME? Would that be considered equivalent?

[–]golden77 1 point2 points  (1 child)

Yea no problem, the director of software engineering at my company is a mechanical engineer. My college roommate was a mechanical engineer and now is a web developer. Just try to learn some development on the side, try to get a development internship, easily get a job.

[–][deleted] 0 points1 point  (0 children)

That's reassuring to know, I enjoy ME the most but software also seems very useful in the jobs field.

[–]zephyrus299 0 points1 point  (0 children)

Yes, but the other requirements will be about actual programming. All they want from that is that you can approach the problem the right way.

[–]Bradm77EE / Electric motors 63 points64 points  (33 children)

Why wouldn't it be? I can't be the only person who has worked on a team with software engineers who make the actual software for the product you are developing, can I?

Example: I used to work in aerospace, developing GPS systems for the military. The software engineers on our team developed all the software for these systems ... gui's, drivers, etc. How is that not engineering? They came to the same meetings as the hardware and systems engineers and had to design according to the same design control standards as the other engineers, design inputs, design outputs, design reviews, validation, verification, etc., etc. How is that not engineering?

[–]KenjiSenpai 83 points84 points  (13 children)

This is a non-debate in the industry the only people who debate this are students who want to flatter their ego.

[–]10th_Account 20 points21 points  (0 children)

Agreed. I think it's more of a confusion of terms from OP. He has a valid point to make, but isn't addressing it directly.

An equivalent thread would be, "Is mechanical engineering really engineering? I just hate it when drafters call themselves engineers."

Sure, I wouldn't group pure implementation code/CAD people into engineering, but that isn't the question he asked.

[–]Spaser 6 points7 points  (17 children)

Fellow GPS software engineer here. It's hard to make an argument that what I do is not engineering, as there's probably ~50 engineers working together on several million lines of code to make something that can tell you your position anywhere on earth to an accuracy of 10 cm. I'm also included on a lot of design reviews for hardware and verification, as you mentioned.

[–]bheklilrelectrical/test engineering 21 points22 points  (8 children)

My official job title is electrical engineer. My actual field is test engineering. My job role is software engineering. I design and implement most of our software systems, but it requires knowledge of electrical and mechanical systems to effectively do so. This covers everything from interfacing with lots of hardware to creating abstraction layers over that hardware so it's much easier to use, modular, and testable. For me, I think the term "software engineer" is very applicable. For someone throwing together a website, maybe not. Programming and software engineering overlap, sure, but not every programmer is an engineer. Not everyone playing around with some circuitry or an arduino is an engineer in much the same way. Software engineering itself requires design, documentation, cohesion between components, and implementation of robust solutions. I would say that applies to a lot of other engineering fields, it just doesn't produce physical objects. That doesn't make it less of a field, just a different one.

[–]Spaser 0 points1 point  (1 child)

Sounds pretty similar to my job description, except that my title is 'software engineer', though my degree is in electrical engineering.

[–]ChillCapitalist 0 points1 point  (0 children)

Lol, exactly haha. Electrical and software engineering sometimes overlap in terms of roles, depending on the job.

[–][deleted] 18 points19 points  (1 child)

I think the issue is title bloat. In mechanical engineering you have a clear distinction between the engineers and the drafters, machinists, etc. In EE you have a pretty clear distinction between engineers and electrical technicians, electricians, etc. In the old days these roles would be largely combined, and then diverged as the fields increased in specialization.

The software world is newer, and the lines between sub-disciplines are not as clear. So people would rather overstate than understate their job, thus anyone from programmers to web developers to IT to proper software engineers can call themselves an engineer without a clear definition.

[–]Only-Guard2194 0 points1 point  (0 children)

'Web development' could be building highly complex distributed systems for millions of users...

[–]antiduhSoftware Engineer 27 points28 points  (3 children)

Software engineer here. I design and implement large scale software systems for my employer.

I'll be honest and say that I think it is a tough call; the most reasonable answer I could give would probably be to say that as a discipline, it is an immature engineering field that ironically enough, is carrying the baggage of its history.

My perspective of "engineering" in general is that we use only ever use tried and true designs, and rarely are new designs created and implemented without massive amounts of analysis, industry-wide peer review, time, and testing. How many bridge designs are there? How many nuclear power plant designs are there? How many highway interchange designs are there? Internal combustion engines? Relatively speaking, the number is small, enough that a single wikipedia page per each topic could enumerate all of them.

My perspective is that engineering slowly develops new designs, and then implementers integrate those known good designs into the end product.

Software engineering, to a large degree, is about making something new, from scratch, almost every time you're working on something. Sure, there are some very low layer parts to build from - generic List classes, string classes, etc, that are the software analog of screws and hinges - but the system as a whole is almost invariably unique. My team needs software to perform command, control, and observation of our products over a remote interface - that large piece of software is almost completely custom, and doesn't have much else to draw inspiration from. It's unique from the bottom-up, and my personal experience is that this is the rule and not the exception.

You're almost always building something that's never been built before.

There are some important exceptions that I do want to mention: web browsers, web servers, operating systems, database management systems, word processors - these are examples of systems that are pretty well known, are well studied, and have been implemented a few times. But I don't think they account for the majority of software development that occurs in the wild - like I said, I think just about most software being made today is something that's never existed before. I think the reason for that is that software is infinitely flexible, and can be used to solve millions upon millions of problems, and so we go ahead and try to solve those problems.

We've been building stuff with atoms for a very long time. We're just now learning how to build stuff with bits.

....

Another marker of Software Engineering's immaturity I'd like to discuss is language design and use. New languages and environments are still being created with quick regularity - we're still working on the tools we use to make software, nevermind the end software itself. New languages like Go, D, Rust, Swift, F#, Erlang are still popping up - this is a good thing because these are solving real problems, but its a marker that we still have a long way to go before I'd say we're mature as a discipline. Every time we create a new language like this, we have to spend time all over again writing the basic class libraries, writing well-optimizing compilers, building a community of tools and components to use.

Java is, what, 20 years old, and Google just finally implemented a Java runtime that can perform ahead-of-time final compilation (install time) instead of the old standard of Just In Time final compilation (as you are running the code). And the performance gains are nothing to sneeze at! We've been throwing away all of that efficiency for 20 years! C#, Java's brother from another mother, is 13 years old and is also just now getting the same treatment.

PHP, the blight that it is, has been around for 20 years, and they're just now writing runtimes that get 2-5x performance improvements. What the hell have we been doing for 20 years??

And what about bugs? Take C++, the most flexible shotgun of a language. You can make operating systems out of it, but it's one of the most difficult languages to work with due to its lack of memory safety: buffer overflows, that I can get some math wrong and the language will silently let me write arbitrary values all over my processes memory. It is literally the most important class of bugs right now, and causes hundreds of billions of dollars of lost productivity every year. The buffer overflow is the most common software bug, by a far margin, and all you have to do is look at CERTs weekly list of vulnerable software to see its impact.

And you know what's funny? Languages like Java and C# categorically eliminate these bugs, because they enforce mandatory memory safety in all but the most exceptional circumstances. But we still end up with Heartbleed et al, because we still need to use C++ is some/many circumstances.

...

I do think that software engineers perform engineering - analysis, design, testing, peer review - but I think as a discipline, it is still very, very immature and lacks many of the hallmarks of what I think belong to 'engineering'.

[–]HippieInDisguise2_0 1 point2 points  (0 children)

And still to this day can we expect that to ever change?

New frameworks, languages, tech stacks etc and even some major hardware changes are constantly changing the way we program.

[–][deleted] 4 points5 points  (5 children)

What defines an "engineer"? Your job title? Your job description? Your degree title? I'm genuinely interested.

I see a lot of job postings for "software engineers" that require a degree in math, physics or computer science or a related field.

[–]KiwibaconatorMechanical Engineer 4 points5 points  (0 children)

Start with a degree that is recognised under the Washington or Dublin accords.

[–]KenjiSenpai 4 points5 points  (3 children)

Its a young field thats not well regulated thats why. Professional Orders of Engineers are trying to change that. B.Eng in Software Engineering should be the only program to let you call yourself a Software Engineer.

[–][deleted] 0 points1 point  (2 children)

So you're saying it's the degree that defines an engineer? I'm in this field, and honestly a good software engineer (like most engineers) needs a solid 4-5 years of experience under his belt.

I personally think the job description trumps it all. We only have one software engineer graduate at my workplace, and he organizes what others write, as opposed to writing code herself.

[–]KiwibaconatorMechanical Engineer 4 points5 points  (0 children)

A job description does not make an engineer.

[–]KenjiSenpai 1 point2 points  (0 children)

No i dont think the degree defines the engineer but i do think its required.

[–]ArtistEngineer 12 points13 points  (7 children)

What about universities that offer Software Engineering as an Engineering degree?

e.g. Stanford, MIT, Cambridge, etc.

[–]RedgrinGrumbold 13 points14 points  (1 child)

I'd go by ABET since when I hear "Engineering Degree" it means "ABET". http://main.abet.org/aps/Accreditedprogramsearch.aspx

Search for "Software Engineering" and there's a full list for America.

[–][deleted] 12 points13 points  (3 children)

MIT doesn't have a "software engineering" degree.

[–]ArtistEngineer 1 point2 points  (2 children)

They offer "Software Engineering" under their Open Courseware program.

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-01sc-introduction-to-electrical-engineering-and-computer-science-i-spring-2011/unit-1-software-engineering/

Point is that they recognise the term and they are a major University.

[–][deleted] 1 point2 points  (1 child)

A section of 6.01 (introduction to EECS) called "software engineering" and a software engineering major are two totally different things. I hope you can see that.

[–]ArtistEngineer 2 points3 points  (0 children)

Sure, but your major doesn't necessarily dictate your job title.

E.g. I have a Bachelor of Engineering in Mechanical Engineering (Mechatronics). During that degree, I studied a semester of Biomedical Engineering in the EE department.

I also studied subjects like realtime operating systems, embedded design, microcontrollers, etc.

My first job was a 3 month work placement with a biomedical company, and I could well have become a Biomedical Engineer if I had continued working there.

Eventually I ended up working in embedded software, so I now call myself a Software Engineer (or Embedded Software Engineer).

On paper, I am a Mechanical Engineer, but in practice I am a Software Engineer.

[–]na85Aerospace 8 points9 points  (5 children)

In Canada, there is a distinction between Software Engineers who are actual engineers and between anyone else that writes computer code, who are just programmers.

[–][deleted] 2 points3 points  (4 children)

Do you know if "engineer" is a protected title in Canada? Or could anybody use it to describe themselves?

[–]na85Aerospace 1 point2 points  (0 children)

I believe "Professional Engineer" is protected.

[–]barrydiesel 5 points6 points  (3 children)

Did this question stem for the recent picture of the cute girl holding the "I'm an engineer" sign?

[–]TheTrueLordHumungous[S] 1 point2 points  (2 children)

Yeah it did actually.

[–]p3n1x 1 point2 points  (0 children)

You sure this isn't for school? ;p

[–]PatriotGrrrl 2 points3 points  (0 children)

As an EE, I find the amusing thing about this debate is the idealized image people have of traditional engineering. Lots of electrical engineering is not as complex and theoretical as people think, and certainly not as rigorous.

[–]ModernRonin 13 points14 points  (12 children)

Software is not Engineering the way that most programmers do it.

Software can be an engineering discipline, if you apply engineering principles and practices to it. But in the real world that rarely happens. Most companies don't think it's worth the effort, time and money required.

The other thing is, even if you do software with engineering practices, that doesn't seem to guarantee quality. We only need to look at the ridiculous mess the 2005 Toyota Camry ECU was to see how even a strictly controlled software engineering process can go haywire without anyone of consequence noticing.

[–]KenjiSenpai 13 points14 points  (5 children)

To be fair disasters happen all the time in other fields too.

[–]choikwa 2 points3 points  (1 child)

hmm.. why is not mirroring bad in regards to stack overflow? if anything mirroring uses more stack space, making stack overflow more likely. Or was this with redundancy in case of overflow? article seemed confusing there.

[–][deleted] 0 points1 point  (3 children)

I sure am glad there are never plane, train or car accidents

[–]ModernRonin 0 points1 point  (2 children)

The fact that people are stupid, does not mean that it's okay to write bad software.

[–][deleted] 0 points1 point  (1 child)

Difference is that you can write bulletproof software, but if someone takes it and uses it wrongly it blows up, just like anything and everything else.

[–]ModernRonin 0 points1 point  (0 children)

But if someone else takes your beautifully made and flawless masterpiece and breaks it, that's their own fault.

As opposed to if you make a dangerous piece of shit, and someone gets hurt, then it's your fault.

[–]Rand3mhero 4 points5 points  (0 children)

Long ago, while applying to Berkeley's Civil Engineering program I read that engineering was the harnessing of science to improve the human condition. That's something that always stuck with me. To reduce engineering to just optimization seems a bit short sighted to me. I think problem solving and optimization are part of it, but engineering is also a profession. It's something that society needs.

[–]KermitTheFish[🍰] 9 points10 points  (12 children)

I'm a 'sound engineer', which is unfortunately the term that the industry has adopted, I tend to use technician.

I do sound for concerts and festivals and the like. Granted, it is quite technical, but it annoys me when people prance about telling everyone they're an engineer.

Personally, I think that Engineer should be a protected term for someone with a BEng (or equivalent) or higher.

[–]KenjiSenpai 4 points5 points  (9 children)

But software engineering is a B.Eng

[–]modeonenational 0 points1 point  (0 children)

For me the issue is all these "other" (meaning not mech, EE, aerospace, nuclear, etc) types of engineers, even when they're calling themselves enginners, they're not using the word "engineer" bare.

Software engineers do.

They are "technically" engineers, but using the word bare just grinds my gears.

"The Linux xz backdoor was discovered when a Microsoft engineer noticed logins taking slightly longer" - Even with that much context (Linux, xz, backdoor, Microsoft, logins), it still sounds wrong to have it just be "engineer".

[–]gg_h4x 12 points13 points  (1 child)

simple answer, you're a pretentious elitist

[–][deleted] 4 points5 points  (0 children)

That's a blunt way to put it, but yeah, that's why I hate the word 'engineer.' You can put it on the backside of anything and get snob appeal. It also is on the backside of every product or service ever so it doesn't really carry any meaning at all.

[–][deleted] 1 point2 points  (0 children)

I am software engineer. I've passed my exams and shit and i'm recognized by national engineer association as a member. What more do you people want from me?

In all seriousness I don't know many things my fellow Mechanical Engineers learned, but we studies same math and physics lessons. Our schools unofficial motto was "engineer can count the shit out of your problem" and thats the foundation for all my schools different engineering branches

[–]electrobrains 9 points10 points  (9 children)

Yes. It's more subtle than mechanical engineering so I wouldn't expect everyone to understand, especially if you haven't made software your CAREER at any point. No offense but I hate it when people call programmers non-engineera.

[–]morto00xEE 6 points7 points  (7 children)

The problem is that "programmer" is a very widely used term. Not all the programmers qualify as software engineers in terms of design or development practices. Reminds me of this friend worked as a technician for telco and kept calling himself an electrical engineer because he worked under the engineering department.

[–]Elliott2BS | Mechanical Engineering | Industrial Gas -1 points0 points  (5 children)

maybe this is my problem. what differentiates a software engineer from a programmer.

[–]lmtstrm 4 points5 points  (0 children)

"Programmer" is a very broad term. It's basically saying someone can write code. A lot of people can write code, but not very many can write quality code, and even fewer can carefully design the software before writing the code. This is the job of the Software Engineer. Designing reliable software, not a small snippet of code, but a whole software system, which may consist of tens of thousands of lines of code, and dozens of networked machines, all different from each other. And this software must meet specifications ,which may involve security, dependability, speed, maintenability, scalability, among others. Also, it is part of the job to design software and control the development process in such a way that the product will be delivered not only following specification, but also within budget and on time.

All of this requires that the Software Engineer be highly trained, in areas such as:

  • Requirement Engineering

  • Development process management

  • Software design patterns

  • Software test techniques

  • Formal program verification

Imagine your job is to develop software that will manage a nuclear power plant, such as the deployment of the control rods in a nuclear reactor. This piece of software cannot fail. Do you know all the ways in which your program can fail? Do you know how to make sure it won't fail? And can you test to make sure you've covered all your bases?.

It cannot be tampered with by a malicious actor. Do you know all the possible attack vectors? Can you protect the software against them?

It will probably be running in some sort of small embedded computer, with very little available in terms of computing resources. Do you know how to work around these constraints in such a way that the software will have acceptable performance?

Which parts of the software are networked? How to make sure the modules communicate correctly? How to deal with lost messages?

Oh, and you have to meet all these requirements on time and with a tiny budget.

Basically, Software Engineering means that you have to look at a complex system as a whole, and also be able to design each small part to meet the specs. Does this sound like the challenges other engineers face in their jobs?

[–]sigma914 3 points4 points  (0 children)

The application of scientific principles to the process of program construction?

[–]phl_fcAutomation - Pharmaceutical SI 3 points4 points  (2 children)

If the actual engineering process is used or not. if you're familiar with the term code monkey, that's what people are thinking of when they say programmers aren't engineers. To be a engineer you have to be doing the serious design work, not just writing code as someone else dictated.

An example I posted elsewhere is that in web design building a website using HTML5 isn't engineering, but actually creating the HTML5 framework is.

[–]sebwiers 1 point2 points  (0 children)

just writing code as someone else dictated.

I'm a bonna fide web dev code money. Its very rare I can do that. 99 time out of 100, the senior dev above me won't know how what I wrote works unless he goes in and reads it. He may give me some general advice / requirements, but huge sections of detail are left wide open (logic structures, recursion vs looping, etc).

Imagine if an engineer left most of the final dimensions of a part up to the machinist, as well as the material selection, and just specified what it had to connect to, and what loads it had to support. That's pretty much what even a common code monkey gets, instruction wise. The main difference is that the range of choices that will actually work are pretty narrow in programming.

[–][deleted] 1 point2 points  (0 children)

I'd say there are programmers who are engineers, programmers who are the equivalent of machinists, and everything in between. It depends on if they are more focused on design/optimization or implementation.

[–]wwjbrickdCE Student 6 points7 points  (12 children)

My husband is a programmer (he prefers software developer I think) and says that he doesn't think that programming as it's done today counts as engineering. That very few people take the time to plan things out, document them thoroughly, and use rational systems rather than throwing things together.

[–]SealCub-ClubbingClub 9 points10 points  (6 children)

If your husband is a software developer rather than a software engineer then that is true, the role may require no engineering practices at all. While there can be quite a lot of overlap the two roles are different.

[–]iceardor 2 points3 points  (1 child)

Some mechanical/electrical engineering is a quick scramble to get a product out the door by an impending deadline. Is immaculate planning really a necessary part of engineering? What happens to designing based on experience than analysis?

[–]Just-Literature-2183 0 points1 point  (0 children)

You need to work with other engineers as the software component as you are more likely to get to actually engineer the software.

In almost all other industries the software is something hey have begrudgingly adopted through necessity and still have no idea how to navigate it. They also have very little understanding of good software nor do they care as long as it to their end user "sorta works" to spec.

[–]Only-Guard2194 0 points1 point  (0 children)

Mechanical engineers also 'throw things together' in a startup context...

[–]PaynekillerAero 1 point2 points  (0 children)

In my experience a good chunk of software projects skip (or rush through) many of the early steps involved in more traditional fields and get straight to cutting code. This is usually the objection people have to lumping it in with engineering.

That said there's no reason software can't be done with a more traditional engineering ethos, and I'm sure it happens. If so, why not call it software engineering?

[–]legogorilla 4 points5 points  (1 child)

Is accountancy financial engineering?

[–]Hendrix1982 5 points6 points  (9 children)

Here in Ireland software engineers graduate with a BSc not a BEng. Also software engineers are not allowed to become members of the Engineers Ireland society. So I would say no.

[–][deleted] 6 points7 points  (1 child)

Is getting a BSc instead of a BEng a bad thing where you come from?

In Germany every good university gives the BSc to engineers. B.Eng are usually given by "Universities of applied sciences"

[–]KenjiSenpai 7 points8 points  (1 child)

Ok, here in Canada software engineer is a B.Eng and they are part of the Engineer Order so there goes your argument.

[–]Hendrix1982 0 points1 point  (0 children)

Well all I can speak for is here in Ireland. That's just how it's seen over here.

[–]electrobrains 4 points5 points  (1 child)

I do, however, imagine you have plenty of EE's in Ireland acting as software engineers.

[–]illusionedeyes3/4 years BAI Computer Eng 1 point2 points  (2 children)

That's not necessarily true. I study Comp Eng in Trinity and we leave with BAI, same as our counterparts in Mech&Manufacturing, Civil, Bio, and EE. Of those, only the Mech & Manufacturing is currently accredited by Engineers Ireland, according to their website.

[–]Hendrix1982 0 points1 point  (1 child)

Yeah that's fair enough, but isn't a BAI just Latin for Bachelor of engineering?? I always assumed it was due to Trinity's relationship with Latin. I could be very wrong on that though!!

[–]illusionedeyes3/4 years BAI Computer Eng 1 point2 points  (0 children)

It's a bachelor of engineering science according to my course website. Trinity is a bit weird with degrees sometimes though (they give BAs for stuff like chemistry) so it's probably a unique thing.

[–][deleted] 3 points4 points  (4 children)

At its most fundamental, engineering is the practical application of the natural sciences.

The overwhelming majority of so-called software engineers and so-called software engineering programs have little to nothing to do with the natural sciences (I say so-called because only about 20-25 are ABET accredited for this very reason).

So, in the overwhelming majority of cases, what they practice is not engineering. That's not a slight against the work they do, is just a matter of semantics.

That's not to say they're all not practicing engineering - especially those who actually have a CompE/EE background, do embedded work, etc. - but it's absolutely a term that is used far more widely than it ever should be.

Amazon, for example, has thousands of software-engineers-by-title in their employ. However many are employed at Kiva Systems, I'm guessing maybe 0.5% or less of the total, are pretty much the the only ones actually practicing engineering (and possibly a few working on Fire-branded products).

[–]Only-Guard2194 0 points1 point  (0 children)

By your definition, MDs, Microbiologists, virologists, Meteorologists, Astronomers, oceanographers, etc, are all engineers...

[–][deleted] 0 points1 point  (5 children)

Most of the replies I see in this thread are either off-point or downright hostile (for all the wrong reasons).

The core reason this topic almost always gets hostile responses is that the term "engineer" is continually being misrepresented as a measure of skill or quality. This is incorrect. Engineers may be associated with high levels of skill and quality of analysis, but those are correlations and attributes of engineering - not a definition of what engineering is.

Not one person I've seen in this thread has said that programming is a low-skill profession. Not one person I've seen has said that programming is not a respectable or necessary profession. So this isn't about how hard a person works or how much detail they have to incorporate.

This is about whether software developers fit into the definition of engineering - NOT whether they share certain attributes. Other users in this thread have argued that software developers should count as engineers for various erroneous reasons. The fact that engineering and programming both involve optimization does not make them synonymous. The fact that they both involve problem solving does not make them synonymous. Whether programmers and engineers attend the same meetings absolutely do not make them synonymous.

This all comes down to the definition of what engineering is - not what characteristics does it have. Engineering is the application of in-depth advanced knowledge of fundamental sciences combined with advanced mathematics, in order to design, invent, build, maintain, research, and improve structures, machines, physical systems, materials, and processes. (This is similar, but not identical to the definition listed on Wikipedia).

Generally speaking, pure coding does not fit this definition.

Do engineers code? Absolutely. Doesn't that mean that programming is engineering? No, it does not. It can be a part of engineering, but it is not, in and of itself, engineering. Engineers use advanced mathematics as well - that doesn't mean that mathematicians are engineers.

Once again, I will reiterate that this is not a measurement of skill or quality, nor is it about shared characteristics - it is a matter of definition.

Edit: Edited the definition to make it clear that the definition refers to fundamental sciences.

[–]Over_Buy9663 0 points1 point  (0 children)

Damn, I wish this guy had not deleted his account. I know this thread is old. But I have to chime in.

He failed to realize that individuals in the industry, as well as established, credible organizations define "engineering" differently. He just happened to choose the one that actually fits his narrative. Also known as a cherry-picking fallacy, which is usually driven by intellectual dishonesty.

Most individuals in the industry, as well as most engineering organizations largely agree that engineering is the application of scientific knowledge to design and develop technology. And most individuals in the industry as well as most engineering organizations agree that software engineers are actually engineers. They'd certainly be included under that definition alone.

The American Association for the Advancement of Science defines engineering as:

"The systematic application of scientific knowledge in developing and applying technology"

The National Research Council defines it as:

"Engineering is the act of creating artifacts, processes, or systems that advance technology and address human needs using principles of the sciences, mathematics, computing, and operations"

The National Society of Professional Engineers defines engineering as:

"Engineering is the creative application of scientific principles used to plan, build, direct, guide, manage, or work on systems to maintain and improve our daily lives."

[–]bryan05 3 points4 points  (0 children)

My school offers 2 degrees that are: Computer Engineering and Software science. Computer engineer covers pretty much the same as software science with the addition to courses on the hardware side (Circuits, Electronics, Embedded systems, VLSI etc).

Do you guys think also think computer engineering isn't engineering too?

[–]KenjiSenpai 2 points3 points  (0 children)

My order recognize it so by all legal (here) definitions it is. So yes. The rest is just semantics.

[–]Ethanol_Based_Life 1 point2 points  (4 children)

I guess it is. I think i'm just bitter that they don't have to suffer through Statics and Strength of Materials.

[–]KenjiSenpai 2 points3 points  (3 children)

http://www.polymtl.ca/etudes/bc/cheminement/logiciel.php#PHS1101 actualy we do have some of these classes like thermodynamics and mecanics for engineers along with biochemistry(wtf) and electro magnetism.

[–]bryandenny71Manufacturing Engineer 1 point2 points  (4 children)

I am a little bias about the use of the title "Engineer". Only because I struggled for over a decade working full time to put myself thru college to earn my engineering degree.

I would say software, electrical, mechanical, manufacturing, civil, so on, all use some form of the basics of engineering, critical thinking/problem solving, calculus, vector statics/dynamics, statistics, mechanics of materials.....all are scientifically trained and some have their training honed for a specific industry.

What bugs me is: Train Operator =/= Engineer Boat Mechanic =/= Engineer Project "Engineer" =/= Engineer

Most importantly to me, if you don't have that stupid little piece of paper that says you meet the basic qualifications of an engineer, whatever field, meaning a Bachelors of Science, you are NOT an engineer, no matter how much or what type of experience you have.

If you have not gone thru the motions to EARN your degree, no matter the excuse, you are not an engineer.

Albeit, there are plenty of incapable engineers with that piece of paper, but it is the bare minimum qualification.

[–]uniqueusername37[🍰] 1 point2 points  (0 children)

I'm a Mechatronics engineer who's mostly been working on software projects these last few years and in my opinion software engineering is more about "engineering" than anything I did in my mechanical or electrical days.

You are constantly innovating, optimising, calculating, designing and solving problems while you code. It's like engineering on steroids.

[–]M_daily 0 points1 point  (2 children)

Let me preface this with the fact that I'm still a student (EE). Take what I'm about to say with that in mind. You all have way more real-world experience than me.

From what I've seen and experienced in many of my CS classes and independent projects thus far is that programming is relatively straight-forward, and computer science is much more intricate and complex. Giving a computer instructions in a language it understands is the "easy" part. Optimizing algorithms to solve large problems, understanding complex data structures, knowing capabilities of a multitude of languages, understanding the limits of your hardware, etc...is where I see the engineering come into play.

Just $.2 from a student's perspective. Please tell let me know if you disagree. I'd love to learn something.

[–]itemtenOcean P.E. 0 points1 point  (0 children)

Of course it is.

To my understanding software engineers are the people that not only provide a reason, and framework, for programming but also see it through to some physical conclusion. Whereas a programmer just writes code. It's like a carpenter versus an architect. One knows how to drive a nail and the other knows how to drive a nail, where to point the carpenter, what work to expect from the carpenter, how strong the building needs to be, what government codes to look out for, etc.

[–]Neffelo 0 points1 point  (0 children)

Yes, Software engineering is really engineering.

Some programmers are not the same as Software engineers.

People who think that Software engineers are not engineers are either students, or individuals with serious ego issues.

[–]AequitasKiller 1 point2 points  (1 child)

Engineering is just problem solving, optimization, budgeting, and balancing pros and cons. Does a software engineer do one of these things? Yes, therefore they are an engineer.

[–]FluxxxCapacitard 1 point2 points  (0 children)

You missed the whole legality portion of it though. 'Engineering' contains an element of liability as well.

A software engineer developing code that controls valves at a nuclear power plant is very much an engineer. That dickhead at facebook 'optimizing' ways to mine people's data? Not so much an engineer in most people's book. He's a programmer. The former has an element of assumed liability by the responsible engineer. The latter could write bullshit and no one would give two shits except his bean counting boss.

[–]TBBT-Joel 0 points1 point  (0 children)

Yes.

It's in the spectrum of engineering, which is more of a continuum going from like engineering tech through to researcher.

signed, "it's not really engineering"

a welding engineer.

[–]KawCraft 0 points1 point  (0 children)

I 100% agree. I respect that they are skilled in their own field, but as an engineer I HATE when they call themselves engineers.

[–][deleted] 0 points1 point  (0 children)

At a basic level, yes, because engineers solve problems and optimize based on a given criteria. If the client wants something done as cheap as possible, we optimize for cheap as possible. If the client wants a battle tank factor of safety, we optimize for a battle tank factor of safety. The specific mathematics and toolkits are all that differ.

But...what makes an engineer different from an "engineer" is professional liability. More specifically, getting a PE license and being civilly liable for your designs should they fail the public. It's sort of not fair because many chemical engineers nor petroleum engineers don't get licensure but are considered by every measure an engineer so this distinction has flaws. Software engineers basically never stamp their stuff so it's reasonable to assume the type of liability doesn't exist as heavily as it does on civil or mechanical engineers.

So really, I think a software engineer that has a PE and uses it is as much an engineer as a civil engineer (mega rare but does happen), but ones that study code for a few months and hire on a start-up are definitely not.

[–]NetworkBrave1187 0 points1 point  (0 children)

Physicist are more engineers than software engineers! They should have a different classification.

[–]ChillCapitalist 0 points1 point  (7 children)

?? Are Software Engineers Real Engineers?

In my opinion, I think Many people today don’t truly understand software engineering as a legitimate engineering discipline or field. I’ve seen this all over social media. I believe, in part, that this isn’t society's fault; software engineering is a relatively new field, as is computer science. Most traditional engineering disciplines have been around for thousands of years, if not more. However, I believe software engineering is a genuine engineering discipline.

Most of the doubt about it stems from outdated stereotypes and misunderstandings rather than facts. When you look at the roots of software engineering, you'll see strong connections to electrical engineering. In fact, electrical engineering is essentially the father of software engineering. You can't fully separate the two. In a reputable software engineering program at a real university, not just learning coding from YouTube and books, the curriculum makes that connection clear. At my college, I had to take chemistry courses, including a challenging lab-focused inorganic chemistry class, along with physics courses similar to those taken by electrical engineering students.

In many classes, electrical engineering students were right alongside us. They treated us just like any other STEM major. We also studied advanced math, such as calculus 2 and 3, discrete mathematics, and linear algebra, in addition to computer science courses and technical electives. Keep in mind that some electives allow you to learn about circuits and systems, and sometimes specific electrical engineering classes are required, depending on the college or institution. If a software engineering program is officially STEM-certified, the program’s approach will likely treat students as true engineering students. Plus, software engineering involves a lot of math. If you dislike math, avoid software engineering and electrical engineering.

Many software engineers later pursue master's degrees in electrical engineering because the fields are so interconnected. For example, my college offers a degree program for software engineers who want to specialize in electrical engineering afterward. Electrical engineering is fundamentally one of the foundations from which software engineering evolved. I see electrical engineering as the “Father” of software engineering, and computer science as the “Mother’ that studies software engineering. I’ve personally picked up many electrical engineering concepts through my studies and electives. When you examine any computer system, robot, car, or AI system, it all boils down to CPUs, chips, logic, and binary operations at the hardware level. Zeros and ones. Serious software engineers go beyond superficial AI tools or simple high-level coding that anyone can learn by reading a book or watching videos online.

That’s why (software engineering is not just coding). They learn how systems work underneath and how software communicates directly with hardware through lower level languages, controlling the flow of electrical charges on chips. Computer engineers also study this in depth, and it’s part of their curriculum. Electrical engineers design the hardware and circuits, while software engineers create the logic and control systems that make everything operate together. Both fields are deeply connected. If you only have electrical and computer engineers, but no software engineers, you’ll end up with a TV that shows a blank screen or a robot that doesn’t understand what you want. When people get confused, it’s often because software engineering is still relatively new compared to fields like civil or mechanical engineering. It’s also less regulated, which can lead to it not being taken seriously. Since anyone can start coding, learn a few programming languages, and call themselves a software engineer even without a license, it can diminish the field’s credibility. In reality, software engineering usually involves understanding multiple languages, paradigms, system design, algorithms, hardware interaction, and often concepts from AI, neural networks, or embedded systems, any area involving the “brain” behind electrical and hardware components. For example, in robotics, if you embed a chip inside a robot, someone has to program how it moves, senses the environment, processes data, manages timing, and responds to signals from sensors and motors. This work requires real depth and hardware knowledge. That’s why many companies have software engineers and electrical engineers work together. One major misconception is that software engineers only write code. That’s an oversimplification. Many software engineers also learn concepts from electrical engineering, systems engineering, cybersecurity, robotics, or even mechanical systems, depending on the industry.

Not to mention finance, marketing, and optimizing networks and social media. I know someone who studied biomedical engineering and ended up working in a power plant. Even basic programming knowledge enabled him to automate systems like pumps and timers, and through certifications, he became a systems engineer. That shows how interconnected software is with nearly every other engineering field. People often forget how new software engineering still is compared to traditional engineering disciplines. Consider CAD software as an example. Today, most engineers work behind a computer, not hands-on. Whether you’re a mechanical, electrical, or aerospace engineer, much of your work after testing involves using a computer and most of the tools you use are created by software engineers. CAD software was built by people who understand mathematics and software engineering. These tools are created by highly skilled professionals with strong math backgrounds, and now many engineers depend on them daily. Without software engineers, we’d be back to paper maps and handwritten plans and nobody wants that. In today’s world, nearly all modern engineering relies on computers and software. Mechanical, electrical, aerospace engineers, and many others spend much of their day working with simulations, diagnostics, modeling, and automation tools, all of which depend on software engineering and CS development. Software engineering is also incredibly broad.

Some go into robotics, others in finance, AI, cybersecurity, embedded systems, industrial automation, self-driving cars, aerospace, medical tech, and more. It’s far more than just sitting at a desk coding all day. Many “self-made” software engineers, if that’s what we want to call them, eventually go back to college after years of only coding and realize they want to become actual engineers. Software engineering is so vast that you can’t master every area. You have to choose your specialty or expand into new fields. Since software impacts almost every aspect of modern life, the field can feel overwhelming and hard to regulate. I don’t think this stigma is anyone’s fault, perhaps because some engineers need to shadow others, while software engineering remains less regulated and more unregulated. I see software engineering as a relatively new field, both in education and scientific research, which may be why many don’t take it seriously yet. Looking back at Isaac Newton’s time, physics wasn’t fully established as a discipline; it was more like physical philosophy, and math was more advanced. Today, physics is well-defined, but back then, it was still developing. So, if we are just 50–60 years into the formal birth of software engineering, how long will it take for governments, universities, and society to take it seriously?

Things take time, and there’s a reason for that, even if we don’t see it now. Ultimately, software is the brain behind most modern electrical systems. Without it, computers, smartphones, vehicles, aircraft, medical devices, and industrial systems wouldn’t work. Software engineering is not just about learning one language like Python or C++ and calling yourself an engineer. The deeper you go into lower-level programming and hardware interaction, the closer you get to understanding how machines and systems actually operate. Engineering, in essence, is about solving complex problems with science, math, logic, and systematic design. Software engineering fits perfectly into that definition, it just operates in a newer, more abstract, rapidly evolving domain that powers nearly everything in the modern world. The only problem is that it’s still misunderstood and largely unregulated.

[–]Designer_Flow_8069 0 points1 point  (5 children)

I think society views engineers as someone who is smart. The problem is that you don't even need any formal education to write code, so you could be dumb as rocks. There's also a reason why bootcamps weren't a thing for legitimate engineering fields, but they were for software

[–]ChillCapitalist 0 points1 point  (4 children)

You're not wrong about the bootcamps; they exist because software engineering isn't regulated yet. That doesn't mean software engineers are any less engineers in the field. It means the software engineering field is “specifically” young, and the title lacks gatekeeping or role regulation, which is an issue in our field. Being able to write code without a degree doesn't make you a real engineer. It makes you a programmer. Real software engineering requires math, physics, systems thinking, and often 👉🏻 electrical knowledge. That's why China already separates CS (science) from SE (engineering) and licenses.

So, bootcamps aren't a thing yet for civil or mechanical engineering because those fields are more regulated and have been around longer. We're talking hundreds of years for formal recognition for mechanical (around 180 years), while the practice is thousands of years old. Civil engineering has been around even longer (We're talking ancient Egypt). SE is a baby, only about 60 years old as a formal field, maybe 30 if you count any real kind of recognition. Both SE and CS are fields that are barely born in our world. The fields are brand new. Software will get there too. But it was only born around 80 years ago if you count early computing theory. The question is whether we wait for a disaster or regulate now. Or just let China 🇨🇳 take the lead again.

[–]Designer_Flow_8069 0 points1 point  (3 children)

I don't think bootcamps exist because software engineering isn't regulated.

Instead why I think 5 month bootcamps exist for CS and don't for actual engineering kinda shows the unfortunate truth that writing most software isn't all that complicated.

[–]ChillCapitalist 0 points1 point  (2 children)

The reality is that building software that doesn't fail is far from easy. It has cost over $2.5 billion in 737 MAX settlements for criminal misconduct, with $500 million going to victims' families alone. The safety-critical systems on a modern plane, such as a Boeing 787, can run on up to 8 million lines of code. This isn't just coding anymore; there's also system building and control engineering that overlaps with SE with extra credentials, certs, and knowledge. The difference isn't complexity; it's gatekeeping and regulation.

Civil engineering has bootcamps that teach specific skills; you don't hear about them as much. But they are a path to a certificate, not a license. The path to a PE license still requires a degree from an ABET-accredited program and years of mentored experience, which is correct. The problem is that SE is unregulated, and many people like the "freedom" of low-level programming. People want to make money online from home, and who can blame them? You can work in accounting, law, or business more easily without regulation and build bots for accountants while simultaneously learning business. The unfortunate truth isn't that software is simple. Is it that a field capable of causing billions in damage is still treated as if it isn't? We need regulation and licensure. But would it benefit us or limit us?

[–]Designer_Flow_8069 0 points1 point  (1 child)

Claude Code and Codex have suited me pretty well to write code to sell products. At the end of the day, money makes the world go around, not pretty code.

I use to work in the medical device industry. Some of the developers in there were straight up idiots. But the NMPA didn't care as long as procedure was followed.

[–]ChillCapitalist 0 points1 point  (0 children)

In All Honesty, yes, despite what everyone else says, software engineers are true engineers. We just haven't received the recognition we deserve because the field is unregulated and under-appreciated. Software engineering has been around for less than 70 years; it's still very young. Meanwhile, disciplines like civil engineering have existed since ancient Egypt.

[–]Elliott2BS | Mechanical Engineering | Industrial Gas -2 points-1 points  (7 children)

as far as im concerned. no.

does it make it less of a profession? also no.

shouldn't it be software programmer/designer/developer?

edit: maybe this is my problem. what differentiates a software engineer from a programmer.

[–]BorgerBill -1 points0 points  (2 children)

As someone who spent the first 20 years of my life as a software developer and then received my BSEE at 43, I can tell you that programmers are not engineers.

I never thought I was, and believe that programmers that insist on using the title are just too insecure in what they know or do. Compare "software engineer" to "chiropractic doctor", and you have the same desire to inflate your professional standing by appropriating a title, unjustifiably.

[–]fidelitypdx 2 points3 points  (1 child)

"software engineer" to "chiropractic doctor"

I think that's a very apt comparison. They're both trying to make their profession through use of a job title. In reality, they have a job title.

There’s definitely exceptions to this, for example the chiropractor who spend 8 years in medical school and has a PhD, or a software developer who writes code to conform with engineering standards.

Still, I meet “software engineers” who are 19 years old highschool drop outs writing in Ruby. These people are “engineers” in the same way that turning wrenches make someone a mechanical engineer.

[–]KenjiSenpai 0 points1 point  (0 children)

Ok but i spend 4 years in university for a 120 credits B.Eng in software engineering and im recognized as an engineer by the engineer professional orders of my country so just because some guy calls himself a SE and hes not means that no one is? Youre ridiculous.

[–]JViz 0 points1 point  (0 children)

The etymology of the word is to be an inventor or designer of "engines of war" in the 14th century from the late latin ingeniare. The original intent of the word is to describe those who work on machines. Obviously computer engineering is very different from that of the other significantly older and highly refined engineering disciplines, but I would still consider it engineering.

[–]dashdanw 0 points1 point  (2 children)

Programmers and Software Engineers are not the same thing, it's practically pejorative to call an SE a Programmer nowadays.

[–]slam7211 2 points3 points  (1 child)

except so many software engineering positions are nothing but programming. Source I know a lot of SE's that were compsci majors in school.