Hacker News new | ask | show | jobs
by ams6110 5893 days ago
7) Don't call people engineers when the appropriate term is "developer" or "programmer"
7 comments

As long as it's not "rockstar". :) Check out the amusing discussion that happened when a recruiter innocently asked for a ROR "Superstar": http://groups.google.com/group/boston-rubygroup/browse_threa...
I went to a career fair once where a company was hiring ROR devs. They gave out guitar picks and drumsticks and everything.
At many (most?) of the biggest software companies, "engineer" is the term used to divide technical people (including devs) from non-technical people.
Personally I think engineer is a better term than "programmer".
Engineers precisely specify a problem and then build a solution that's correct to within a tolerance. I'm afraid I don't see the resemblance to programming.
A very precise definition of an engineer? Engineers build tools. Artists build amusements. Scientists build ideas. Programmer = Engineer.
By those definitions I'd consider Software Development as Sciartiginering. It's easier to say developer though.
I have done all three and the motivations and results of each are distinct. If you are Sciartiginering you are not building software. Maybe ASCII art?
You could describe programming that way too, though the "within a tolerance" would probably have to be about input coverage rather than output/behavior.
That depends on the program, I suppose. Some programs require more engineering than others. I think you could make a very good argument for the programmers at Google being engineers.
I disagree. I don't find many similarities between what I do and what a "real engineer" does. I do not consider myself an engineer; I write software. Nowhere in the 18 years I've been doing this for money have I met anybody that could explain what software engineering really is. Without a definition, the term to me is meaningless.
the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software.

That's what they'll teach you at engineering school. Not everyone who is writing software is engineering.

Our friends with the iron ring (if Canadian) are very sensitive and misusing the term engineer will elicit tears.
To expand on this. It is illegal in Canada for anyone without a proper engineering degree to call themselves an engineer. For example a computer scientist cannot call themselves an engineer while a computer or software engineer could.
And yet, one place I worked on a Co-op term in Ontario gave me the title "Software Engineer".
I'm a ringed engineer; I think it's appropriate for non-ringed engineers to still self-identify by that title. An engineer is a person who engineers things.

There's a legal restriction on Professional Engineer and the P.Eng designation, but that's for very good reasons which have to do with liability and the protection of the public. That's a different beast, though, and in the general case "engineering" a solution to a problem is still engineering, whether or not you have a piece of paper telling you it is.

good point and duly noted (though i find your style of offering feedback somewhat abrasive).
i feel like many people prefer "programmer" to "engineer"
If you apply cleverness to solve problems, you're an engineer. Engineering is the verb form of ingenious.
When you're talking about a profession though, engineer means something very specific. It means that you're trained and licensed and can be held legally responsible if whatever you're building should malfunction. Referring to your profession as an engineer when you don't meet those criteria is a bit disingenuous. It's akin to the difference between calling yourself a doctor because you went to medical school, and calling yourself a doctor because you got a PhD in english lit.
They share a common root (L. ingenium) but I'd hesitate to call them forms of the same word.
This is a good point. Traditionally, engineering is more synonymous with structures, engines, tools etc. Where someone takes the prepared plans and develop the final product, they are referred to as a developer/builder/tool maker. Where (usually a team) e.g. architect/structural/mechanical/civil people etc.. work on the design/prepare the plan, they are referred to as engineers. Software developers or even software programmers take the prepared plan or design spec and write code. The software architect / software engineer (ausually a team also) etc.. are responsible for preparing the plan / design spec. Now to cap it all off - there is a middle ground - called an analyst/programmer who analyse, design and develop a solution. (The creative hair dresser - could also accommodate this spot middle ground).
My hairdresser applies cleverness to solve the problem of making my hair look good, but I still wouldn't consider her an engineer.