8 ms·
I also have a problem with calling developers engineers. Heck, I would be offended if someone called me a developer rather than a programmer. But unfortunately
by mikorym 6y ago
I also have a problem with calling developers engineers. Heck, I would be offended if someone called me a developer rather than a programmer.
But unfortunately even the degrees themselves become less significant. A PhD in mathematics used to mean more than it does now. But another point is that with global literacy going up, scarse skills are now not based on the amount of people with certain degrees, but rather with inherent abilities that are uncommon. (Take Fortran coders as an example.)
- remmargorp64 6y agoWait... so in your mind there is a distinct difference between a developer, programmer, and engineer? Because in my mind, they are all the same. How are they different, in your mind?
- bachmeier 6y agoThe same argument used to call a programmer an engineer could be applied to anyone that writes for a living, any doctor, any lawyer, well pretty much anyone. We're all "engineers" unless we're doing something completely mechanical.
- remmargorp64 6y agoAccording to the dictionary, an "engineer" is a person who designs, builds, or maintains engines, machines, or public works. A computer is a physical machine that runs programs which are encoded digitally on physical hardware (memory). I could see an argument for considering a computer program to be an engineered "machine" that runs on a turing-complete computational platform. Just because a computer program is digital doesn't mean that it's not an engineered mechanism. In fact, early computer programs did run on physical hardware in a physically mechanical manner. A doctor or lawer, on the other hand, is not building any type of machination. They are diagnosing patients and having arguments with judges. What exactly are they engineering?
- bachmeier 6y ago> According to the dictionary, an "engineer" is a person who designs, builds, or maintains engines, machines, or public works. That's exactly the point. Programmers write programs. They don't design engines, machines, or public works. Programmers are excluded from the very definition you're quoting. If you want to expand the definition to include the application of scientific methods to solve a problem, so that it includes someone that creates a Javascript single page web app, there's no way to exclude those other professions. Programs are not machines by any conventional use of the term.
- dumbfoundded 6y agohttps://ncees.org/engineering/pe/software/ https://ncees.org/engineering/pe/software/ You can become a licensed software engineer
- wyclif 6y ago"NCEES discontinued the PE Software exam after April 2019."
- dumbfoundded 6y agoTrue. Looks like only 81 people took it in 5 years. IEEE also seems to offer a certification. In any case, software engineering seems to be considered a legitimate engineering discipline.
- jeromegv 6y agoIn Canada you can't call yourself an engineer unless you studied engineering in university and went through licensing. It's not really enforced in tech, but for me the definition is someone who at the minimum studied an engineering degree. Calling yourself an engineer when you studied Computer Science is a bit odd to me.
- indiv0 6y agoI'm fully OK with the distinction because of the licensing process and strict requirements on engineer-certified work, but as someone with a CS degree from a Canadian university I can tell you with confidence that my friends in the software engineering pathway had probably 90% the same course load as I did. Really the only major difference at our university (IMO) was that they had a capstone project they did as a group and took two semesters, while mine was done individually and took one semester.
- ceejayoz 6y agoThe course load isn't the critical aspect, though, is it? Licensing typically means professional standards set by a licensing body, continuing education requirements, insurance/liability rules, etc.
- indiv0 6y agoAbsolutely, not disputing that. I just took offense to the "Calling yourself an engineer when you studied Computer Science is a bit odd to me" statement. I don't think the degree makes the difference, the licensing does.
- seemack 6y agoI don't believe you would be able to get the licensing without the degree so saying the degree doesn't make any difference doesn't seem accurate.
- lainga 6y agoIn my experience at UVic (6 months fresh) the CS students did more theory of computation, and SEng had formal requirements and specification writing, engineering economics, and project management courses that CS did not. And also yes, the capstone. So, those are the features which distinguish software big-E iron-ring engineering from computer science, in my mind. e: and yes, cf. the sibling comment, some of those courses were mandatory curricula set by The Professional Body Formerly Known As APEGBC (I forget what they're called now).
- HenryKissinger 6y agoNot the person you responded to, but my $0.02. Developer: codes websites and apps. Programmer: writes computer code. Encompasses developers. Engineer: builds bridges, rockets, cars, missiles, smart tvs, gaming consoles, computers, power stations, electric infrastructure, water treatment plants, etc.
- C1sc0cat 6y agoDesigns bridges :-) its the navvys that build them
- deleted 6y ago[deleted]
- theandrewbailey 6y agoDeveloper: builds subdivisions and "develops" real estate. Related: I've come across a handful of programmers that describe themselves as "contractors". So you hang drywall and install toilets?
- lmm 6y agoYou're a contractor if you work on contract. Just as you're a consultant if you consult. (I'm most comfortable with "developer" because that corresponds most closely to what what I do feels like. I don't spend so much of my time actually programming, but very little in software is engineering-like)
- deleted 6y ago[deleted]
- nck4222 6y agoIn my experience most people use them interchangeably with no distinction between them. The only time I've seen anyone show disdain for one term vs another is here on HN. I've never cared what people refer to me as, and I've never seen anyone voice a preference for it among people I've interacted with. I call myself a Software Engineer, because pretty much every job title I've had has used that term.
- monkpit 6y agoEngineers are typically required to have a license, have agreed to some code of ethics, and typically will have a membership in a professional organization. Like mechanical engineers and the SME, or electronic engineers and the IEEE.
- heisenbit 6y agoTrue in the US, not necessarily true elsewhere.
- rofws 6y agoThey're considered the same nowadays mostly because they've been doing overlapping jobs. Even worse, 'entrepreneur' is something that tells me absolutely nothing concrete about what the guy does. But to come to your point, in my mind - an engineer is the one who designs the software, a programmer is the one who actually writes good code to make that design a reality, and a developer is a blanket term for someone who does both (or more) jobs.
- remmargorp64 6y agoBut according to the dictionary, and engineer is a person who designs, builds, or maintains engines/machines/public works. An engineer isn't just someone who designs things... but also someone who builds and maintains them. Wouldn't that mean that even a lowly programmer who is just simply maintaining code is also an engineer?
- mikorym 6y agoEngineer: Someone qualified with a B Eng or equivalent. In some countries this requires a masters level as well. Programmer: A person who writes computer programs. I would personally also imply that the programs are typically not deployment of other programs, but this is my own view and not a standard definition. (Actually all of these are not standard definitions. At least, not anymore.) Developer: A web developer; A person who writes or deploys applications. In the web era I guess most developers have some inherent focus on the internet as a client interface. I would also add: Hacker: A person who likes to probe things until nothing jumps out anymore. (These days people call this a White Hat.) Cracker: A person who likes to probe things until nothing jumps out anymore. Then they probe some more where they really should not and the police get uneasy. (These days called a Black Hat.)
- umvi 6y ago"hacker"/"cracker" are terms only used/understood with nuance in the tech community. For the non-tech community: hacker = person committing computer crimes (black hat) cracker = a tasty snack (or, if you are in the American South, a contemptuous term for a white person) tinkerer = someone who tinkers around with stuff (what tech community traditionally called hacker as in hacker news)
- mikorym 6y agoThe top two are wrong. The concrete definitions are: Hacker: A programmer; someone who embodies the spirit of the programmer's way of thinking Cracker: A programmer that commits crimes by illegally breaking in to systems.
- fingerlocks 6y agoA programmer writes programs, but a developer writes applications? Really odd line to draw in the sand. If I build an iOS app that streams video to a webpage, am I developer or a programmer?
- mikorym 6y agoA developer is a type of programmer.
- decafninja 6y agoWhere did the term "software engineer" originate? The only anecdotal observation I had is that people in nontech, non SV companies use the term "developer". People in SV style tech companies use the term "engineer". YMMV. The line is blurring though, as I see the term "engineer" becoming more common in nontech companies too. Just like how leetcode interviews are spreading too.
- mcguire 6y agoBack in about 1970, various people realized that writing code was not the cakewalk in the park that everyone (who did electrical or mechanical engineering) thought it would be. See "software crisis". They decided that "we would have to get serious" about this whole software production thing. Some people like C.A.R. Hoare and Edsger Dijkstra said something to the effect of "formal logic..." to which the reply was, "Hol' up, there. That's too hard." They then assumed the term "software engineering" and went off in the '70s, '80s, and '90s to develop stuff like UML and the software engineeing lifecycle requirements -> code -> testing -> acceptance V-thing. For the cynical computer science programmery-type person such as myself, the end result seems to have been the software engineering degree, sort of a lite CS degree (just enough to be employable) with more project management and what-not. At least it's more comprehensive than information technology degrees.
- analog31 6y agoTruth be told, a lot of people with engineering degrees or titles are not doing any real quantitative engineering. Probably some sort of 80 20 rule in any field. Most "engineering" is just organizing and arranging things, fitting building blocks together. A lot of engineers stay "at the bench" just long enough to go into management. The people who keep their quantitative skills end up getting all of that kind of work.
- alistairSH 6y agoIMO, developer and programmer are the same. Engineer implies a higher level of skill WRT establishing and following processes designed to minimize risk. A software engineer, like their mechanical or civil equivalents, has a strong sense of duty WRT building things that are useful, safe, reproducible, etc. No doubt the line is gray. But, your stereotypical web app developer (failing fast while chasing a unicorn) is not an engineer. In the real world, I'd expect Boeing to employ many software engineers [insert 737 Max joke here]. Google and Apple would employ a mix of engineers and developers. And a company that builds CRUD apps on contract would be almost exclusively developers. All of this ignores the licensed engineer's opinion, which is often that none of us are engineers because we don't have to pass a licensing exam. And often don't even have to pass a particularly rigorous academic program.
- scarface74 6y agoNo doubt the line is gray. But, your stereotypical web app developer (failing fast while chasing a unicorn) is not an engineer. That could just as easily describe Google and it is full of “smart people” (tm)
- alistairSH 6y agoAnd I wouldn't call those developers engineers either. I said as much in the next line of my comment... Google and Apple would employ a mix of engineers and developers.
- mesaframe 6y agoSo, whom will you exactly call an engineer? A person with degree or a person with a specific set of skills? If skills, then can you enumerate few of them?
- alistairSH 6y agoGenerally, any licensed engineer (PE or non-US equivalent) would be an engineer. That usually means a proof of skills via professional exam. Somebody could have an engineering degree, but not be a practicing engineer at all. Of course, there is no PE for software. So, within our industry, it's a lot more squishy. There's a bit of "I know it when I see it" here... If you're building complex systems with an eye for reliability and/or safety, you might be an engineer. If you're just building a business/consumer app, using infrastructure and tooling that somebody else built and maintains, you might not be an engineer. With all that said, as a hiring manager, I'm not going to be hung up on what title you held at a previous job, as long as you appear capable of doing the job now. And my career has mostly been on the "just a developer" side of the line - there's nothing wrong with that. I'm simply not building software that has massive negative repercussions if I get it wrong (beyond impact on my employer's bottom line).
- toohotatopic 6y agoTo me, those are roles that describe different aspects of software creation. Depending on the job, those roles are needed in different proportions. Engineers apply math to create systems. Without Newton and his math there wouldn't be engineers or the other way round: engineers are those who create the stuff that is only possible with Newton's math. Since only few software needs math to that degree, rarely any software is developed by software engineers. Software developers on the other hand are like real estate developers. They don't build walls, they don't do structural analysis. Instead they combine systems. Unlike real estate developers, they mostly do the plumbing by themselves. Programmers are to engineers what words (Greek: grams) are to math. They focus on the language and care about expressing ideas in program code. Then there are also software designers and architects who care about the overall system structure.
- jkqwzsoo 6y ago> Software developers on the other hand are like real estate developers. They don't build walls, they don't do structural analysis. Instead they combine systems. Unlike real estate developers, they mostly do the plumbing by themselves. I like this analogy, because it confirms my personal biases/discomfort about web and app developing falling under the same umbrella of "engineering" as nuclear reactor design, missile guidance, and the worldwide chemical industry. However, to advocate against my biases, in my field (ChemE), most of the fundamental work has been done. Very few BS graduates in chemical engineering will design a distillation column or a chemical reactor. Again, most of the basic science and engineering has been figured out long ago (which is why most research ChemE looks more like chemical physics, molecular/systems biology, and materials science than reactors and unit operations). So, to an approximation, a chemical engineer won't "build" something. They'll stitch together components that were figured out a century ago. In fact, this was the entire point of "unit operations" -- black boxes that can be represented as a functional transformation on their inputs to produce outputs, and can be solved, quasi-linearly, to estimate the overall inputs and outputs of a chemical process. In that case, by the same analogy, they wouldn't be "chemical process engineers", but "chemical process developers". Yet I wouldn't suggest a chemical engineer who pulls correlations out of Perry's isn't really an "engineer", so with critical review, it's hard for me to justify a believe that somebody who stitches together APIs for a living isn't equivalently an engineer. [Edit: a relevant xkcd: https://xkcd.com/1988/ https://xkcd.com/1988/ -- Most engineering doesn't seem to be that different]
- yesenadam 6y agoI always thought calling programmers engineers was very weird until I watched this great talk: Real Software Engineering, Glenn Vanderburg, Lone Star Ruby 2010 https://www.youtube.com/watch?v=NP9AIUT9nos https://www.youtube.com/watch?v=NP9AIUT9nos which explains what various kinds of engineers actually do. Not at all dry and boring like it might sound! From the YouTube blurb: 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. What then, does real software engineering look like?
- kyuudou 6y agoSounds like some of the cynicism behind Dijkstra's bit on software engineering[0] "A number of these phenomena have been bundled under the name "Software Engineering". As economics is known as "The Miserable Science", software engineering should be known as "The Doomed Discipline", doomed because it cannot even approach its goal since its goal is self-contradictory. Software engineering, of course, presents itself as another worthy cause, but that is eyewash: if you carefully read its literature and analyse what its devotees actually do, you will discover that software engineering has accepted as its charter "How to program if you cannot."." [0]https://www.cs.utexas.edu/users/EWD/transcriptions/EWD10xx/EWD1036.html https://www.cs.utexas.edu/users/EWD/transcriptions/EWD10xx/E... Edsger W. Dijkstra's "On the cruelty of really teaching computing science"
- yesenadam 6y agoI was very sceptical too, but when I watched it, it all sounded very common-sensical.
- walshemj 6y agoReally I recall working for one on the big civil consultancies and we had one of our bridges fall of its supports once. And lets not mention the new airport in Berlin (or the NYC tube lines) in the context of low cost.
- umvi 6y agoI agree, I tend not to call myself an engineer because I don't have a PE license and never took a PE exam (though at one point I almost took the PE exam for electrical engineering). However, I was using the terminology of the article. On a side note, when people ask what my job is, I usually say "programmer" or "software developer". For some reason I just feel uncomfortable calling myself an "engineer", I think I find it is just a bit pretentious.
- WilliamEdward 6y agoI think you're right, it just feels a little wrong to claim a title so easily when others work hard in a specific practise to earn it and have standards designated by law for it.
- C1sc0cat 6y agoOr know the right people - certainly in the UK its who you know not what you know.
- HenryKissinger 6y ago> scarse skills are now not based on the amount of people with certain degrees, but rather with inherent abilities that are uncommon. (Take Fortran coders as an example.) Soft skills and people skills are also scarce skills, in my experience. You can always teach a monkey a new trick (you can always teach a fresh looking young man to program in Python or to solve a differential equation), but you can't as easily teach them to: communicate in a professional manner, talk like a professional to other professionals (both people above you and people below you), write clearly, concisely, and without grammatical or orthographical mistakes, sell yourself or your product, etc. The geeks will not inherit the Earth. Socially sophisticated people will inherit the Earth.
- new2628 6y agoAdequate comment for the user name :)
- burntoutfire 6y ago> I also have a problem with calling developers engineers. I held this point of view for a long time but, after lurking at r/engineering, I've learned that their jobs are (depressingly) similar to ours. I.e. it's almost never deriving things from first principles, but rather trying to quickly bolt together a solution out of pieces looked up at different vendors' catalogs. Most engineers don't even remember the basic equations they have learned at university. > Heck, I would be offended if someone called me a developer rather than a programmer. It depends on the specific job, but currently, I can spend 30 minutes changing one line of code followed by one week of deploying, testing it, making sure the configs are all right etc. So that's 30 minutes of programming followed by one week of "installing dishwashers" (as the joke on the team goes). Lately, I see myself more of a software configurator than creator (my nominal job title is a backend web developer).
- battery_cowboy 6y agoThe new "software engineer" is just a software assembly line worker. I guess the same goes for other engineers. I would imagine the quality of software engineer will get worse over time as it becomes easier to assemble software from an assortment of black boxes.
- joelbluminator 6y agoIs it getting easier though? Did you try "modern" web development lately? Good luck piecing together a working website...
- outworlder 6y agoIt is easier. If you wanted to create a web application from the dotcom era, you could probably knock it out faster by one or two orders of magnitude. It will probably look neater too, and you won't spend days or months tuning it so it will look decent in IE. We even have amazing CSS capabilities now. If you wanted to create something that's better than the pages we had in the Geocities era, you can do that in 5 minutes (download some static page generator, add a theme and voila). When it was unveiled, the GMail frontend was a remarkable feat of engineering. Nowadays? Polishing to that extent (also scaling, etc) will take time, but creating a knockoff UI is no longer a revolutionary job. Most web developers would be able to single-handedly replicate the basic functionality ('ajax' and lots of client side javascript are no longer arcane). As web development progressed, so did expectations.
- protonimitate 6y agoMy title is "software engineer". I don't have an engineering degree, or even a CS degree. I feel pretty uncomfortable calling myself an engineer since it seems to carry a certain weight of responsibility, but seeing as the title was bestowed upon me by my work place, I'll continue using it. IMO the designations are meaningless until there is a real standard in place for "software engineer" and what it entails (in the US at least). I refer to myself as a "programmer" or "developer", but I use them interchangeably. Anyone putting any real weight on the title is splitting hairs.
- kelnos 6y agoI feel the same way and try to say "software developer" when I can, though, same as you, my official job title has "engineer" in it. Of course, I also see titles like "Customer Success Engineer" and "Technical Support Engineer", which are just as, if not more, ridiculous.
- catlas3r 6y agoI prefer the term "software engineer" for a reason I haven't seen yet in this thread: clarity when speaking to people in other industries. Among many of the people I talk to on a regular basis, if I told them I was a "developer" they would assume that I was a real estate developer. If I told them I was a "programmer" it would be a little clearer, but before I moved into software I worked in the events industry for a few years, where "programmer" means "one who develops event programming." In practice, I could append "software" in front of either "programmer" or "developer" to provide that clarity, but "software engineer" seems to be more common, and to me feels like it more adequately covers the totality of my job, which is as much about measuring, planning, and communicating as it is about producing code.
- babesh 6y agoI think part of the discomfort is that there is no exam that software engineers have to pass (other than a few states) unlike real engineering professions. I suspect and I suspect many others suspect that a large percentage would not actually be able pass a meaningful exam. However passing such an exam would probably only be partly correlated to success in the field. Part of this is because exams are imperfect, part because success in the field is not dependent on engineering skill, and part is because the tech field’s success is based on finding/creating/replacing/owning (new) markets rather than pure engineering. If software is much better than what was there before, even shoddy software engineering will be superior to the existing solutions.
- catlas3r 6y agoThe exams and credentials part is certainly murky. One could argue we make it worse in tech. Among the certifications I hold is at least one with "certified engineer" in the title (RHCE), but that's hardly only ambiguous one, with "engineer" showing up in all sorts of vendor and third-party certs and "architect" and "auditor" also finding their way into many others. Are those phrases misleading? I don't know. I certainly feel like I worked pretty hard to earn and maintain the certifications I hold, but I can't compare the rigour and level of effort to licensure, because that's not required of me for what I do. I also know that there are quite a few "certifications" out there that aren't rigorous at all, that are basically multiple-choice exams you can cram for without actually learning anything. I've never bothered going after a CompTIA certification for that reason. It's a tough problem. On one hand, I despise artificial barriers to entry on principle. On the other hand, being able to understand and trust a person's base level of understanding and competence does have value.
- adverbly 6y agoIt's funny, I actually have an undergraduate and graduate degree in engineering - but not software engineering - and I work as a software engineer. Yet I tell everyone that I'm a programmer/developer. To me, having seen what goes for engineering in other fields, I feel like a small subset of engineering jobs in non-software fields is true engineering. To me, that bar is inventing something worth patenting. I'd say its an even smaller subset in software. The thing is, I wouldn't say it the highest value work is the stuff that is true engineering. Actually implementing ideas is so much more value adding and difficult in my opinion. Execution and front lines gritty work is incredibly undervalued in every industry. So I prefer to go by developer because I take more pride in that part.
- bentcorner 6y agoI immigrated into the US (from Canada) to work for a tech company, and a piece of advice I got from our legal dept was: Whenever you cross the border and the guard asks you what your job is, answer "Software Engineer". IIRC it was important I answer this correctly because that's the role that I was permitted to work for (under a TN, later a H1B; I'm now naturalized). Saying "programmer" or "developer" may have been fine (I don't know), but I do recall some emphasis on getting this right.
- seemack 6y agoIt was important because there were specific job requirements that had to be met in order to qualify for a TN visa. The expertise you were expected to be bringing in as a Software Engineer was architectural level knowledge of coding. The TN visa could be revoked at any time which is why you want to be really clear when crossing the border. I worked for Microsoft and they recommended that I bring my full job description package and lawyer's letter every time I crossed the border The best part was when I had to go to the border to apply for the TN visa. The poor guy had a list of questions to ask and clearly had no idea what any of it meant. "And will you be doing any <...long, dramatic pause> programming?"
- Hamuko 6y ago>I also have a problem with calling developers engineers. Well, I for one am both a developer and an engineer. I have a B. Eng (equivalent) degree in ICT and I work as a full-stack dev. I don't really have a problem with using either "developer" or "software engineer" to describe myself.
- pjmlp 6y agoDepends where one comes from. I have no issue calling myself engineer, because I have a degree in Informatics Engineering and in Portugal it is a professional title validated by the Engineers Organization and all universities must have a green light to offer such degrees. What I have an issue with, is developers feeling like calling themselves "engineer" after a six months bootcamp, or not having any kind of engineering degree to start with.
- the_jeremy 6y agoI have a mechanical engineering BS, but I work as a "software engineer". None of my engineering friends in college had a problem with "software engineer" as a title. Pretending that engineer is a restricted title does not match the reality of the world today, and is unnecessary at best and creates miscommunication at worst. Language evolves and certain words become more lax and widely applied. We can prevent it in cases that are sufficiently technical (Zoom does not have E2EE, that's a blatant lie), but getting the world to use "literally" as it was originally defined is no longer feasible IMO.