Live data from Hacker News

The time spent on practising white board test may not be worthy

nanxiao.me

41–50 of 63 posts

Re: The time spent on practising white board test may not be worthy

#41
post #33

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.

What makes you think it's the same people accepting the status quo and whining? :)

Re: The time spent on practising white board test may not be worthy

#42
The first part of the article where the author explains how time-consuming it is to study algorithms can really be applied to any field of study. The fact that the author spends much time learning algorithm doesn't mean that he's "dumb" as he humbly presents himself, it just means that he's just getting started. It's like trying to pick up guitar and when you realize that it really is hard and takes time you decide after one month that you're not a talented guitar player.

Then 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…

I've been in the business for ~20 years and there are very few cases I can recall where it really mattered what the underlying sorting algorithm was, and no cases where the actual details of the algorithm's implementation mattered. Not saying these cases never come up--I am saying they are exceedingly rare [EDIT: and often company-specific], and making them general candidate interview questions might be a bit of a waste of time.

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

#44
post #33

Earlier 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…

> Also working for "Big N" could give you access to very interesting projects

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

#45
post #36
post #28

I 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%.

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.

Re: The time spent on practising white board test may not be worthy

#46

Earlier 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?

Probably https://www.teamblind.com/

Re: The time spent on practising white board test may not be worthy

#47

This 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…

I think it’s more akin to applying for a driving job but they test you on your running rather than your driving. Where you should be practicing your running anyway to maintain your ability to be an alert and healthy driver, but it’s not likely necessary for every driver to be in tip top physical shape to be a good driver.

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…

We've reached a point of complexity where few if any people hold the whole stack - from electrons wiggling along to making the button more enticing to click - in their head. You have to eventually decide where you'll settle in the layers of abstraction and let others handle their own.

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 understand both of your arguments. In the end I hate whiteboarding problems, because I don't really need to know all of the potential problems in detail, but a certain interest for why some algorithm is faster than another IS indeed helpful when programming fast applications.

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

#50
post #45
post #36

Earlier 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.

It does influence the decision. But there is also a good chance that the engineer doing the interview doesn't really reflect the work environment.
Post reply on HN