Ask HN: What obstacles stand in the way for a “bar exam” for programming jobs?
But so is practicing law. You can be an expert on bankruptcy law, or media/entertainment law, etc.
The idea of the bar exam is that the expectation is that any lawyer, at the point of passing the bar, the point at which they actually become a lawyer, have a solid understanding of most, if not all, general aspects of the law. I know of one exception, patent law, that is covered in a separate exam, but I'm not aware of other exceptions.
If they later choose to invest time and energy into specializing, and later forget some of the other more niche concepts of the law they don't practice, that's deemed as being okay.
Like software engineers, lawyers are not bound to one practice area, and some (especially in smaller towns) have overlap in several areas.
Yet when it comes to examination, the legal industry has managed to create a "one to rule them all" for grant someone admission to practice law. And it's generally effective in doing so. In theory, the same would be possible for another large career field that share core concepts in common, for all the jobs in that field.
What prevents a general examination to be designed and formulated for software programming work? We, too, work all over the place, yet there is no standard "bar exam" for programmers. Maybe the field is still not mature enough and we have to wait it out a couple more years?
61 comments
[ 2.7 ms ] story [ 131 ms ] threadSoftware engineering for safety-critical fields like aerospace and automotive tends to be fairly regulated already.
A single programmer shouldn't be able to kill using his keyboard, and if he can, something is very wrong with the way that mission critical software is produced.
To maintain the analogy, if a law firm is using the services of paralegals that haven't passed the bar exam or have no formal training, I will not be concerned even if they handle most of the legwork in my case, because I assume they are part of a team and their work is well scrutinized.
I worked on software for the military, which was under a process (heavily regimented, I might add), and yet US soldiers still died when the software failed. It wasn't one person with a keyboard, it was a group decision and politics that allowed it to happen.
Processes in the end are still run by people. Sometimes people do the thing they think is right, yet end up with a result which is very very wrong.
The vast majority of software written today has precisely 0 ability to kill anyone.
Even IF you are working at a company doing one of those things, only a subset of engineers that are working there are going to working on the "core" part of the software. Those companies have lots of web developers making code that isn't dangerous as well.
To put it another way, reading and writing can kill as well. If the person writing the airplane manual screws up, it could kill someone. But does that mean we need a bar exam of writing English?
There's lots of ways software can cost corporations money if it fails to operate. The recent failures at Delta, Southwest, United, all come to mind. The IT industry has a myriad of certifications to, say, prevent some tech-idiot from touching the routing table on the routers.
The ISO has standards for software engineering (similar to ISO9001 for hardware) but so far the market does not feel that standard provides a competitive advantage. If I could guarantee my processes gave you 99.9999% uptime with our software, would you prefer that or another company that can iterate faster?
I don't know that having a "bar exam" is the best way to approach that problem, either. I think laws need to be written that cripple companies that don't follow best security practices and the rest will largely follow.
Maybe that eventually results in a sort of "bar exam" that companies endorse in order to cover their asses, but what are the chances that it will end up being a positive thing for programmers and not a bureaucratic nightmare test that everybody knows is bs?
I haven't thought too deeply about this but the solution to the PII exposure problem, in my opinion, is to heavily disincentivize entities from holding any data that they don't absolutely need to (probably via punishingly them heavily for slipping up).
Being a doctor was a rather modest middle income wage until the AMA came along to raise barriers to entry.
Why would further formalization be any more valuable than say the Interior Decorator exam and license in Florida?
Ethicists’ and Nonethicists’ Responsiveness to Student E‐mails: Relationships Among Expressed Normative Attitude, Self‐Described Behavior, and Empirically Observed Behavior
https://onlinelibrary.wiley.com/doi/abs/10.1111/meta.12033
The numerous repeated calls for ethics pledges taken by individuals I see on this site betrays a misunderstanding of how power works. Individuals can't fight the system alone, it takes a collective.
As an Electrical Engineer, we went over this in school, as ethics is one of the cornerstones of the Professional Engineer license. (Though, personally I am not professionally licensed.)
See here for what it covers: https://www.nspe.org/resources/ethics/code-ethics
Why do you assume that programming is more like Interior Decorators than not more like Civil Engineering? There's been a number of cases in our history where software has killed people or cost people/corporations millions of dollars.
Professional organisations were a way to keep people out of a field by requiring them to have the connections or the money to afford the study materials and exam fees. And don't forget continuing education costs as well. This concept would turn away many of the anti-establishment types in the industry.
That said, we are seeing signs of standardisation in the hiring process. TripleByte is gaining traction and maybe in a few years applicants will need to be "TripleByte Certified™" before they're even considered for an interview at larger company.
However there will always be scrappy startups that eschew this and just hire whoever can code and think.
Personally, I don't have too many complaints with hiring in our industry. It's been criticised lately, but it's still more democratic than law, or finance. The sheer number of first-generation immigrants that are in Silicon Valley and NY working in the field are a testament to this.
What prevents a bar exam for reading and writing?
Would it be a good idea for such a thing to exist for the act of reading or writing books, news, or anything else involving language?
Why should this be treated any differently for speaking to a computer?
He's talking about self driving cars, drones, hospitals, utility grids, etc.
Admittedly, it is hard to determine where or how you draw the line.
>What prevents a general examination to be designed and formulated for software programming work?
There's plenty of non safety-critical software programming work to be done in this world.
Until software moves to more apprenticeships/residencies, I'm afraid we stuck in this "infancy" of a field.
https://www.americanbar.org/content/dam/aba/publications/mis...
http://www.slate.com/blogs/business_insider/2014/08/02/state...
In 2014, 60 apprentices took the bar exam (out of 83,963 total examinees). 17 passed.
Almost all states do require law school nowadays, and you don't have a prayer of getting reciprocity to practice in another state without it.
https://priceonomics.com/how-to-be-a-lawyer-without-going-to...
It seems that it's not (and will not be) in the best interests of most employers to disqualify people who haven't passed such an exam but otherwise seem able to do the work. Thus an effective "bar exam" can not arise voluntarily, since the required factor - motivation by a critical mass of most employers - is not there.
The other alternative is a legal requirement imposed from above, but again, there seem to be no powerful forces lobbying to forbid every non-certified person from programming a computer, neither employers nor programmers themselves nor the general public seem to want that very much.
https://ncees.org/ncees-introduces-pe-exam-for-software-engi...
The work is boring, as in mind-crushing boring. You don't get to invent or design anything. Your job is to watch other people invent things, and then run those things through a set of checklists, while documenting everything.
One thing about programming is that it's democratic, inasmuch as anybody can download Python and start programming. Including me. Nobody will stop me, and I will invent things. We already have the situation in my department, that I'm not "allowed" to program, meaning that I "prototype" things, and the programming department turns them into a product that can be shipped.
Programming is too important to be left to the programmers. ;-)
Unlike other fields, Engineering in general and software in particular are all about freedom. You can hack your car, hack your phone, WiFi etc without needing a certificate from someone. You're challenging this freedom and hacker attitude by imposing exams and creating a system that gives people 'permission' to write software (work in this field)
This will never fly. And I hope it never does.
If you're suggesting a de facto industry-standard exam, I think there just isn't enough wide agreement about what should be on the exam.
The exams in regulated professions are designed to test that you know the jargon and general knowledge of the field (anatomy and physiology, case law, etc,). The day-to-day application of that knowledge is usually consistent with that knowledge. Outstanding members of the field are determined by years of experience and specialization.
Software doesn't meet any of those expectations. The jargon changes weekly and your expertise with O notation and hash tables means almost nothing in day-to-day practice. The fixation on evaluating candidates on those topics is more about what's handy as a way to narrow the hiring funnel than it is about measuring what's important.
Software development is a creative activity. You can't measure that. Safety critical software is developed under regulatory guidelines enforced by process requirements and certification of organizations that follow those processes.
Specific technologies? Not applicable really.
These exams succeed in professions where more people are looking to enter the profession than there are jobs that will afford a comfortable lifestyle.. so the existing professionals lobby the government to setup a guild like body to "certify" and thereby limit supply of "certified professionals". The point of the exam is to limit supply and competition, it is not to ensure lawyers, accountants etc "know enough" - look at how many clients are done in by poor professional advice.
There are far far more programming jobs than people available who can program today. So this won't happen.
personally i like joel spolsky's model: https://www.joelonsoftware.com/2006/10/25/the-guerrilla-guid...