Interviewing for a frontend Facebook job is all about doing an Array.map/reduce no more.
What matters is what you can do.
Few engineers really need to learn and master "Binary Tree Level Order Traversal" every day after coffee.
Interviewing for a frontend Facebook job is all about doing an Array.map/reduce no more.
What matters is what you can do.
Few engineers really need to learn and master "Binary Tree Level Order Traversal" every day after coffee.
And yes, something involving a binary tree order traversal would be the kind of thing that I'd be interested in. Because I want to work with programmers who can code, who at the very least know what recursion is and are able to employ it in the solution to a problem.
Concrete example: the startup I'm at has an expression editor. Expressions are tree structured. Typing an expression tree involves a post-order traversal. If there's an error in the validation, I need the programmer who's working on it to not be phased by these simple concepts. This typing currently happens in an async background task in Java, but it could give a better experience to the end user if it occurred in JS on the client's machine. This stuff just got really relevant after coffee.
But more importantly, I want to see what kind of code - how convoluted or not, how elegant or not, etc. - the person writes. I want to know what kind of code I'm going to see in pull requests, and how much of a PITA it's going to be to get them up to scratch.
Standard engineering stuff like unit tests can be taught. Writing tight, readable and elegant code is much more difficult.
However, in the last 30 years, I needed to process expressions at work and by myself exactly zero times.
What I wanted to point out is that I was frequently impressed in my career by people capable of solving these problems easily and thought of myself a bad or less doable programmer.
While in reality there are a lot of different programmers out there and they will fit differently given the job they need to do.
Sometimes it will be a requirement to know all theses problems well, sometimes even if you know them well you will lack the needed experience to do the actual job.
I am a JavaScript (now you understand right? :D) developer working on frontend/backend websites and I can tell you most of the people I have worked with do not care about me knowing easily how to deal with a "binary tree order traversal"