7 ms·
I don't think this will be a terribly popular opinion, but I want to offer a counterpoint. Do call yourself a programmer, because we don't deserve to call ourse
by Analemma_ 10y ago
I don't think this will be a terribly popular opinion, but I want to offer a counterpoint. Do call yourself a programmer, because we don't deserve to call ourselves engineers. You want to know some things that define actual engineers, as the term is regulated in some countries?
Real engineers have certification: you know, that thing that indicates that you can actually do your job worth a damn. What do programmers say whenever the topic of industry certification is brought up? Usually, furious opposition.
Real engineers have accountability: engineers in a lot of other industries can be civilly or even criminally liable if their broken shit hurts somebody. What do programmers say whenever the topic of accountability for broken software is brought up? Usually, furious opposition.
Real engineers have unions. You know, that thing that keeps your labor from being exploited by-- just to give some hypothetical examples-- intentionally confusing and exploitative equity renumerance, or floods of H1-B workers. I shouldn't even have to tell you what the attitude towards most programmers is to unions, at least in America.
And whenever the topic of certification, or accountability, or unions, is brought up in the context of our discipline, the response is almost invariably, "Well, it's different for us, because $REASONS". Okay, fine, it's different for us, but then we shouldn't call ourselves engineers, because it's clearly a category error.
- blowski 10y agoI've got certification - I completed the W3Schools HTML intro. What would you put in software certification? If you focus on high-end CompSci stuff, it won't be relevant for the 99% who spend their careers building CRUD apps. If you focus on tools, it will be out of date by the time the exam papers are off the printing press. I agree that there could be industry certification on topics like security and perhaps accessibility. But on everything else, the answers depend on so many factors, they can't be certified in a meaningful way. Also, some of the best software engineers I know don't have certification because they struggle with exams. The ability to pass an exam doesn't make you a better engineer. Certification is nice in theory, but in practice would probably lead to worse results. I call myself a software engineer because it's what managers call me. As long as I don't claim to be able to build a bridge across the River Thames, I don't see the problem.
- NikolaeVarius 10y agoThis is absolutely inane. Do you think that the FE/PE only focuses on things that you do every day? It's to give the world hard proof that you actually UNDERSTAND what is happening and allows you to actually accept responsibility to create things that may actually affect peoples lives. Sure its useless if all you do is work on a react/angular app, but not all software is your standard CRUD app.
- blowski 10y agoOf course a lot of software is much more complicated than simple CRUD apps. I don't touch them because it would be irresponsible for me to do so. But there's no clear line where an app stops being CRUD and starts being something more, so there's no clear line where you stop needing a CRUD programmer and start needing a software engineer. There are some that clearly need certification, and often that is an explicit requirement of the job. Just don't get too hung up on the job title. Managers want to believe their software is so complicated that they need a software engineer to build it. I'm happy to go along with their delusions if they pay me.
- verelo 10y agoI agree with both the parent and this comment; this is why when i read "Software Engineer" i don't consider it to fit in the same bucket as any other "Engineer" in general. As a "guy who writes code" - call me whatever you want, i could probably give myself a fancy title and get away with it, but I am one of the very successful (When compared to the 99%) people who didn't finish school but managed to get by in the tech industry very comfortably. Life is already great, perhaps I just don't deserve to get everything my way.
- blowski 10y agoExactly. If I had been born 100 years earlier (maybe even 25 years earlier) I would have had a low paying menial job. I'm blessed to be in the job that I am, with the pay that I receive, and I am grateful for that every day. I don't use "software engineer" as an ego thing, but because it communicates better the variety of knowledge I have to people that barely understand how to turn their computer on. I get better pay, my employer is happy, everybody wins.
- emodendroket 10y agoAnd while we're at it, what medical degree do these "spin doctors" have?
- lizardking 10y agoThat depends on what you are trying to optimize for. If you are trying to optimize for consistency of language sure, you're right, you should not call yourself an engineer. If you want to optimize in managing your value in the eyes of a person who wants to give you money it's a different story. It's possible this advice doesn't work in every country.
- ryanolsonx 10y agoSo since my bachelors degree is 'Bachelors of Science in Computer Science: Software Engineering', I shouldn't be able to call myself a software engineer?
- sotojuan 10y agoIf you're in the US and want to be extremely pedantic/annoying, then no. ABET (the engineering accreditation society in the US), doesn't have "Software Engineering" as a valid discipline.
- notyourloops 10y agoWill Software Engineering become a valid engineering discipline?
- todd8 10y agoIt is a valid engineering discipline. Engineering is about making useful things, from metal, from concrete, from semiconductors, and from software. Engineering requires the application of methods that use science, mathematics, and processes that have been studied to invent and construct solutions. This is what Civil Engineers do and this is what Software Engineers do too. I see nothing wrong with someone calling themselves a software engineer that has both training (a CS degree for example) and experience (a few years) working in software development.
- lfowles 10y agoThe software engineering PE exam has been offered for the past 3 years. https://engineers.texas.gov/software.html https://engineers.texas.gov/software.html
- todd8 10y agoLet's look at the numbers. Texas and Florida have a PE test for Software Engineers. In Texas the numbers are (see [1]): 2014: 6 people took the test and 2 passed. 2015: 5 people took the test and 2 passed. 2016: 3 people took the test and 2 passed. Only California has more programmers than Texas, see [2], and it appears that there are 6 Professional Engineers at most in Texas in the field of Software Engineering out of over 20,000 programmers. My conclusion is that the title of PE in Software Engineering is currently pretty meaningless in the US. [1] https://engineers.texas.gov/exam_passfail.htm https://engineers.texas.gov/exam_passfail.htm [2] http://www.bls.gov/oes/current/oes151131.htm http://www.bls.gov/oes/current/oes151131.htm
- KaiP 10y agoAre certification, accountability, and unions really the defining characteristics of engineering? Directly from wikipedia: In 1960, the Conference of Engineering Societies of Western Europe and the United States of America defined "professional engineer" as follows: A professional engineer is competent by virtue of his/her fundamental education and training to apply the scientific method and outlook to the analysis and solution of engineering problems. He/she is able to assume personal responsibility for the development and application of engineering science and knowledge, notably in research, design, construction, manufacturing, superintending, managing and in the education of the engineer. His/her work is predominantly intellectual and varied and not of a routine mental or physical character. It requires the exercise of original thought and judgement and the ability to supervise the technical and administrative work of others. His/her education will have been such as to make him/her capable of closely and continuously following progress in his/her branch of engineering science by consulting newly published works on a worldwide basis, assimilating such information and applying it independently. He/she is thus placed in a position to make contributions to the development of engineering science or its applications. His/her education and training will have been such that he/she will have acquired a broad and general appreciation of the engineering sciences as well as thorough insight into the special features of his/her own branch. In due time he/she will be able to give authoritative technical advice and to assume responsibility for the direction of important tasks in his/her branch. I don't see anything about unions in there
- olalonde 10y ago> certification [...] accountability [...] unions Basically, what defines a "real engineer" has pretty much nothing to do with engineering? I'd rather define engineers as people who have the skill and know how to engineer.
- sammydavis 10y agoFood workers at the grocery story have all 3 of those (maybe weak on accountability other than losing their job), and they aren't engineers.
- olalonde 10y agoThat is pretty much my point.
- argv_empty 10y agoThose three are claimed as necessary conditions, not sufficient conditions. I agree that "engineer" also implies some degree of technical skill (like understanding the difference between sufficient and necessary).
- crpatino 10y agoAnd chickens have two legs. But it does not make you a chicken, does it?
- shawkinaw 10y agoThe article does NOT say to call yourself an engineer instead, it's not nearly that pedantic. It says to say you increase revenues and/or decrease cost, not that you sling code.
- manyxcxi 10y agoWhat about the part where some of us have engineering degrees and certifications for things like network engineering? Or just various certifications at all for technology specific areas? I hate being called a programmer, am okay with developer, and call(ed) myself a software engineer, and that's why my title said as well. I wasn't the director of programming, and I wasn't running a team of programmers. I ran the software engineering team and I hired software engineers. In my mind, they're not interchangeable terms and have specific meanings. A programmer is someone who can write code, cobble together applications in a generally slapdash fashion, and does not apply a lot of creativity or thought to the how's and why's of what they are doing. They are the front end web dev who can't write pure JavaScript and have to use jQuery and a bajillion other includes just because they don't know how or care about the implications. A developer pays some attention and care, has a reason why they may have made certain decisions, and is generally thoughtful about their core areas of knowledge. Maybe they're not as thorough, have a more narrow window of experience, or generally don't care about 'those other things' like networking, operating systems, protocols, etc. A software engineer knows about OSI, the types of protocols in use by their application, the pros and cons of various libraries, and has a reason that can be backed up with at least some empirical evidence for any of the choices they make. They step back and look at the problem they're solving as a whole instead of piecemeal, and they're generally not shortsighted. They apply rigor, experience, and research to all phases of what they're working on. We were all programmers and developers, some of us get to software engineers if we want- but it's really about the rigor and discipline you apply to your craft. I agree that the fundamental aspect is the accountability, however unions don't mean anything for the quality of your work, and there are ways to certify specific areas of knowledge already.
- paulddraper 10y ago> a bajillion other includes You must be a C/C++ guy :)
- manyxcxi 10y agoHa, I just came off a few hours of writing some, but definitely not my primary languages. A project I was committing some code to most recently was using Babel and Webpack and had like 20+ include statements at the top for some very rudimentary things.
- eagsalazar2 10y agoMan I'm sorry but everything you are saying, at least in the US, is completely contradicted by reality. Some engineering fields have all those things you describe but it is usually because there is a high degree of physical risk to the public, like structural engineers for example. Mechanical and Electrical engineers, for example, at most companies are hired without any such certifications, unions, oversight, or any of what you've mentioned. I have a degree in EE and CS and have worked in both fields doing everything from IC design to app development and the hiring process, oversight, etc has been the same in almost every case - no membership or union required. I have friends who work as ME, Chemists, physicists, etc and the same is true for all of them except in the exceptional cases where they are working on a medical device or something. Really all those things you mention at most companies for most fields of engineering come down the the company culture itself and the technical leadership at those companies. The really funny thing about your take is that in most cases I find that high level software developers have a much stronger cult of engineering excellence that any of those other fields. If you saw the "process" most EE's used to ensure high quality engineering at large companies like Intel you would be horrified. And definitely don't ask those EE guys to write any code, it will almost certainly be terrible.
- eagsalazar2 10y agoAlso, usually I hear this line of reasoning from people in other engineering fields who, in my opinion, are just being babies about the fact that software is so accessible and there are brilliant people doing great work who nonetheless didn't go to university. It is really surprising to hear this come from someone who is actually a developer themselves.
- Analemma_ 10y agoI hear you. I was more just ranting and did not expect this to be the top comment; I need to be more careful about that. There are a changes in the industry I'd like to see and this seemed like a rhetorically punchy way to get that across, but I'm not really fundamentally opposed to the term "software engineer", I just wish we had the institutional rigor and care for the craft that I see (or at least, perceive) elsewhere.
- deleted 10y ago[deleted]
- ritchiea 10y agoIt's really awful that the top comment has nothing to do with the piece linked here.
- duaneb 10y agoWell, that'd sure be swell if we could get some engineer love in the US, but I don't see that happening any time soon. Got any suggestions?
- ryandrake 10y agoThe opposition to certification and professional organization is truly bizarre. It would likely do much more good than harm to the profession of software engineering, yet that furious opposition always ensues whenever you bring it up. In addition to the points you make, real certification (as opposed to a four year degree, which anyone willing to go into debt can get) would simplify interviewing and reduce the "whiteboard hazing" and "throw darts at a dart board" methods we use today for finding good candidates. Organization would help fight for a proper career path for programmers, rather than having to, as an individual, constantly negotiate and hop from one employer to another in order to advance.
- clifanatic 10y ago> real certification ... would simplify interviewing Well, I admire your optimism, and as much as I wish there were professional licensing for software professionals, I doubt that any licensing exam could ever be so rigorous that at least a few charlatans wouldn't be able to squeak through it.
- perfectfire 10y agoA four year degree is a certification. What would a "real certification" do differently to make it "real"? > would simplify interviewing and reduce the "whiteboard hazing" I doubt it. If a certification is too specific it'll exclude an enormous amount of engineers. Make it too broad and then companies will still have to do the same interviews they do now to verify that a person is a good fit for the specific job opening they want to fill. I'm eager to hear your proposal on a certification method that doesn't exclude wide swaths of existing and future engineers based on your specific definition of what a software engineer is and isn't, but at the same time is specific enough that having the certification actually means something to other people.
- RandomOpinion 10y ago>The opposition to certification and professional organization is truly bizarre. It would likely do much more good than harm to the profession of software engineering, yet that furious opposition always ensues whenever you bring it up. Most likely it is because a great many programmers without a formal college education or with a non-CS college education think that certification might be used to demote them to second-class citizens. And, without commenting on the rightness or wrongness of it, they wouldn't necessarily be incorrect about that either; such an exam would most likely have a strong focus on CS topics.
- grb423 10y agoI thought I was the only one who though this. I am not a software engineer the same way I am not a software doctor or a software banana for that matter. Reminds me of, was it Rosanne Barr?, who coined "Domestic Engineer" and we all laughed. Words matter. I can see from these comments that we are alone but at least it's not just me anymore!
- nitrogen 10y agoSoftware doctor almost sounds like it could be a useful term for someone whose role is diagnosing and curing software defects. But the term "software engineer" is already suitable for someone who applies scientific/engineering rigor to the production of software.
- perfectfire 10y ago> diagnosing and curing software defects That's literally my job right now. If I could claim the title of Doctor I'd totally be for certification (but for purely, very selfish reasons).
- metaphorm 10y agoyou're pointing out ways in which the culture of software development/programming is different than the culture of other forms of engineering. my response to this is simple: do you think that words matter? If so, which word do you think is most effective in communicating with people outside of the field? there's room for people to come up with radically different answers to those questions, but my answer is that "Software Engineer" matters when communicating with non-programmers. When talking shop with a fellow practicioner it doesn't matter much what word you use. This is just about communication with the outside.
- kafkaesq 10y agoYou want to know some things that define actual engineers, as the term is regulated in some countries? That's great if things work that way in other countries. But in the States, things work differently (in the software industry, at least). And like it or not, are unlikely to change (any more than this country is likely to shift over to the metric system) anytime soon. And unfortunately the term "programmer", as a resume heading, has come to be laden with negative baggage in various ways (as detailed in the original article). So in practical terms, you are 1000% better off calling yourself an engineer or developer (rather than a "programmer") in the U.S. at least.
- zeveb 10y ago> Real engineers have unions. I'm pretty sure that's not true, and in fact one of the distinctions about a professional is that he doesn't belong to a union: he is both worker and management.
- argv_empty 10y agoA professional is in sort of a weird position union-wise though. He often is part of some organization of professionals. That organization doesn't negotiate one employment contract for all (or even large portions of) its members, but it does have a lot of sway over whether he can be hired in that profession and give him a convenient higher power to support his refusal to commit some sort of professional misconduct. "Union" definitely has the wrong connotation though.
- emodendroket 10y agoNot really. There are unions for jobs like writing and teaching I'd consider pretty squarely "professional."
- deleted 10y ago[deleted]
- hodgesrm 10y agoProgrammer might be a little archaic but to me it conveys a sense of humility possessed by the people I most admired when learning the craft. Plus it's baked into the title of "the Art of Computer Programming" by Donald Knuth. How many people can really say they have mastered that art? It's hard to believe there's any qualification more worth striving for or harder to achieve.
- nickbauman 10y agoEngineering is about solving problems using well-understood principles and processes that have been thoroughly tested (as opposed to science, which tries to discover or invent new principles and processes). It has nothing to do with certificates, legalese, or unions. Programmers have a lot of engineering work supporting them in different ways and sometimes they do actual computational engineering. I don't have a problem with calling myself a programmer. Patrick M does because he wants to translate his work into the language of corporate and marketing communication because he thinks this will make him more valuable. I'm not sure that's a good strategy except to create a kind of odd cloud around what he's doing. Programming is not so mysterious to management anymore. They know it's valuable. Those that don't, well, I'm not sure you want to work for them anyway.
- deleted 10y ago[deleted]