
Ask HN: What obstacles stand in the way for a “bar exam” for programming jobs? - ccajas
First, getting this out of the way. I&#x27;m well aware that software programming is a broad topic covering many different skills and knowledge domains.<p>But so is practicing law. You can be an expert on bankruptcy law, or media&#x2F;entertainment law, etc.<p>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&#x27;m not aware of other exceptions.<p>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&#x27;t practice, that&#x27;s deemed as being okay.<p>Like software engineers, lawyers are not bound to one practice area, and some (especially in smaller towns) have overlap in several areas.<p>Yet when it comes to examination, the legal industry has managed to create a &quot;one to rule them all&quot; for grant someone admission to practice law. And it&#x27;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.<p>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 &quot;bar exam&quot; for programmers. Maybe the field is <i>still</i> not mature enough and we have to wait it out a couple more years?
======
et-al
You would need a professional organisation to lobby for laws, but I don't see
engineers in the industry coming together and forming one.

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.

~~~
platinumrad
Credentialism always, always, always exists to serve entrenched interests. For
example:
[https://news.ycombinator.com/item?id=16702652](https://news.ycombinator.com/item?id=16702652)

------
wai1234
There seems to be a belief that such an exam would produce uniformly high
caliber practitioners. There are plenty of lousy members of every regulated
profession.

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.

~~~
AstralStorm
Indeed. There could be a data safety cert too. (Data protection and data
processing ethics, more and more important nowadays.)

Specific technologies? Not applicable really.

------
pinewurst
It's already happened implicitly with the rise & spread of the "technical
interview". By rote memorization of a body of knowledge which may or may not
be applicable to the job at hand. Given the interchange between employers,
these are more alike than different.

Why would further formalization be any more valuable than say the Interior
Decorator exam and license in Florida?

~~~
TAForObvReasons
Professional exams oftentimes cover subjects like ethics, which would
undoubtedly help the industry

~~~
tvanantwerp
I doubt that unethical people act unethically because it just never occurred
to them to be ethical, and that they would've known better if there was a
class.

~~~
trowawee
I'm less worried about explicitly unethical people than I am about somebody
just out of college in their first job whose boss asks them to build something
ethically dubious. Professional ethics instruction would A) help determine if
something was unethical ("My boss told me to add a feature to our social
network app to vacuum up every call and text message made on a device that has
our app installed. Should I do that?") and B) provide a framework for people
to push back on and censure unethical requests.

------
garyfirestorm
What prevents a general exam? - Attitude

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.

~~~
AstralStorm
Yes, just like Electrical Engineer exams killed hobby electronics. /s

------
platinumrad
Why do you think that increasing the barriers of entry into software work is a
good idea?

~~~
tylercubell
Software that could kill. Medical, aerospace, driverless?

~~~
cornholio
Mission critical software is created by processes, not individuals - unlike,
say, surgery or legal counsel, that are delivered in person.

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.

~~~
bb88
> Mission critical software is created by processes, not individuals.

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.

~~~
AstralStorm
Adding certification to the mix won't fix the faulty process at all though.

~~~
bb88
If you don't have an audit trail of the decisions made, you can't fix the
problem.

------
PeterisP
What makes bar exams work is an industry-wide agreement that they won't allow
you to do the work if you haven't passed the bar exam.

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.

~~~
barry-cotter
What makes bar exams work is not an industry wide agreement, it’s _government_
licensing. I’m sure there are plenty of paralegals who are perfectly capable
of doing standard, ordinary legal work like conveyancing or ensuring the
registry of deeds is updated when property is sold. But there can be only one
kind of legal practitioner with US government licensing as it stands. Anything
else is illegal and you’ll go to jail for practicing law without a licence.

------
radix07
It's called a PE (Professional Engineer) License. They introduced one for
Software a few years ago. Most engineering disciplines have this and you can
take the test 5 years after passing your FE (Fundamentals of Engineering) with
work experience. However they are not typically needed unless you work (and
sign off) on something that could be dangerous to the public. Civil engineers
almost require them to work, other fields not so much. As an Electrical
Engineer with an FE, I have never really seen it as being worth pursuing and
maintaining, and for the software side of things even less so...

[https://ncees.org/ncees-introduces-pe-exam-for-software-
engi...](https://ncees.org/ncees-introduces-pe-exam-for-software-engineering/)

~~~
analog31
I work for a company that makes electronic products. We outsource the signing-
off kind of engineering to a company that also does electrical regulatory
testing for us. Here's my impression about it.

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. ;-)

------
sfifs
Fundamentally demand supply mismatch.

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.

------
imacomputer2
This first concert in my mind is that while programming core concepts have not
changed much in 30 years, the stuff you put on your resume has. Laws don't
change very often and only in small details ways. A lawyer can still reference
a law passed hundreds of years ago and it's relevant in a real world in the
job scenario. Programming on the other hand, is far less stable. Furthermore,
employers are always looking for key words in the resume. Do you know this
language and this framework? I don't think they care or evening look for core
concepts (maybe a problem in it's in right).

------
nokcha
If you're suggesting a law against hiring people who have not passed such an
exam, the First Amendment would likely be an obstacle (just as the government
cannot impose an licensure requirement on journalists), since source code is
protected speech. However, in safety-critical systems (such as self-driving
cars), the government probably can impose a regulation against _using_ code
developed by an unlicensed programmer in production.

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.

------
tw1010
The argument that the field is still immature I think is not very convincing.
Or in the very least, whatever needs to change is not going to do so within at
least the next few decades, because otherwise they would have already done so.
Things haven't changed _that_ much, and software engineering is a many many
decade long industry at this point. In other words, if you really care about
this, push for it now, in your generation, because otherwise you won't be able
to pluck from the fruits of the effort until you're already into retirement.

------
irvingprime
High school kids program. Some of them are surprisingly good. High school kids
don't practice law. The fields simply don't compare and should not attempt the
same standards.

------
chrismcb
Perhaps you are asking the wrong question. Perhaps it should be "do we need a
bar exam for lawyers?" What do we gain from such an exam?

------
slashblake
I think this is the same question of "Why isn't there a bar exam for medical
doctors". "Being qualified" for software requires nothing less than hands-on
training.

Until software moves to more apprenticeships/residencies, I'm afraid we stuck
in this "infancy" of a field.

~~~
hkmurakami
Medicine requires board exams.

~~~
slashblake
Sorry, you cannot just take a board exam and start practicing medicine. Law,
you can.

~~~
Turing_Machine
Nor can you do that in law, other than a very few states, all of which require
a lengthy, documented apprenticeship with a practicing lawyer. It's not just a
matter of walking in off the street cold and taking the exam.

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...](https://priceonomics.com/how-to-be-a-lawyer-without-going-to-law-
school/)

------
zdky
There're plenty of certification exams in the tech field though they're never
required by law, and most companies wouldn't use them as a primary criteria in
making decision of new hires.

------
slipwalker
i find it much more valid each company running it's own technical interviewing
process. Adapted to the specific knowledge ( and social skills ) required by
the job at hand.

personally i like joel spolsky's model:
[https://www.joelonsoftware.com/2006/10/25/the-guerrilla-
guid...](https://www.joelonsoftware.com/2006/10/25/the-guerrilla-guide-to-
interviewing-version-30/)

------
uberman
What prevents it? Employers and trade organizations that demand it.

------
stale2002
Let me answer your question with another question.

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?

~~~
eximius
Because he isn't talking about 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.

~~~
platinumrad
Are they?

>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.

------
shiado
I would argue that the very nature of the math behind programming is cause for
it not to be regulated easily. In other applied fields you don't run up
against undecidable problems and Rice's theorem. If it is not possible to
mathematically certify that a particular program has a particular property how
can you regulate the programmers? Only allow them non-Turing complete
languages?

