First of all, I'm not sure where this "10 years" is coming from. I know many/most "senior" developers who reached that level long before 10 years out of university.
Secondly, programming doesn't have a standard licensure process like medicine. If it did, I think a lot of these kinds of interviews that companies do would not be necessary. But as it stands I've interviewed many engineers with years of experience who couldn't competently program, and I'm talking about maybe a tad above FizzBuzz level proficiency.
But as it stands I've interviewed many engineers with years of experience who couldn't competently program, and I'm talking about maybe a tad above FizzBuzz level proficiency.
I've interviewed close to 400 developers over the past couple of decades, and I've not met many who can't code. Some are great, and some are clearly at the bottom end of the distribution, but most are just OK. They can get the job done, they can do good work given a good team to lean on, but they're not force multipliers or anything special. My experience is what you might expect given an normal distribution of skill levels.
If you've come away from lots of technical interviews thinking the candidate can't code I reckon it's more likely due to you. Perhaps you can't put a candidate at ease and find areas where they can talk about their ability in a positive way. That seems more likely than "many engineers with years of experience who couldn't competently program". I guess it's also possible that you simply work somewhere that good candidates don't bother applying to though. Either way, I don't think your experience aligns at all with mine.
I am not sure whether you have an incredibly good filtering system or have got incredibly lucky.
I have interviewed similar numbers and have been repeatedly complimented on my ability to put people at ease, but have encountered exactly what the grandparent comment says. It really opened my eyes seeing so many with many years on their CV but struggling with (literal) fizzbuzz.
This experience accords with most I have read about online (starting with the semi-famous coding horror article [0]). It is your experience that differs from the norm, honestly.
It really is about interviewing skills. I noticed a strong trend over time that the people I interviewed kept doing better. You need to engage with people without letting things get confrontational.
The best advice I can give is look at how entertainers
get random audience members to relax and engage in front of huge audiences. Many people lock up in such situations and can barely say their own name, yet with the right approach it’s a non issue.
Compare that to the rapid fire technical questions I have watched people get into and it’s obvious what’s going on. Someone fumbles something and then gets flustered and shuts down. But, pepper the exact same questions into a larger conversation, perhaps going so far as to occasionally complement them, and shockingly they do better on the exact same problems.
I have witnessed a huge range of anxiety levels from candidates and when you get used to interviewing it is pretty clear what comes down to anxiety and what comes down to simply not being able to program.
When a candidate struggles, I gently lead them and help move things along in a very collaborative way - I am also very tolerant of mistakes or poor starts and proactively give every opportunity for those to be discounted.
If somebody, after 10 hints as to the ordering of the if/else if/else of fizzbuzz, still cannot figure it out when you have held their hand for 30 minutes that's not because you lack interview skill.
Interviewing is inevitably vastly imperfect and many aspects that are not relevant to the job will play a role (for example - time constraints dictate that you must ask small questions that are sufficiently challenging that might not always be entirely representative of the job) - nobody who is honest could claim otherwise, but that is the nature of the task - it has to be an approximation - and you have to asssess actual ability to code and do the job.
Handholding doesn’t solve the problem of someone second guessing themselves, and can make this much much worse. Outside of pair programming it’s normally a solitary activity where people get plenty of time to reflect. Interjecting in the middle of this is again very different from a work environment.
No, I am saying putting someone at ease is only half of it you need to keep them at ease. The standard script I see people use is basically some warmup conversation where everything seems fine, followed by a grilling.
Conducting a full interview “without letting things get confrontational” is difficult. However, unless the job actually requires intense face to face confrontation you want to know how well they can do the job, not how well they can interview for it.
I've only been on the interviewer side a few times (roughly 10), but even then I've run into 2 candidates that couldn't code.
If interviewers are screening candidates for certain attributes (regardless of how well those attributes map to being good at the job) you should expect most candidates to lack those attributes. Candidates who have them get hired after a few interviews, candidates who don't have to do many more interviews to find a job (or get discouraged).
> First of all, I'm not sure where this "10 years" is coming from. I know many/most "senior" developers who reached that level long before 10 years out of university.
That's because it's a near-meaningless title that has been watered down. Everyone is a "senior" now by their second year working.
As of 2-4 years ago, the number of programmers working in the industry was doubling every 5 years. That might not seem relevant until you realize that it means half of all programmers have less than 5 years experience. If you have 10 years in the industry, you're more senior than 75% of your co-workers.
That's why anyone with 5 years on the job is considered "senior", even though most in most professions you're just getting out of the entry level after 5 years.
The most frustrating thing about this post for me isn't the "10 years" issue, but rather this:
Most of these companies have solid internship programs, and almost all E3 (entry-level) positions are offered to returning interns.
What this means is that there's no track into a junior position where you can gain experience and work your way up to senior within a FAANG if you're older than a recent college grad. That's unfortunate, because as someone working for a mid-tier company I'd like to work hard and land a senior role at a FAANG but I often wonder if these companies would look down on candidates who have spent years at lesser companies.
It really depends on the place and nearly always applies only to experience specifically in the exact role you are in.
I have 15yrs experience and moved sideways a few times and I am in effect treated as if I were new in my current role.
So senior doesn't so much translate to experience or even transferable working knowledge but rather 'how well you have done politically to gain position in this specific company'. Yes I am cynical :)
You do need to take them every so often to stay certified. This cartel isn’t for slackers, come now.
(I jest - half my family is in the medical business. I studied economics for a while)
Secondly, programming doesn't have a standard licensure process like medicine. If it did, I think a lot of these kinds of interviews that companies do would not be necessary. But as it stands I've interviewed many engineers with years of experience who couldn't competently program, and I'm talking about maybe a tad above FizzBuzz level proficiency.