A missing ingredient in Software Development and CS work is credentialism. There's no software "Bar Exam" you must pass before you are legally allowed to offer your services.
And there's no "Supreme Court of Coding" either.
But there absolutely should be both.
Programming is littered with people "just trying things" and "hacking" and other crudities like "experimentation" and "exploration."
We need regulation, regimentation and a predictable level of service.
You should also be required to obtain a license (after a 90 day waiting period) for each computer you own, even if it's not going to be used for programming.
It's the only way we can reduce the number of data breaches and crashes.
I hold a professional engineering license, having passed the computer engineering exam. The software engineering exam was first offered a year or two after I took my exam. (In Texas, the first state to offer the software engineering exam.)
Anyway, I passed the test with no problem, and I think all the licensing exam does is to filter people who are totally incompetent. It guarantees a level of quality, perhaps, but that bar is pretty low.
While the bar exam enforces a certain quality of knowledge, it also enforces breadth. Every lawyer in a given jurisdiction takes the same bar exam, and it covers all aspects of the law.
The programming equivalent would be like forcing coders to demonstrate competency in everything from embedded systems programming to OS development to packaged application to web back-end, to web front-end, mobile apps, algorithms, networking, language design, compiler optimization, etc.
The way it works now, coders can specialize and that makes it easier to self-study. Learning all about web front-end dev is a lot easier then learning about every type of programming there is.
If you want credentialling, it would have to be more like medicine, where people have to pass the boards in their specialty only.
I think you've fallen victim to poe's law. In fairness the parent comment gave few enough hints at satire that I'll need to see the author confirm they did or didn't mean it before I'm convinced either way.
Thank you for the feedback. I was attempting sarcasm.
My hope was that the line "It's the only way we can reduce the number of data breaches and crashes" would seem immediately ridiculous to everyone.
Given the history of surprising security bugs in mature code being discovered by a decentralized collection of users and hackers over long periods of time -- a phenomenon we've all witnessed over the years -- I figured the notion that a slow-moving, bureaucratic supreme panel of code judges effectively and decisively removing security problems basically didn't make sense.
I don't know now. Maybe it makes more sense than I thought.
I think most programmers today take it on faith that the lightly regulated, free wheeling nature of programming is an inherent, unchangeable, and desirable state.
But if you look back at the history of highly-regulated technology industries, every single one started out lightly regulated and free wheeling. Early railroad, automobile, oil drilling, aviation, and telecommunication companies (to name a few) were all full of self-taught innovators who wanted to move fast and disrupt things.
As software eats the world, the world will become less and less tolerant of shitty software. I will not be surprised at all to see demand for credentialling and oversight grow even in the next 10 years.
The fact is not every piece of software needs to be completely secure from every possible data breach. Yes, there are cases where more security is important. It's also important to note that many security breaches are with systems that were designed, developed and built by people who would have passed your arbitrary "Bar Exam"... If you look at breaches surrounding OpenSSL, Windows and the like.
Most of these systems weren't developed by guys hacking away at PHP and Wordpress... Also, Nobody is going to die because your home computer was botted.
While I agree there should be more to professional software development than what we have today, I'd suggest that a guild system by reputation would be more appropriate... You only gain reputation by being backed by others who are considered trusted in turn. If you are shamed/shunned/fired for incompetance, then those who backed you also lose reputation.
In the end, nobody is going to support such a system. We're just about the last of the higher payed professional white/blue collar fields left. Why, because we negotiate pay. Going to a federated system would only serve to drive down pay, and introduce fees to an abstract organization that does very little good. I would also postulate that hiring a great programmer isn't any harder than finding/hiring a great lawyer.
In the end, it comes down to need, understanding, honesty and communication. I appreciate that we're in a field where someone without a degree (myself) has done some serious professional work in government, aerospace, education, security and financial industries.
If the compiler is the bar, the machine code would be the supreme court. You launch an appeal by looking the assembly produced by the compiler, finding errors, and run it by the SCOTCPU, and see if it agrees with you, or the compiler.
And there's no "Supreme Court of Coding" either.
But there absolutely should be both.
Programming is littered with people "just trying things" and "hacking" and other crudities like "experimentation" and "exploration."
We need regulation, regimentation and a predictable level of service.
You should also be required to obtain a license (after a 90 day waiting period) for each computer you own, even if it's not going to be used for programming.
It's the only way we can reduce the number of data breaches and crashes.