Also, even though I've worked for various "top" companies, I've never once had to write my own binary tree, hashmap, Dijkstras search, etc etc. Note, I also think FAANG style interviews are a waste of time too, which is why at my current company I make all applicants do a take home test which is analogous to the kind of work they will be doing if they get the job.
leetcode definitely helps but won't guarantee being hired. There are many things we look for that it won't help you with.
And the unfortunate fact is that merely having experience doesn't mean you are a competent programmer. We need some way to check for that, and onsite coding is the best way we have right now, even though it's imperfect. Sometimes companies ask more realistic problems ("implement this API on a laptop w/ access to docs") so it's not always so artificial, but the artificial problems make it easier to have a level playing field.
Over the last few years I have kind of seen the light of day. When you’re hiring at scale, you do need a standardized process. On the other hand, while I haven’t spent a day studying any really complicated algorithms[1], I’ve spent just as much time knowing how to talk the talk of a “cloud native enterprise architect”, and it took me awhile to realize how much of a hypocrite I was being for saying that I would never jump through the seemingly artificial hoops of studying algorithms.
[1] that’s not entirely true. I spent a year or two maintaining a bespoke compiler/IDE/VM for Windows Mobile.
It says that they can be gamed and that they aren't perfect. It doesn't mean they're entirely useless, entirely wrong, or that they generally don't select for the profiles they want to select for.
> Do you really think they are all the best and brightest?
Having worked at FAANG, non-FAANG with a lot of ex-FAANG, and non-FAANG, generally speaking, yes, I do believe that.
They want you to want the position. They want you to explicitly study and prepare for the position.
Sure you could go from zero to ready to interview Google over the course of the year. But I feel like most experienced software developers would only have to study for a month or so to really brush up on interview questions.
I have a previous comment on this site about reading. That is actually what I look for, intellectual curiosity and a desire to continue learning and growing.
I'll just quote myself:
""" What I look for in a developer: READS BOOKS. ( Audio books count )
That's the only thing. I'm sorry, if you are not reading and studying to keep up, you are getting left behind. There are so many brilliant people writing amazing books on a huge array of subjects. If I could get every one of my developers to read ONE book on software design[0] a year, I would die happy and the entire industry would be 10 years ahead.
They don't even have to be technical books. I just want to see intellectual curiosity and a commitment to self improvement.
- 0: In the vein of Clean Architecture, The Pragmatic Programmer, The Mythical Man Month, Designing Data-Intensive Applications, The Google SRE book, etc """
But how would you know that? I thought I was a pretty decent programmer when I started college - I had been programming since I was 5! But a five-year engineering degree gave me some much-needed structure around the things I already knew, and filled massive gaps in knowledge I didn't even know I had.
If you find learning in a structured environment fun and can get someone else to pay for it, a masters may be right for you :)
Per my experience working in a big tech shop, most of the engineer-kind co-workers DO have a STEM degree. I don't think a CS degree is required in that sense, as long as the background is relevant. Only one of them came with no college degree, but he fits in well and decent in his work.
Hiring is difficult as always, degree is indeed a powerful indicator. When the amount of candidates is not that tight, and the hiring process is increasingly streamlined, its importance will only grow.
At another job, a theoretically inclined colleague was grilling a junior candidate on DDD and hexagonal versus onion architectures because that interested him. I had to point out that wasn't relevant at all for a fledgling programmer's ability to write a basic web API.
Self-selection is a big problem, whether it be through cultural values, personal interests or the topic at hand: degrees. Let's please stick to what a degree is: an authority argument and a semi-reliable proxy for intelligence. The rest is incidental, as you can be lazy and disorganised with a degree, or possess a broad theoretical background and be intelligent without.
I take issue with bootcamp being self taught - they are not remotely the same thing at all. I would probably be more suspicious of bootcamp grads than anything else - from experience of various commercial training over the years. Someone truly self taught - rather than winging it - is approaching it a very different way.
Being old, most of the seniors in my early career had no CS degree or even degree at all. A fair selection of whom could give anyone in today's world a run for their money.
The TL;DR of which is, of course, most applicants regardless of background will be pretty dire... Which is why hiring remains non-trivial.
I've met CS grads who can't code FizzBuzz, and I've met self-taught programmers who work 1/10th as hard as I do and are 10x as productive. There's no correlation whatsoever, and the industry reflects that; the pay scale is exactly the same.
I've met a few decent self-taught programmers. Most are awful. Over and over again the bootcamp grads and people who have never attended school end up being the worst performers on my team.
A LOT of the people I have worked with who do not have degrees have bad attitudes and are hyper-vigilant about "no degree" microaggressions.
I use the stuff I learned in university all the time. I didn't go deeply into debt to attend a private university, instead I worked during the day and went to school at night.
There is such a massive glut of people trying to get into the entry level programmer jobs. It's an easy decision for me: Throw the people who do not have a 4 year degree or relevant work experience into the trash. I would assume that a LOT of other people are doing this.