18 ms·
Ask HN: Can non degree-holder use the title Software Engineer?
Just feeling curious: Can someone use a software engineer designation without the formal education path (such as Computer Sc. degree etc). I always thought that to use a professional designation, you need to have professional qualification. Is there any laws/regulations/bodies that govern use of title of 'engineer'? I am interested to know, apart from learning to program and developing/designing software solutions, what makes a software engineer an 'engineer'?
Or is there a career path one has to take. After how many years in industry a person can start to call himself an engineer?
PS: Also curious what's the nuances of distinction between a Software Developer Vs Engineer?
- LinuxBender 6y agoI think you are asking a legal question? I am not a lawyer, but I can say that some governments in some countries require specific certifications in order to hold certain titles for certain government jobs. Otherwise the answer is yes, you can have whatever title you want provided that title does not imply any legal requirements doctor, lawyer. Your CV and interview with a business will help them determine if you meet the definition of your title. I have phone screened people that listed themselves as Sr/Principal ______ engineer and they could barely Google any of the answers. They won't get in trouble but they also won't get hired.
- bdcravens 6y agoThere's little to no regulation around the term. You'll find job postings for "junior software engineers" that need very little experience. Bootcamps use "software engineering" in their marketing, so I presume graduates call themselves that when they finish (even though at that point, they're qualified for little more than apprenticeship roles)
- gbrindisi 6y agoNot in the US. In some european countries the title “engineer” is indeed protected by law.
- skrooge 6y agoIn some countries, yes. Either way developer is a better term than engineer when it comes to software imo.
- st1x7 6y agoYes, if you get hired for a job with the title software engineer, you are one. There are no education requirements for this. Same with any other title in tech. The distinction between developer and engineer doesn't really exist - engineer just sounds a bit fancier so some people prefer it over developer.
- ThrowawayR2 6y agoDepends on what legal jurisdiction you work in. In the United States, job titles in the software industry are neither standardized nor enforced by any organization so people are free to call themselves whatever they like, regardless of education, experience, or even ability. The downside of this is onerous and often poorly done interview processes designed to attempt to assess what the applicant is actually capable of.
- kbelder 6y agoThe upside is that it reduces the gatekeeping that so many degree-holders would like to have in place.
- Freezerburnt 6y agoIn Canada the title "Engineer" is protected by law. One must have an engineering degree from an accredited university in order to use the title. It's fairly strictly enforced.
- giantg2 6y agoI think Texas also does or did. I think there was a push to repeal that law since it wasn't really enforced, but I don't remember if it was successful.
- cldellow 6y agoThat's not entirely right. You need to be licensed by the provincial engineering body to call yourself a P.Eng. An engineering degree from an accredited program is often part of the path to that credential, but is neither necessary nor sufficient by itself. And as to being strictly enforced, IMO, it's not really enforced for software people, so long as they stick to "engineer" and avoid "Professional Engineer". Plenty of firms have job listings for "Software Engineers" that don't require the P.Eng. credential, plenty of people have easily discovered LinkedIn profiles holding themselves out as Software Engineers, but there's not much enforcement. There was a push by the Professional Engineers Ontario in the early 2000s to regulate Microsoft's MCSE terminology, but I think it basically failed. IMO, they've given up on regulating the term "engineer" unless it's really egregious, like holding yourself out as a P.Eng. when you're not, or actually doing work that requires a P.Eng. without actually having one.
- eatingCake 6y agoSame with Architect. It's use in software is completely unregulated compared to Registered Architect (the equivalent to P.Eng).
- ashconnor 6y agoNot that strictly enforced. None of the job requirements will ask for PEng. https://ca.indeed.com/jobs?q=software+engineer&l=Toronto%2C+ON https://ca.indeed.com/jobs?q=software+engineer&l=Toronto%2C+...
- seanwilson 6y agoI have a software engineering degree and I don't think you should call yourself a software engineer until you've actually worked in that capacity on actual projects for a while. You could ace the degree but not have the experience to deliver real projects until you have practice. Besides that, a lot of job titles are arbitrary, made up and not consistent between companies. Call yourself what you think you're qualified to do and want to do. Same if you're freelance or a consultant, because nobody is going to give you a title.
- tti 6y agoQuestion, what do you want to use it for? If it’s somewhere like LinkedIn, nothing can stop you.
- fallenatreus 6y agoMy question was like more geared towards - what makes a Software Engineer, a Software Engineer. is it the Software Engg. Degree, practice, or some other characteristic traits that one has to demonstrate in order to become an Engineer.
- tti 6y agoTech companies in the US have definitely hired non-CS majors (Computer Engineering, Math) from my college for Software Engineering roles.
- ThrowawayR2 6y agoThat depends on what you think the title of software engineer means. If you think of it as meaningless, then there are no requirements. If you think that the title of software engineer should be like the professionally licensed engineering fields, then look at what the requirements for professional recognition or licensing in those fields are. Usually its agreeing to abide by a code of ethics, proving that you possess understanding of the fundamentals of your field (either through education or learned on your own), demonstrating your competence though a number of years of working experience, and demonstrating that you're keeping up to date with changes in your profession (the continuing education requirement).
- notyourNMI 6y agoNon-degreed Software Engineer from the USA here, weighing in with biased opinions: Depends on the field you are in. Here at least, use of the title as it relates to software is currently driven by the hiring agency/company. If you are hired on as a Software Engineer without a degree, then you are a Software Engineer (at least in title, at that position). You damn well better be able to perform. But you can legally write "Software Engineer" on your tax forms. In my personal opinion, what differentiates a software engineer from a software developer is the level of engineering rigor required for the development and application of your software in a given environment or system. Are there standards in place that recommend (mandate) you provide certain reasonable assurances (e.g.: verifiable proof derived through specified means) that your software will not yield unexpected behavior? Are there standards in place for a given industry that confine the way you use specific languages (to attempt to ensure the aforementioned unexpected behavior will be minimized or eliminated)? I'm thinking of DO-178B/C, IEC 62304, & MISRA as industry representatives here. If you can digest and navigate these standards, and prove to the applicable regulatory body that you adhered (designed, developed, and tested) to their respective guidance documents, they couldn't give a damn about a degree. You've proven you're aware of the risks your software can pose and how to mitigate them through thoughtful application of standards, rules, and hopefully best practices. Here's where I'll piss some people off: Would I call a front-end UI developer a "Software Engineer"? Probably not, unless that UI is destined for a system where a developer error could cause harm, property damage, etc. What about a trading system where performance losses measured in nano-seconds could accumulate millions in losses? Possibly, depending on the complexity. My personal metric (based on my own career experience) is "will a screw-up cause harm, loss of life, or irreparable damage/destruction to expensive things". Losing millions in a trade and losing millions in an *craft crash are not equivalent to me personally. Background: Non-traditional EE trained on avionics hardware who moved into developing safety critical avionics and medical device software and hardware.
- deleted 6y ago[deleted]
- runawaybottle 6y agoSo, you’ve over thought this a bit. There is a course in comp sci called ‘Software Engineering’, and it’s the place where stuff like UML diagrams and end-to-end testing get covered (differences between tests). The UI developer would need to test his/her stuff too, no? You can engineer a good codebase for anything, not just critical applications. The thing you are describing is something different altogether, where the distinction is more about status (e.g I do more important work than you). Usually we handle this with appropriate compensation, but if you are looking for nominal respect, that’s a losing battle. I just saw some kid on LinkedIn, graduates a bootcamp with no job experience at all, changes his title to ‘aspiring developer and data analyst’. Title pimping is a lost cause, and the integrity required to derive status from it is infinitesimally small. Tech in general has always had this problem, as we mostly got lumped into ‘aren’t you an IT guy?’ for years. It had very little status, and we sort of have the same problem all over again except it’s the barbarian horde of newcomers that give themselves titles that would takes years to sincerely attain. Three month bootcamp straight to a ‘full-stack’ developer, huh? This stuff hurts us in general, and we might as all go back to being called ‘IT people’. I do agree that software is too big to have a blanket term like ‘Software laborer’. There are ‘ui laborers’, ‘options trading laborers’, ‘infrastructure laborers’, ‘backend laborers’, etc. I wouldn’t want to create classism amongst laborers (you know, real laborers vs not so real laborers), but rather have descriptive branches of our field properly described so we understand what part of this field you specialize in - no status involved. I guess the same way we know what a Podiatrist does exactly, compared to an Orthodontist. There is no Medical Professional or Seriously-Better-Medical Professional. I wouldn’t put too much weight on the term, marketing values ‘full-stack’ ahead of anything else anyways, which flys in the face of specialization. Probably why such a topic even comes up, if we’re all meant to be generalist, what sets us apart?
- ttronicm 6y agoJust plain YES.
- cracksmoka420 6y agoNowadays, you can identify as whatever you want.
- boxed 6y agoThis was my title at my last job. It's just the title for coders. Nothing more. I think it's a bit pretentious personally, so I usually just say programmer.
- probinso 6y agoyou can use absolutely any title. you have to be able to justify the skills.
- anemoiac 6y agoWhy not? In the US, there isn’t a formal professional engineer (P.E.) certification for software engineers (unlike most other branches of engineering). If you’re performing the same job as someone who has a software engineering or comp sci degree and your job title happens to be “software engineer,” why would it matter if you have an unrelated degree, no degree, or even no high school diploma? *This may not be true outside of the US
- echlebek 6y agoIn Canada, you can't call yourself an engineer unless you are a P.Eng.
- wsh 6y agoIn Texas, the roster lists 60 professional engineers who hold active licenses with “Software” as one of the branches. I expect some of these individuals took and passed the NCEES exam in software engineering, which was offered from 2013 until 2019, when it was discontinued due to low interest: https://ncees.org/ncees-discontinuing-pe-software-engineering-exam/ https://ncees.org/ncees-discontinuing-pe-software-engineerin... I imagine the individuals who obtained these licenses did so for prestige or credibility, to support the idea of licensing for software engineers, or because their work is related to other, more closely regulated engineering disciplines. Some states try to control the use of “engineer” as a title, at least in some contexts, but I don’t know of any U.S. state that regulates the practice of software engineering, as such, nor of any credible plans to change this.
- austincheney 6y agoAn academic degree is not a professional license. Software has no professional licensing so call yourself any title you want.
- dave_sid 6y agoTbh. I think when people see Software Engineer and Developer on a job ad or a CV, both mean the same thing to them. I certainly see as many job postings using both titles interspersedly.
- AnimalMuppet 6y agoThat's been my job title for two or three decades. It wasn't a title that I chose for myself. Now, though, I use it for myself because that's the way others describe my role.
- 1vuio0pswjnm7 6y ago"I am interested to know, apart from learning to program and developing/designing software solutions, what makes a software engineer an 'engineer'." Nothing. "Software engineering" is something anyone can attempt to engage in. It seems to conjure up an image of something better than bad programming. But unlike, say, mechanical engineering, there is no professional certification required to call oneself a "software engineer". The fact that this hobby/job is an unregulated practice may have something to do with the ubiquity of bad software. Some of the best programmers, e.g., Arthur whitney, have referred to programming as being like "art". The programmer who started this site in fact wrote a book called "Hackers and Painters".