I just came across this 2015 tweet by Max Howell, the creator of homebrew:
So, the question is do you agree with companies that do a whiteboard test during interviews? Some agree and some disagree. People who agree with this philosophy often argue that if you can do it in code, why not on whiteboard? Others who disagree argue that in your day to day work you will probably never have to invert a binary tree.
I believe interviewers should first assess if it's really important to possess such knowledge in algorithms to work for their company. If the answer is no, I don't see the point of whiteboard test.
What do you think?
Imho, whiteboard tests are a good way to test a number of things.
Can the applicant
They are all important for a professional developer's every day life, so checking them in a sane context is a vital part of an interview.
Imho, the above tweet does not include enough context to conclude that the Google guys are the jerks, or if the whiteboard task was evil. It's hard to put things into relation if you only read a two-sentence rage post from one side.
I think binary trees are useful to know as an advanced topic, as they power some useful data structures. But I'd not consider it something every programmer should know, just some fields and some levels.
But useful though they are, I've never had to implement one myself for work (I did as hobby only). And I didn't know what inverting means.
Although if inverting is just "mirroring" the whole tree... I hate to be cruel but that's something a programmer with a few years of experience should be able to do. Is that really too much to ask? It may be useless but it's not hard.
I've found several definitions of "inverting" though - maybe the point of the question was to check if the programmer asks for clarification rather than giving up or just assuming things?
Whiteboards are a stupid medium though.
no, don't do whiteboard test instead we'll talk to the candidate try to get a gage on what we think their ability levels are from asking technical questions.
Most often its a gut feeling about the person if they seem responsive we'll offer them a trial day with the team to see how they get on.
Mostly we don't expect developers to just hit the ground running with us but require on job training and introductions to our workflows.
I find this works well for both parties.
I've seen Coconut tree, Mango tree, Jack fruit tree... but what is Binary tree? Is "Binary" a fruit?
It's very hard to invert a tree myself (and even on a white broad?). We'll need at least a JCB, right?
How many others here don't know what Binary tree is and how to invert them?
P.S: I don't know :(
I think these White Board Tests are not important but similar should be there.
They do not show that you know how to solve that specific problem but
What we miss in a company interview is that it is not a one-man job; it's a team game and it has to be played as a team.
Consider Football, if Messi could have scored all the goals alone, still he will not be able to win the game as Team is all the gears needed to function as a single unit.
I talked to many developers, and I always come across this question of the importance of this kind of whiteboard interview process.
Whiteboard Interviews or similar process is important to be not thrown away but not that important to reject people straight away.
The above statement is ambiguous in itself but you need to give time to analyze a candidate. And once you have analyzed enough, share your analysis and opinion honestly. Like I value Data Structures more, could you implement with certain Data Structures or what if this problem of 100 entries scales 1000 times