As to "you don't have to do it again every time you switch jobs", nurses are often required to go through continuing education just to keep their licenses current. But making the jump from one type of nursing specialization to another, or even upgrading from an RN to a BSN (often required today if you want to keep your job - probably the exact same job that you've already been doing for ages) can be quite grueling - almost like starting over. In one recent case, a well-respected fellow nurse upgraded her education only to be to told that even that was no longer considered sufficient. She was already doing management-level work but didn't yet have the official title or the pay, and was told that she needed to go up an additional level in education in order to get that, so she just bailed - decades of experience walked out the door for no good reason.
I continue to be shocked that software developers aren't licensed at least like RNs or CPAs are.
What a great idea! Let's call it a degree
Admittedly, the data is a few years old (and I didn't want to pull the same data from the 2018 survey), but such a requirement would put many people out of a job. I also haven't seen any concrete data that would support any correlation between the efficacy of a software engineer and whether they had obtained a college degree, so this seems like a poor metric.
I share your incredulity regarding the lack of any sort of "occupational license" for the industry, though I remain unconvinced that instituting one would have a positive effect.
[1] : https://stackoverflow.blog/2016/10/07/do-developers-need-col...
As more recent examples, a few years back I took all three of the original free MOOCs from Stanford. In the ML class, Andrew Ng at one point said something like "If you've ever taken calculus then you will recognize this particular equation as being a derivative; otherwise don't worry about it because that's not really important." Later he said something similar about linear algebra and matrix multiplication. And indeed I had taken both calculus and linear algebra back in the day so I recognized what I was looking at, but it just wasn't important within the context of that advanced class.
I also took the Database MOOC, and during that the instructor taught quite a bit of formal database theory. (I forget the proper name for it.) But despite having worked with databases for decades now I've only seen such theory referenced maybe twice, and that just in passing, so it's hardly the "critical, need-to-know" stuff that the instructor insisted that it was.
Meanwhile, in the AI MOOC almost everything taught there was new to me, despite my having taken several AI classes back in the day; so basically zero overlap between then and now. (I did recognize some of the statistical stuff, though, from my statistics class way back when.) But will any of the new stuff ever be of any practical use to me? Probably not. Interesting certainly, but probably not at all practical.
So perhaps, California would have the highest standards with Google/Facebook employees pushing them to do so to create barriers to entry, but Mississippi would end up with the bare minimum.
I wouldn't find it terrible if Software Engineering were licensed, in the same way that law is---with the board consisting of prominent practicing members of the existing population, and all current members grandfathered in so it only affects upcoming generations.
I think it is generally accepted that licenses don't signify "quality".
What are you hoping to gain with a license? Some badge that somebody can show to a prospective employer, so that they don't quiz you on capabilities?
I think we can agree that the field and knowledge required to perform as an RN doesn't change that often and the same goes for CPAs. However, the world of software is changing constantly. How could a licensing process ever stay up to date? Sure we could just test CS fundamentals and give people a stamp -- essentially what a degree is supposed to do. But if you're a software developer, like myself, that has interviewed many people and been subjected to many interviews, I know it's not a perfect process, but I've come across people that have exaggerated their abilities on resumés. One of the great things about software is GitHub, Bitbucket, etc. Why? Because it sometimes provides a window into the work of a developer before they make it on-site. I'd be happy if the industry as a whole just accepted this as the resumé and leaving the in-person interview as one that's non-technical, save for maybe something like FizzBuzz.
From my perspective, I think the idea of licensing is just an okay process for other fields. Without an interval of re-testing, how can we ensure that service providers can still deliver? I have friends that work at medical centers with doctors that have been there for decades that seem to have forgotten a thing or two, but refuse to accept the answer to a symptom or problem that is fresh in a new or recent grad's mind that's had fatal consequences. It's sad.
As for government work, I'm not sure where you got that idea from. I did government work for 14 years and never needed any certifications. If I had, the company would have paid for it and it would have been on company time.
Just pretend you went to law school and have to make monthly loan repayments each month. Put that money in bank account and you will have more than enough savings to take off work for a month every few years.
Median wage for programmers is nearly double the US median household income and has few barriers to entry. If the only downside is having to take a month off work every few years, I’m not complaining.
Edit to add: In general, I don't think our system has to be worse than all others for it to be worthwhile to consider what might be better.
It is a very different set of trade offs than what we have in CS, where companies are more than willing to take a chance on bright people with non traditional backgrounds, including people that never went to college or dropped out. As a lifelong self-learner, I’ve certainly appreciated the lack of “credentialism” at tech companies.
The one part of the PE thing that I would like to see borrowed is the exams. If all companies are just running everyone through the same kinds of general CS problems anyway, might as well save everyone time and improve consistency by making a standardized test.
It's a rigorous exam, but to me, this is so preferable to a 5 hour interview on differential equations, stats, and linear algebra every time you interview. And that's pretty much what we do in software, it's the equivalent of asking a senior actuary to do an integration by parts or a complex derivative at the whiteboard during an interview.
What I also like about this approach is that we'd avoid that situation where a cartel like the law schools can put a 150k, 3 year degree in between talented people and the profession they'd like to enter.
Another thing is that tech exams are very capricious - you can end up with a totally unqualified interviewer, there's really no quality control on the questions or how the exams are administered. A more formal exam could have a lot of benefits, though I do agree that a required long degree program that is $$ would do more harm than good.
EDIT: There's is something that causes me to question some of what I wrote above - I have grown wary of many of the people who want to regulate software as a profession. I'm still stinging a from my collisions with the test-driven development crowd dating back over the last decade. They really were saying that to merely question the value of the methodology should render you un-hireable. Imagine if they got control over formal licensing. I do shudder at the thought. When I think of that possibility, the Wild West approach, unsavory as it may be, seems more appealing.
A month off? I completed an MSCS (including a thesis) while working full time with two young children at home (my daughter was born in between my first and second year). I can't imagine educational/licensing requirements that would be more difficult than that; you can continue your education without dropping out entirely.
But this is idle wishing: the current system likely has to much inertia for real change at this point.