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.
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.
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.
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.
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 :)
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.
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 """