This. The popularity of coding bootcamps is another factor.
Software engineers don't like the concept of formal credentials. Fine. But you'll have to demonstrate your skills at one of the interview stages.
Or we could create something like the American Academy of Software Engineers, or the Society of Software Engineers, or the Software Engineering Institute, which would be tasked with accrediting schools and programs, and in order to practice as a software engineer in the industry, on top of a university degree, you'll have to pass another examination from the credentialing authority to obtain a professional title like Professional Software Engineer or Chartered Software Engineer.
Other professions gatekeep before you can take the interview.
Formal credentialing generally means you demonstrate "I can do this", in a very drawn-out, thorough manner. It's gatekeeping more, but there's a much larger guarantee for your creds to be transferrable from place to place.
In software engineering, you demonstrate "I can do this", in a several-round bout of interviews. And then have to demonstrate it all over again and again, for every single company. Your interview performance is non-transferrable.
My opinion is, the latter is more wasteful as it involves repeating yourself a whole lot.
The former has a higher upfront cost but you are betting in the long run that it will amortize over time as you continue to go on interviews.
The latter has less upfront cost but a greater chance of creating more cost in the long run, depending on how much you interview and where.
OP spent 6 hours- personally I wouldn't spend that much on any assignment, but the bigger issue here is that 6 hours is only valid for one company. Interview "work" is so proprietary and non-transferrable- like currency that is useless outside that one company. You cannot take what you did there and show it elsewhere to expedite an interview. You will have to run through another several-hour process again (whether interviewing or another assignment), for some other variation of a CRUD based problem that they expect developers to do.
I suppose the closest thing we have to avoiding repetition is- the answer many won't like- Leetcode. You still have to navigate through opinionated views of your answers, but at least there are more patterns that carry over that its benefits compound more easily from interview to interview.
> . . . all over again and again, for every single company. Your interview performance is non-transferrable.
> . . . wasteful as it involves repeating yourself a whole lot.
It's also incredibly wasteful for the companies doing the hiring. Which is why they often try to offload that waste to the candidate.
But those companies would probably have to pay more for programmers who were already vetted as part of their membership in a professional organization; people who were actual engineers. So it's not in the companies' best interests to change anything.
Who says that formal credentials are not liked? I value the hard work I had to put in, to finish my degree. I can often see how I took valuable lessons from it, which others are lacking.
Furthermore I do see a difference between being a person who knows how to write code and being a software engineer. The former can easily be achieved without any formal education, but the latter is more difficult to achieve without formal education. There is lots of stuff not learned in a coding bootcamp and it will take time to close the gap.
I do not think one can generalize like that and claim, that we all do not like formal credentials. I wish formal credentials worked differently though. Not through some university institution, which might or might not teach us important things, but maybe more practical and hands on, more projects, where actual work is done and we all get more opportunity to learn from thise experiences.
> Other professions gatekeep before you can take the interview.
Local governments impose licensing requirements on some professions. This is not something the professions just voluntarily impose on themselves. (If they did impose it on themselves, there might even be antitrust problems as a result.) This is mainly (or at least purportedly) for the protection of public health and safety, not to make it easier on potential employers interviewing job candidates.
It actually has nothing to do with job interviews, because every such professional needs a license in order to practice their profession, even if the professional is a self-employed entrepreneur.
So to be clear, when someone asks for software engineer licensing, in effect what they're asking is for local governments to regulate the ability to practice software development, even for self-employed programmers.
And then you can expect a visit from the government software inspector.
Huh? Of course they impose it voluntarily on themselves, and always have (look at the medieval guilds). They might use government as a figleaf, but the instigation always comes from within the profession. After all, they're the ones who benefit from the reduction in competition.
This is hand-waving that doesn't explain why some professions are licensed and others are not. After all, wouldn't all professions benefit from the reduction in competition?
Anyway, government isn't a fig leaf, it's a cudgel. It has to be, otherwise the system would be undermined by mass defection.
It would be really easy for the industry to do a half measure on this one. All of the big companies could get together and agree to accept a certificate that you get by passing a few of those white board algorithms rounds. It's just such a ridiculous waste of effort for everyone involved to test these things over and over again in an NxM interviwers x jobs loop. When you go for an on site interview you should be evaluated on the work you've done and what you bring to the company. Throw in some system design for senior people if you must, since that at least is a bit more specific to the tech stack you will actually be using.
There used to be a PE for software engineering in the US. It got eliminated because basically no one got it. Though, to be fair, PEs are relatively uncommon outside of civil engineering and people who do a lot of expert witness work/signoff for regulatory authorities and so forth. Typically PEs require an undergrad degree and some number of years in industry working under a licensed engineer.
I looked at it when it came out... and decided not to. I believe that this was a complete miss of what Software Engineers do. The issue being that I'd have to pass a FE exam first and that implies a traditional Engineering degree with all the heavy physics and such. I took computer science classes - not fluid dynamics and electrical systems.
It appears to have been for Engineers who want to be credentialed in software rather than a credential for a software developer to be able to attest to PE level standards of competency.
I can assure you that in the US tons of working degreed engineers (and others) with engineer titles don't have PEs even if some state licensing boards whine about that fact from time to time.
Software engineers don't like the concept of formal credentials. Fine. But you'll have to demonstrate your skills at one of the interview stages.
Or we could create something like the American Academy of Software Engineers, or the Society of Software Engineers, or the Software Engineering Institute, which would be tasked with accrediting schools and programs, and in order to practice as a software engineer in the industry, on top of a university degree, you'll have to pass another examination from the credentialing authority to obtain a professional title like Professional Software Engineer or Chartered Software Engineer.
Other professions gatekeep before you can take the interview.