Earlier quoted context omitted.
> I know the allure of a big paycheck is too much for most people, but why are ok with going through these ridiculous circus acts just for the "privileged" of working for Big N? Cause having a lot of money changes your life and it's not worth giving that up for a bit of pride. Also working for "Big N" could give you access to very interesting projects, either while you work there or after you leave, since brands do m…
That's fine, but you can't have it both ways which is what a lot of the complaints around whiteboarding are. Either you accept that it's the industry standard and the gateway to a big paycheck and a prestigious CV, or you don't participate.
The time spent on practising white board test may not be worthy
41–50 of 63 posts
Re: The time spent on practising white board test may not be worthy
#42Then there the second part where the author considers algorithmic knowledge as useless (or not so much useless at best) because the tools available to a programmer already implement any relevant algorithm.
There's some ironic parallel between this way of thinking and algorithmic proficiency, actually. Many algorithms work by leveraging data structures whose understanding of internal working isn't needed. For example, one way to efficiently merge N sorted list into one big sorted list is to use a priority queue. Do you need to know how a priority queue is implemented to find this solution? Not at all. You just need to know the interface it offers, and the complexity of each method. Finding the k-th smallest element in a list can be done using a heap. Do you need to know how a heap is implemented to find this solution? Not at all. You just need to know what a heap does.
Really, studying algorithms is like studying the C++ standard library, except that instead of knowing about classes and methods as your toolbox, you know data structures (and common patterns) as your toolbox. Of course any curious mind will then go deeper and actually read about how those things are implemented, building an even better understanding of the foundations, and solving even deeper problems with it.
While being an interesting parallel, this doesn't really answers the author's questioning about: what's the point? Which brings us to what the author forgot to address in his article: white board test. The title of article sets the scene with someone wanting to find a job in one of those big tech company hiring people who can pass the whiteboard tests, but then who somehow... forget about it and decides to abandon this endeavor? Well, fair enough, but to be perfectly honest, while Google & Cie engineers certainly aren't spinning up algorithms on a daily basis like mad computer scientists, the engineering level there is still quite high. So there's definitely some basis in wanting to pass the whiteboard interview, mostly working with intelligent people.
Re: The time spent on practising white board test may not be worthy
#43>You just need to call std::sort, and don’t care it is “bubble sort” or “quick sort” under the hood This is often the case, but not always. When you know things about the input data you may be able to get better performance than the generic sorts built into a language. Or, when you know more about sorting algorithms you may be better able to choose among the available sorts/sort options provided by a language or libr…
Present a candidate with a simple system with three levels of middleware API and have them plumb a newly exposed low-level value up through all three levels to the high-level API. This is unfortunately 75% of professional software development.
Re: The time spent on practising white board test may not be worthy
#44Earlier quoted context omitted.
I think this is the only way to fight the white-boarding standard interview. Stop applying to these jobs. I know the allure of a big paycheck is too much for most people, but why are ok with going through these ridiculous circus acts just for the "privileged" of working for Big N?
> I know the allure of a big paycheck is too much for most people, but why are ok with going through these ridiculous circus acts just for the "privileged" of working for Big N? Cause having a lot of money changes your life and it's not worth giving that up for a bit of pride. Also working for "Big N" could give you access to very interesting projects, either while you work there or after you leave, since brands do m…
Maybe. The people I know who leave the big companies almost always do so because the work ends up becoming somewhat wrote -- there is a lot of boring infrastructure to be maintained at big tech company du jour.
Re: The time spent on practising white board test may not be worthy
#45I don't think you understand the purpose of a whiteboard test. When I interview candidates, I'm looking for a lot of things that can't be practiced: - How well can you converse about a technical topic - How adaptable are you to design constraints - Do you understand the fundamentals of threading, databases, data structures, ect? - Can you "think in code?" - How well do you really understand the language that you spen…
You seem to have a reasonable approach to interviews. However, as a contractor I was in interviews where I had to code the optimal solution for a certain problem on the whiteboard without syntax errors. That's just silly. There was no discussion to show any thought process. It was about knowing the expected solution to 100%.
Re: The time spent on practising white board test may not be worthy
#46Earlier quoted context omitted.
I recently joined Blind and mostly follow the compensation discussions. 2 Takeaways: 1) Most of us are incredibly underpaid 2) A common question is when asking how candidates prepared that resulted in offers is "How many problems did you do on leetcode?" I'd never heard of leetcode but it seems if you want an offer from FANG, Uber, Lyft, etc then you put your time in practicing programming problems.
What's Blind?
Re: The time spent on practising white board test may not be worthy
#47This is like saying running for exercise is a waste of time because you could be driving instead. It's not about knowing a particular sort algorithm. It's about the discipline of solving performance problems in the small. Knowing how quicksort works isn't that helpful. Being accustomed to the thought processes that led to the development of quicksort is important in any non-trivial programming activity. I'm not writi…
Some of the interviews at lower paid shops I’ve either participated in or rejected have had more stringent requirements like weird whiteboard questions in the interview while working on more simple implementations (including shops where I found you won’t even be issued your own machine. You partner solely and share) than places where the work will be significantly more difficult and significantly better paid the environment more adult and the perks better.
I know FANG et al employ those tests for various reasons. I think a lot of other places just blindly emulate it.
Re: The time spent on practising white board test may not be worthy
#48>You just need to call std::sort, and don’t care it is “bubble sort” or “quick sort” under the hood This is often the case, but not always. When you know things about the input data you may be able to get better performance than the generic sorts built into a language. Or, when you know more about sorting algorithms you may be better able to choose among the available sorts/sort options provided by a language or libr…
Re: The time spent on practising white board test may not be worthy
#49>You just need to call std::sort, and don’t care it is “bubble sort” or “quick sort” under the hood This is often the case, but not always. When you know things about the input data you may be able to get better performance than the generic sorts built into a language. Or, when you know more about sorting algorithms you may be better able to choose among the available sorts/sort options provided by a language or libr…
I have done some optimizations in the past, and I think what the author is getting at, is that it's not too late to learn about the specific niche algorithm you're dealing with when you have it in front of you.
My favorite rule about optimization is one I learned from a former colleague. First you measure, then you find where you should look, then you optimize. Without measurements you're maybe doing more harm than good. And if you look up different solutions when you know what you're trying to optimize it's usually not that hard to find a better replacement. But you don't need to have the exact solution in your head for this.
What you do need is the rough cursory knowledge of algorithms that grants you the ability to see more quickly where you're losing precious cycles. E.g. knowing the tradeoffs between linked lists and vectors.
I've seen way to many tools that could be sped up by a factor of 30-100 in an afternoon, that I really have to agree with you that a lot of people don't know their craft. I just don't think rote memorization of algorithms Q&A is solving any of this. Take home exams IMHO are a much better measure. I can ask people why they chose a certain data structure, why they didn't do it another way (if I have an idea of what could be better). That gives me much more of an insight in how people think. Not how well they memorize things.
Re: The time spent on practising white board test may not be worthy
#50Earlier quoted context omitted.
You seem to have a reasonable approach to interviews. However, as a contractor I was in interviews where I had to code the optimal solution for a certain problem on the whiteboard without syntax errors. That's just silly. There was no discussion to show any thought process. It was about knowing the expected solution to 100%.
Remember, interviews are a 2-way street. If the company has unrealistic expectations in the interview, then it should influence your decision to continue pursuing the job.