Hacker News new | ask | show | jobs
by Swizec 4113 days ago
I keep repeating myself on Hacker News, but once more, we've found the difference between Software Engineer and Computer Scientist. One makes things work, the other is a mathematician.

Why do we keep conflating the two?

4 comments

You should be careful with the term engineer. By definition, engineering is the application of scientific and mathematical knowledge to solving practical problems. Without knowing and understanding the science and math behind computing and software, one can hardly claim to be a software engineer.
The title is cheap in the US and in some companies (cough) they slap it on every position that directly touches the product.
So many programmers have this weird inferiority complex when it comes to the term "engineer". Not you, but those who think that most programming can never be called "engineering" because people don't die if you introduce a software bug[1] (as if the only kinds of modern "engineers" have to do with immediately safety-critical things). I prefer the plain "programmer" myself, but I don't see the big deal unless "engineer" is a protected title wherever that person lives.

[1] Note that I said "most programming".

I'm a little sheepish about using it around the engineers in my life because I know I'm not legally liable and held accountable to the same standards they are when I make a mistake in the software I ship.

I like to think I take a certain amount of rigor in the choices of tools and processes and design philosophy that reduces the amount and impact of bugs... but if we get a customer complaint about our product we don't generally issue a recall and lose millions of dollars.

It's not that I spend any less time learning theory and application and it's certainly no less challenging in some cases than even mechanical engineering but... it's a liability thing.

Also, I don't write software for aerospace control systems.

I've seen companies advertise "software engineer," positions whose primary responsibilities included running a fleet of Wordpress blogs.

Just a matter of perspective I guess.

Like I said: inferiority complex.
For me it's not a matter of severity of consequences, but rather in all other professional fields to be called an engineer you need to pass a PE exam. Having not taken that exam, it just feels like taking a cheap shortcut because it's not widely regulated.
My position on "computer science is math": http://www.scott-a-s.com/cs-is-not-math/ HN discussion: https://news.ycombinator.com/item?id=3928276
I'd argue that it's really a distinction between an engineer, who should understand this stuff, and a technician, who doesn't need to to do a job.

Certain segments of our industry are currently engineer heavy, such as embedded, and some appear to be technician heavy. I don't see that as a problem per se but it clearly causes friction occasionally as we tend to conflate them.

Because you cant be good at either without having an element of the other.

Ideally, they overlap.

Ideally they do overlap. But we don't call people who design bridges physicists even though they know a shitload of physics.

Our field is maturing. These difference are only going to become more important.