3 ms·
I am not able to answer any of these easily and still get a lot of job done and job offers every day/two days. Interviewing for a frontend Facebook job is all
by vvoyer 12y ago
I am not able to answer any of these easily and still get a lot of job done and job offers every day/two days.
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.
- barrkel 12y agoI like to give slightly more difficult versions of these questions as take-home problems, rather than interview problems. Give them out after phone screen, but before in-person interview. 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.
- aercolino 12y agoFor me it would be much more valuable if the programmer knew that a tree wouldn't be needed at all if expressions were represented in reverse Polish notation. However, in the last 30 years, I needed to process expressions at work and by myself exactly zero times.
- barrkel 12y agoHumans have to read these expressions and understand them for auditing purposes. RPN might be suitable to CS and mathematics geeks, but not everyone in banking has that background.
- vvoyer 12y agoThanks for your reply. I understand that the programmers you are looking for are not typical programmers. 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"