Did they really optimize for hiring the top 0.001% of engineers or it's just that the fish is rotten from the top.
We had to solve binary and hex division and multiplication on paper for exams and study Dijkstra's algoritm and binary tree traversal in highschool CS. Ugly stuff for a bunch of 16 year olds who just wanted to make Flash games. Really made me hate CS.
I was solving leetcode-adjacent problems for the entire last year of high school in preparation for the final exam though.
This is not ... hard. It's the same logic as decimal multiplication/division on paper.
> study Dijkstra's algoritm and binary tree traversal in highschool CS
That's more like it!
Do you really think tests where you gotta solve several divisions and multiplications on paper in hex and binary with no aids under time pressure is approachable for every 11 year old who just starts to learn about CS?
It's good to learn and know how such operations are done, but those tests were the bane of my 11 year old childhood.
Year+ is a fair assessment. A proper Computer Science course(4 years!) is mostly about algorithms. Most of leetcode hard would qualify as warmup exercises for my class.
That was a while ago. Right now? My brain is chock full of architectural stuff, k8s, several programming languages, multiple cloud provider idiosyncrasies, etc etc. Can I do leetcode? Yeah sure. Can I do it during an interview? I've tried recently, bombed spectacularly.
I'll probably have to invest the time prepping properly because there's little choice these days. Like you said, it's using up our precious free time. I'd rather be, I don't know, writing some stuff in Rust so I can add that language to my toolbox.
It's no wonder that - at least for a while - Google was churning out new products left and right. It allows people to build new stuff instead of have to maintain existing stuff.
Funnily enough though, I heard once you join as a Front-end engineer, you are pretty much a regular SWE and can join any team and work on any tech, even backend/systems.
I didn't practice that much since I hate wasting time on useless tasks, and the interviewer literally told me to just leetcode and read the interview book. I asked him a bunch of web questions and he had no fucking clue, all he did was leetcode and interview every year.
The questions the human is asking you come from a big question bank and a lot of it is listed on LeetCode under the meta company tag because people leak them.
People use Leetcode to practice for those interviews, they don't use the leetcode site in the interview
I mean, now I'm just here to watch the downvotes pile on....
Designing url-shortner is no different than edit distance.
Though it worked out for me in the end, but I was definitely annoyed for a day or two.
I told her no thank you and hung up.
With Google it's actually been a pattern. Interviewed for them and passed HC three times, but each time I couldn't bring myself to work for them given how bored everyone looked.
They must be really strange folks. I can't imagine 1) a company who would propose such a thing to a (potential) employee, 2) a person who would agree to that. Seriously, WTF.
Edit: In fact thinking back, they even sent me tips on how to improve my leetcode skills in preparation for the interview! The whole process was completely guided by it.
It means reasonably complex algorithmic and data structure problems you're supposed to solve by coding under pressure, quickly, in interview conditions.
And if you think that's not happening, I have a bridge in Brooklyn to sell you.
Algorithmic thinking is kinda what I do. So solving those problems doesn't feel like a bad proxy for how I might perform on the job.
However, how often do you come up with high performance, close to optimal algorithms, on your own, within 45 minutes?
How often do you implement heaps and such as part of your day job, versus using standard libraries or common ones?
It’s optimising for the 1%.
There are many algorithms in "leetcode" style questions that almost never get used in real world software development. Tree traversal is not one of them.
Heck, the whole family of lisp languages are nothing but "(non?)abstract syntax trees". Imagine getting reprimanded by a user named `morelisp` :)
And to be pedantic, since DOM trees are not binary trees, it's not a "binary traversal" problem. I encounter binary trees a lot less than the non-binary counterparts, but the traversal algorithm is basically the same.
By the second: Holy shit go read a book. Please.
That being said, guidance is to ask 2 medium difficulty questions as opposed to 1 hard one.