5 ms·
Ask HN: Difference between programmer, developer, and engineer?
Ask HN: Difference between programmer, developer, and engineer?
- itcmcgrath 16y agoA programmer programs computers, a developer develops real-estate and an engineer engineers engines. Just kidding, obviously. The question is highly subjective to the organisation using those titles, but generally you will find Programmers, Software Developers and Software Engineers perform the exact same role. I've notice some people do get a bit touchy about what you call them though... By the way, this has been discussed to death on StackOveflow http://stackoverflow.com/search?q=Difference+between+programmer,+developer,+and+engineer%3F http://stackoverflow.com/search?q=Difference+between+program...
- cancelbubble 16y agoEngineer seems to be the preferred choice I see nowadays. The name seems to infer higher prestige, IMO. Kind of like web designer -vs- User Interface Engineer or even just User Interface Designer. Gotta have them fancy titles, you know?
- ams6110 16y agoI'm of the old school I guess, and I think "Engineer" has a special meaning that generally does not apply to what most software developers/programmers do. To me, the term "programmer" connotes a person who is performing more or less rote translation of specifications or a detailed design into software code. "Developer" connotes a more holistic involvement in the entire process of constructing software applications. YMMV.
- rbanffy 16y agoIndeed. Weinberg's Second Law states "If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization". I am glad engineer is not "synonymous" with "programmer".
- hasenj 16y agoTons of companies refer to their programmers as engineers; "our engineering team is working on the issue".
- rbanffy 16y agoIt's specially insulting when said "engineers" build things like Sharepoint...
- dheerosaur 16y agoIt's even more insulting when they are used just to fill some Excel sheets and monitoring logs.
- ibejoeb 16y agoJust the other day I was actually thinking about this and about how the titles often don't imply job function. I jotted something down that I was hoping to elaborate on, but haven't done so yet. So as not to seem like a shameless plug, the URL in my profile anyone's interested. Not much to see, but perhaps someone has thoughts.
- intellectronica 16y ago80s, 90s and 00s. The increasing demand for and status of programmers resulted in titular inflation. In the late 80s - early 90s the popularity of personal computing brought many people who would previously look down on programmers into the ranks, and in order to sound more appealing they started calling themselves "developers" (Microsoft played an important role in this transformation - they correctly identified programmers as one of their most important group of customers and probably figured calling them a fancy name would help customer loyalty). Google may be identified as responsible, indirectly, to the second transformation. Unlike other companies Google did, in fact, hire many engineers (people who were trained as engineers, that is) and created a climate in which doing anything useful on the web begets the title.
- krschultz 16y agoHaving both a mechanical engineering degree and a comp sci degree, and having had jobs in both fields, I really think most software creation is not "engineering". I prefer software developer as the proper term. When I was a kid, I built a lot of things for fun. I would tinker in the shop and build a go kart or a boat. If it broke, I made it stronger. It was fun, creative, and looked a lot like engineering when I was playing with machinist tools. There was even a lot of intuition and experience going into the designs. But that wasn't engineering. Right now I'm doing some engineering. I have a CAD model open and I'm building a mathmatical model of the stresses imposed on it. We iterate the CAD model based solely on the math. The draftsman had made a first pass at it, I came back and said these areas need to be strengthed and these can be lighter, he adjusted the model, and we rechecked the math. There was never a real part created because it is simply too expensive. The cost of this part, once forged and machined, exceeds $85k. So we will be working on the model and tweaking it until we have a design that we know works. And then we'll both go on to do other things and at some point a few months from now it will get made by other people who I probably will never even meet and then I will show up again when we test it. In contrast, most software developers work directly on the final product. There is no model. You might make a spec, a test suite, a UML model or sketch of how you think it should work, but there is no testing on that. That is a hypothesis not a model. Nobody ever stands there with a UML model in a production envirement and runs tests on it for twice as long as it would take to code it. So software developer seems like the right name to me. This is far from a knock on software development. A lot of times I think engineering is more straightforward. I either pull formulas out of a book or plug it into FEA modelling software and look at the pretty colors. But the "engineering" part of the title for me speaks to the process I employ not me being superior to anyone who is not an engineer. I just think "software engineer" is a funny title for people who write code on the final product 99% of the time. We don't call designers "photoshop engineers" even though a lot of them are super smart and super skilled at what they are doing.
- hasenj 16y agoIt's all semantics. It comes down what's the definition of engineering. I personally think we shouldn't look for metaphors in other fields with "science" or "engineering" in their names. A program is a programmer. Developer is also fine, but it implies a bit more than programmer. Programmer can be someone who just programs the machine to implement the ideas of someone else (product managers). Developer implies someone who develops these ideas, not just implements them. I think "Hacker" is a fine word to describe a programmer/developer. It implies a sense of ownership and pride and craftsmanship.
- lylejohnson 16y agoThis seems like an appropriate thread in which to mention Glenn Vandenburg's presentation on "Real Software Engineering". He's made this presentation several times over the last year; I happened to see it at the Ruby Hoedown in Nashville this summer. Highly recommended. "Software engineering as it’s taught in universities simply doesn’t work. It doesn’t produce software systems of high quality, and it doesn’t produce them for low cost. Sometimes, even when practiced rigorously, it doesn’t produce systems at all. That’s odd, because in every other field, the term ‘engineering’ is reserved for methods that work." http://confreaks.net/videos/282-lsrc2010-real-software-engineering http://confreaks.net/videos/282-lsrc2010-real-software-engin...
- golgo13 16y agoHere in Texas, I've always heard that you cannot call yourself any type of engineer without being licensed as a Professional Engineer. Is this still true? This came about when the MCSE was still around. http://en.wikipedia.org/wiki/Microsoft_Certified_Professional#Microsoft_Certified_Systems_Engineer_or_M.C.S.E http://en.wikipedia.org/wiki/Microsoft_Certified_Professiona....
- blahblahblah 16y agoProgrammers write code to someone else's specifications. They're not responsible for macro-level design. A developer is intimately involved in the design of the software and also writes code. An engineer applies scientific principles to design useful systems that act upon the real physical world or a mathematical model of it.