Hacker News new | ask | show | jobs
by mwfunk 4770 days ago
No, you're not curious, you're just passive-aggressively pointing out that you don't think programming is engineering, but phrasing it in such a way as to make it sound like this is some universal truth that everyone accepts.

Anyway, the answer is because it is engineering. Not in the capital "E" sense of engineering where you have some sort of official certification from some governmental or professional body that states that You Are An Engineer, By Golly. But it certainly is lowercase "e" engineering in the sense that it is a highly technical discipline that lies squarely in the middle of the spectrum between an art and a science.

Plus, it's just common terminology in the field, so there you have it.

2 comments

But there is an insanely huge difference.

When a credentialed engineer puts their signature to the statement that a particular design is sound, the engineer is liable. Not the company. The engineer. If that bridge collapses, the engineer can be sued. And if the company cannot find an engineer who is willing to sign, that bridge cannot be built.

This is very important. Before we instituted this system, the USA had an average of one bridge collapse per week. And it wasn't nearly as large a country as it is today.

As long as I do not have this kind of liability, and likewise lack the power to tell a company that they are not allowed to release a website with the defects that I can identify, I do not consider myself an engineer. I may be forced to accept that my job title says "engineer", but I am firmly of the opinion that I am not one, and anyone who thinks that I am is uninformed on what it means.

Programming CAN be a system of Engineering (and often is wrt medical and weapon systems). Most programming is done as a craft in businesses, with business needs that reward turn around time and coming in under budget more than ruggedness, or real maintainability.

In a more corporate environment, it tends to favor the use of "Architecture" roles, and the use of many different design patterns even when they are not necessary and only add complexity in the name of "consistency" with other "enterprise" implementations.

Just the same, most software development is a model of crafting, not engineering. The exceptions to this tend to be with designing software that works with physical devices for a given role, not generic computing devices that are virtual representations of business logic.

ABET's predecessor described engineering like this:

    The creative application of scientific principles...
Programming primarily applies logic and mathematics, which is why I have always considered programming/computer science to be more of an "applied mathematics" field, than engineering.

Christ, computer science and mathematics are the only two fields I know of that care about graph theory. To my understanding, graph theory is a post-graduate discipline in mathematics, and a computer scientist's bread-and-butter. What does that tell you?

Anyway, this all kind of hinges on whether mathematics is a science. Personally, it never seemed like a science to me- and I don't mean to denigrate mathematics. Rather, it seems completely apart.

You can learn a lot of graph theory in your early undergraduate years. Only the most difficult problems are really graduate/post-graduate fodder.