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'?<p>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?<p>PS: Also curious what's the nuances of distinction between a Software Developer Vs Engineer?
Why 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?<p>*This may not be true outside of the US
Non-degreed Software Engineer from the USA here, weighing in with biased opinions:<p>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.<p>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 <i>proven</i> 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.<p>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.<p>Background: Non-traditional EE trained on avionics hardware who moved into developing safety critical avionics and medical device software and hardware.
In 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.
"I am interested to know, apart from learning to program and developing/designing software solutions, what makes a software engineer an 'engineer'."<p>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".
I 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 <i>doctor, lawyer</i>. 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.
I 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.<p>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.
Tbh. 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.
Depends 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.<p>The downside of this is onerous and often poorly done interview processes designed to attempt to assess what the applicant is actually capable of.
There'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)
Yes, 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.
That'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.
This 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.