Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

My partner is a lawyer and I am a software developer. We've both been in these fields for about a decade.

The key difference between our professional experiences is that the legal profession is self-regulating, whereas software devs/qa/pms are totally socially atomized.

Lawyers have their own organizations, which give them some independence from their clients. Society accepts that this is desirable for the maintenance of the legal order.

Software occupations should move in this direction, for the good of practitioners (wages, working conditions, fairness in promotions and hiring) and the wider society (complement to government regulation around security, privacy, fairness in hiring and promotion).

The bar association defines the examination that lawyers must pass to practice. Employer/client interviews focus more on "culture fit" and familiarity with specific practice areas than on certifying basic competence. The bar also administers "continuing education" to ensure that a lawyer who passed the bar decades ago isn't totally out of the loop on recent developments.

I would love to see the software sector move toward this kind of self-regulation through unionization. We have the power, we just need to coordinate.

Instead of a high-stakes and all-too-often arbitrary interview every single time you want to change jobs, you could prove your basic competence to practice through an exam, and elect to fulfill your continuing education requirements however makes sense for you, within a framework decided upon by workers themselves.

Such a system would not be perfect. No set of examinations is ever going to perfectly capture ever-shifting real world requirements, for example. But we can hardly do worse that the sector is doing now.

We have to stop letting recruiters (i.e. middlemen) and employers (i.e. counter-parties in the employment relation) dictate terms to software workers arbitrarily. The wider society should support tech worker organization in unions because these organizations would provide a check on executive and investor power. Without such checks and balances, we can only expect more of the same short-term thinking and ethical corner cutting.



I have a lot of troubling squaring your statement

> Instead of a high-stakes and all-too-often arbitrary interview every single time you want to change jobs, you could prove your basic competence to practice through an exam, and elect to fulfill your continuing education requirements however makes sense for you, within a framework decided upon by workers themselves.

with how the barriers to medicine/law actually work. A single Amazon interview is not particularly high-stakes - if you bomb it you have a dozen+ companies that can offer similiar comp, and you can always re-interview after a year.

If you bomb the LSAT, or the MCAT, or STEP 1, you will effectively be branded for life. All your future applications to school/residency will include this information. How is emulating that going to get us closer to your stated goals?


> If you bomb the LSAT, or the MCAT, or STEP 1, you will effectively be branded for life.

I don't think this is true. I've heard anecdotally of people bombing the LSAT/MCAT, retaking, and entering elite universities.

But in any case, the analogy is not with exams to _enter_ post-secondary school training, but with exams to certify vocational skills _after_ such training and/or real world experience (e.g the bar exam, the F.E./P.E. in engineering, "masterpiece" evaluations in the skilled trades).

Private enterprises like TripleByte/codility try to perform a certification function of the kind I want to see workers handle through their unions. In fact, it might make sense for a union to simply contract with TripleByte/leetcode/codility to implement examinations. TripleByte has no real incentive to make its examinations a single-shot affair. Why would a worker controlled equivalent have such an incentive? There might even be a perverse incentive to encourage people to take the exam multiple times (as, for instance, the College Board does) that would have to be guarded against.


> exams to certify vocational skills _after_ such training and/or real world experience (e.g the bar exam, the F.E./P.E. in engineering, "masterpiece" evaluations in the skilled trades).

I think what needs to be considered with this is three things:

1. Tiered credentialing & scope of credentials

2. On-boarding / grand-parenting those who are already practicing

3. Studies on what interviewing in non-software related technical fields looks like. I see lots of anecdotes (probably data now) on what software interviewing is like, but mech / civil / elec, actuary, etc. interviewing isn’t something I’ve seen discussed as openly.

I hope I’m not misrepresenting or coming across as negative here or in what follows.

- - -

1. The F.E. and P.E. exams seem to be aimed at people with engineering degrees, so it’s the interaction of both education and practical experience being certified.

For the F.E. exams from [1], “It is designed for recent graduates and students who are close to finishing an undergraduate engineering degree from an EAC/ABET-accredited program.”

For the P.E. exam from [2], “It is designed for engineers who have gained a minimum of four years’ post-college work experience in their chosen engineering discipline.”

Even after passing those exams, there is still annual education and training requirements to maintain certification. Yes, it’s not nearly as rigorous as whiteboard coding that people are currently subjected to, but it’s not a one time activity either.

In both cases there is emphasis on college.

I’m Canadian and it’s pretty similar for P.Eng. There are some exceptions, but they do require a college education.

This leads to tiered credentialing in the Canadian system. There are:

- technicians (1 year education) - technologists (2 years of education) - engineers (4+ years of education)

There is a defined scope of work for each of these professionals. To move up the tier requires education, exams, and apprenticeship. To switch between specialties, I’m not sure if it’s possible.

Not everyone in the engineering profession needs to be an engineer. It is entirely okay to have tiers. However, tiers become very restrictive and could be perceived as gatekeeping, among other things.

2. I think there will have to be a dividing line of some sort to keep those who have valuable experience without an CS education in the field.

Something like: All people who can prove work experience and practical experience are under this one assessment and credentialing method. All others after follow a different credential evaluation method. Or the tiers allow math, physics, self-taught, etc. to be credentialed as such.

3. Technologist interview anecdote. When I was interviewing as a manufacturing engineering technologist the assessment has been:

- read a shop drawing and tell me what these symbols mean

- jump on a computer and start producing a 3D model in the software used by the company. Produce a 2d shop drawing from that model

- explain how you would come up with an inspection plan to show the product has been manufactured correctly

- solve statistics problems. Set up a control chart. Interpret what the points mean and explain the next steps. Design an experiment. Tell me the hypotheses, tell me how you would calculate sample size, how do you know that’s a good sample size?

- go on the shop floor be handed an inspection sheet and inspection tools. Check if this part conforms to standard

- whiteboard ladder logic for PLC

- handed some print outs of CNC code and asked to explain what the lines meant

Those are technical questions I’ve been asked in a series of interviews for manufacturing technologist jobs. It’s not one 8 hour day of interviews like some tech companies. It’s usually 2-3 sessions x 2-4 hours each session. That line of technical questioning is not a substitute for education. It’s on top of having education and certification in the field.

My point is I don’t think software is unique in asking technical questions. I just think it’s not as widely publicized in other fields.

[1] https://ncees.org/engineering/fe/

[2] https://ncees.org/engineering/pe/


The problem with this approach is that it creates serious barriers to entry.

I'm an immigrant who finished a pure-math PhD and went into software engineering afterwards by building up a portfolio and leetcoding in my spare time. With your system there is no chance I could have done that. Passing all of the exams would not have been possible without a strictly CS education, and I couldn't have studied for the exams after my PhD finished because my visa status at the time was tied to being actively employed.

So many people nowadays are becoming productive software engineers from slightly unconventional backgrounds (pure math, physics, boot camps) and this would stop immediately if CS certification became part of the job requirements.


I did not mean to imply that a CS degree would be necessary for all work in software. I would oppose such a system as obviously irrational and serving only a subset of incumbents. With your background, you would if anything have found it much easier to enter the field, as you would have known exactly what to study for and, once certified, had more bargaining power with specific employers.

Barriers to entry exist today, and will always exist in some form. The question is who gets to define them. I am arguing that the workers themselves should have more of a say than they do at present.

One union certification could literally be passing some randomly selected leetcode problems. Ideally, there would be a variety of certifications to reflect the variety of niches in software (someone doing TLA+ for embedded applications shouldn't need to know anything about web app architecture, necessarily).

The difference is that you wouldn't have to do it for every new employer, and workers would have more say in defining the body of knowledge considered relevant.

I don't think anyone would advocate for university credentials to be a hard requirement. I personally have no relevant university credentials except some math courses from a community college.

That said, I think it would be fine for someone to submit a transcript from a CS degree to be certified for basic algorithms knowledge in lieu of sitting an exam on that topic.


Depending on how it's implemented, it could actually work to the benefit of non-degree holders. A certification reflecting your ability to leetcode and a review of your portfolio, could put you in the same place as graduates of elite CS degree programs.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: