News for hackers. Stuff that matters.
Re:E.W. Dijkstra Archive: The Humble Programmer by throwaway676565 on Sunday June 19, 2016 @07:50AM (#11932653)
Shocking in his case as he was a true programmer (computer scientist).

Today, people say they're "software engineers" with a straight face, which is a disservice to real engineers. I know because I get paid to code.

If bridges were built like software is...

Re:E.W. Dijkstra Archive: The Humble Programmer by Xophmeister on Sunday June 19, 2016 @08:05AM (#11932689)
There's more to engineering than building bridges. Would you discredit electrical engineers, for example, because PCBs aren't hydroelectric dams? While I generally agree with your rhetoric that software engineering is perhaps not as disciplined, it is still a legitimate engineering discipline, imo.
Re:E.W. Dijkstra Archive: The Humble Programmer by throwaway676565 on Sunday June 19, 2016 @08:45AM (#11932781)
Right, I wouldn't discredit electrical engineers. I can reasonably expect my house not to burn to the ground due to an electrical fire, and my washing machine/fridge will probably fail safe as well. Hardware engineers mostly get a pass in my book, too (when was the last time your CPU hung?).

Meanwhile, Toyota is allowed to ship buggy, untested, unauditable ECUs[0]. How can SE be considered a legitimate engineering discipline when such examples abound?

The "Software engineer" title ought to be reserved for those doing formal verification or at least aiming for high code coverage and otherwise employing proper design and testing methods. Think programmers of NASA shuttle avionics or airplane autopilots.

It's not for your run-of-the-mill startup coder (which includes me).

[0]: https://users.ece.cmu.edu/~koopman/pubs/koopman14_toyota_ua_...

Re:E.W. Dijkstra Archive: The Humble Programmer by fratlas on Sunday June 19, 2016 @09:36AM (#11932924)
I find this interesting - I changed degrees halfway through electrical engineering to computer science (which is still under the engineering school at my university). You're right, EE is much more disciplined, however, computer science/SE still requires an extremely logical thought process, and is applying science/maths to solve real problems. For these reasons, I believe it is engineering (even if somewhat softer than other strands).
Re:E.W. Dijkstra Archive: The Humble Programmer by hga on Sunday June 19, 2016 @09:16AM (#11932863)
Meanwhile, Toyota is allowed to ship buggy, untested, unauditable ECUs[0]. How can SE be considered a legitimate engineering discipline when such examples abound?

In the bad old days, steam boilers would blow up a lot; check your state and maybe local laws and you'll likely see a section to regulate this. Bridges were also prone to failing, and still do due to design errors: https://en.wikipedia.org/wiki/I-35W_Mississippi_River_bridge... (and even then, the bridge was sufficiently over-engineered that it lasted a long time before failure)

As for the EE examples you give, it just so happens I'm about to personally totally rewire a house I just bought that was built in 1910. Relevant things I've noticed include:

The National Electrical Code is drafted and revised in an open fashion, is thoroughly sane, and anyone can buy a copy. My city also makes copies available for free for perusal, and at the counter were you apply for permits and such there was a copy of the combined complete code for residential housing (1-3 stories, 1-2 or 3 families). That version is also online: http://publicecodes.cyberregs.com/icod/irc/2012/index.htm (that's one revision behind the current, many cities like mine prefer to not be at the bleeding edge).

Then there's the permitting and inspection process: while it's obviously ignored a lot, by law you're required to apply for a permit, including plans of what you propose to do. Upon approval, you post the permit at the work site, and call in city inspectors for "rough in" inspection(s), where they will check whatever will eventually be hidden, and they do a single final inspection when all is done. So there's enforcement of the code (at the very least backstopped by insurance companies who will look askance if your unpermitted work results in a loss), in a rather open way, and the city's top dog for this, the Building Official, certainly knew the electrical code when I asked him about the interpretation of one detail.

All car makers, by comparison ... well, there's not even a PE system for this field (https://www.nspe.org/resources/licensure/what-pe), it's too new, and and there's no consensus on even the most fundamental of things. Everything they do is in secret, with no outside oversight mechanisms, and one company we though really had their act together, such that we'd trust their code with our lives, turned out to be utterly unworthy of our trust, that is Toyoda, of course.

My take on this is that this sad state of affairs will continue until a software error kills 4-6 figures of people, and of course there are many domains of software where the rigor that's in theory demanded of embedded systems like cars isn't required. Like, say, this social media site we're using right now.

Re:E.W. Dijkstra Archive: The Humble Programmer by IkmoIkmo on Sunday June 19, 2016 @10:42AM (#11933122)
> Shocking in his case as he was a true programmer (computer scientist).

How was that shocking? Someone has to be the first to introduce or pioneer a distinct profession to the rest of the world, he was pretty much among that select group. It's like saying you're a 3d printer in the past few years, without anyone having a clue this was an actual profession people spent their days on.

And that's today, in a world where we're more educated and more open to the notion of rapidly changing professions. If you want to know, the people who work those desks at the municipality usually have only a high school degree, the mandatory minimum (not for the job, but as a person raised in the Netherlands). And in the 1950s that minimum was only six years of education, i.e. primary school only. None of this strikes me as shocking in this full context, unless you're shocked by the notion there had to be someone to pioneer a profession for the first time in their municipality and we happen to be talking about him and his anecdote.

Re:E.W. Dijkstra Archive: The Humble Programmer by mac01021 on Sunday June 19, 2016 @09:24AM (#11932889)
From Wikipedia:

    Engineers design materials, structures, and 
    systems while considering the limitations 
    imposed by practicality, regulation, 
    safety, and cost.
Perhaps many programmers don't do this, but many do.
Re:E.W. Dijkstra Archive: The Humble Programmer by tribaal on Sunday June 19, 2016 @10:42AM (#11933119)
As it's been said several times on hacker news (sorry for repeating it one more time here):

In some countries calling yourself an engineer without having an appropriate degree issued by an engineering school is a crime (although, seldom enforced in software).

Whether the school should have a software department at all was a big discussion at my school at the time. They decided to keep it.

EDIT: Sorry, to be clear, we agree: it's just adding a bit more information to your point.

Re:E.W. Dijkstra Archive: The Humble Programmer by jean_claude on Sunday June 19, 2016 @11:44AM (#11933332)
I earned a B.S. in an ABET accredited Computer Science program taught by the College of Science and Mathematics at a state University. Before that, I designed electrical control systems and software for industrial machinery, and I still don't consider myself an engineer.

That said, I think 'Software Engineer' is an acceptable title, and is more representative of the work we do in the profession than simply 'Computer Programmer'.

Re:E.W. Dijkstra Archive: The Humble Programmer by tribaal on Sunday June 19, 2016 @01:56PM (#11933841)
My point is that "Engineer" (software or otherwise) is a legally protected term in many countries (Canada, Switzerland,...)

How much you consider yourself an engineer is irrelevant in this case: you either are one because you have a degree from an engineering school (not a university!), or you don't (it's a civilian title in Switzerland's case at least, "Eng." similarly to "Dr.")

Calling yourself a "software engineer" in Switzerland (and according to wikipedia, in a slew of other countries [1]) if you have a university degree is technically illegal - although of course, seldom enforced.

[1]: https://en.wikipedia.org/wiki/Engineer

Re:E.W. Dijkstra Archive: The Humble Programmer by jean_claude on Wednesday June 22, 2016 @01:19AM (#11951720)
>>My point is that "Engineer" (software or otherwise) is a legally protected term in many countries (Canada, Switzerland,...)

Actually, you're looking for the term "Professional Engineer" which can only be legally used if you have at least a B.S. or B.Eng. (or local equivalent) in an accredited program, have taken some kind of certifying exam, and may also require a certain number of years working in the field to obtain licensure. In the US, there is a PE certifying exam for ABET accredited Computer Science and Software Engineering program graduates.

Your Wikipedia link had no information about Switzerland, but it did have this interesting bit about the Czech Republic: "In the Czech Republic, the title "engineer" (Ing.) is given to people with a (masters) degree in chemistry, technology or economics for historical and traditional reasons." Every country is different...

Re:E.W. Dijkstra Archive: The Humble Programmer by peferron on Sunday June 19, 2016 @03:13PM (#11934229)
You say that you "know because you get paid to code", but that's only half of the picture. To really know you would need to work on the other side, in what you call "real" engineering. An insider is much more likely to see the flaws in their own discipline.

I worked for 3 years in power plants all over the world, including dams, and there were delays, cost overruns, structural defects, flouted safety measures, etc. Not really the civil engineering utopia that HN raves about.

Note that I'm not saying that it's OK for software engineering to suck because civil engineering also sucks. Both should try to improve.