5 ms·
I've been coding since I was 14 (I'm 27 now) and went to uni; I usually never have a problem with technical interviews, but I applied for Facebook just to try o
by jondubois 10y ago
I've been coding since I was 14 (I'm 27 now) and went to uni; I usually never have a problem with technical interviews, but I applied for Facebook just to try out their interview process (because one of my academic-minded software engineering friends told me that he didn't pass the third interview - So I was intrigued).
I thought that their questions were mostly good but the interviewer makes you code live in realtime - I found this really stressful and I froze several times.
I remember one of the challenges they posed in one of the interviews was to flatten a JSON multidimensional array that had an arbitrary level of nesting. I implemented the recursive solution without any problem (which is the difficult part right?) but then the interviewer asked me to come up with a non-recursive solution - This is actually easier, but because I was under stress and was still thinking about the problem in recursive terms, I just froze.
I even asked "Do I need to use a fringe list?" (referring to a structure used in several search algorithms) but I don't think the interviewer understood my question and they weren't able to give me any guidance for what they were specifically looking for so I just asked to skip that question because of time pressure.
Then later they asked some really easy questions about HTML and CSS (which I've done thousands of time) but because of the IDE they made me use, I couldn't actually run the code to test (and under stress, I forgot the exact syntax for a few things).
I guess this is an interview process you need to really prepare for.
I suppose the process makes sense for FB; the feeling of 'being watched' which I felt in the interview is probably common while working there day-to-day (considering the open workspace environment) - They need engineers who can perform in such an environment. I'm definitely not one of them.
- pmiller2 10y agoI freeze under pressure, too, but I work in an open office and have no issue with that. It's not reasonable to literally watch over someone's shoulder while they're working. That's just interview hazing. They do it because the people who hired them did it, on down to the first engineering employee hired by FB who probably had it done to him/her because the people interviewing had no idea how to interview any better. BTW, what's a "fringe list"? Googling that term shows me results pertaining to the TV show Fringe (which is great, but I'm sure not what you're getting at).
- jondubois 10y agoI guess it's not broadly used terminology but it was common when I was at uni: http://mnemstudio.org/path-finding-a-star.htm http://mnemstudio.org/path-finding-a-star.htm - It's basically a list which you use to hold nodes which you haven't visited yet and you expand them in-place and pop them off as you visit them.
- pmiller2 10y agoOh, right, like the "seen but not visited" set you maintain when doing BFS.
- drvdevd 10y agoActually to me this just sounds like a typical bad tech interview. The idea that you'll be live coding on the job with someone looking over your shoulder is kind of silly no matter where you work, even in an open workspace. Also, you'll probably use your own tools not their IDE, and if you did use their environment, you'd have ample time to pick it up. And so on and so forth. I've frozen in interviews before under similar circumstances. The only blame I place on myself is not being a better interviewee... it really is a skill unto itself quite apart from the job and apart from programming.
- jondubois 10y agoI actually did a very, very similar interview before without any issues. The difference was that the previous time, the interviewer gave me a paper with lots of questions and left the room.
- sschueller 10y agoIs there no trial period in the US? Every person we hire here (Switzerland) gets interviewed but because it is almost impossible to know if someone is going to work out there is a trial period of three months by law. Usually with a termination time of one week. After the trial you will usually need to give at least three month notice. You can get the most brilliant Coder but if he/she doesn't work with your existing team for what ever reason, he/she isn't the right fit for you. You can only find these things out after they start working for you.
- pmiller2 10y agoUnless there's an employment contract or collective bargaining agreement stating otherwise, people can be fired in the US at any time for almost any reason. That "almost" hides a little nuance, such as the reason can't be related to race, gender, or certain other "protected" reasons, but, "any reason" is a pretty good approximation. No notice period is required. If you're lucky, you get to walk out by yourself carrying a box of your stuff. Frequently people are escorted out.
- oblio 10y agoThat's horrible. And I'm from Romania, which is a second world country, basically. We usually have a two week notice (it depends on the company and the position) and I've never seen someone escorted out. There's often a short inventory of company assets you used, and that's it.
- evgen 10y agoIt has its downsides, but the benefit of such a system is that it is easier to hire someone as well. It lowers the risk of hiring if you know that you can terminate employment just as easily, so the jobs market ends up being a bit more robust at the cost of a bit more volatility. It should also be noted that for the sort of jobs we are talking about here there is a difference between being terminated 'for cause' (e.g. incompetence, theft from your employer, etc) and termination due to downsizing and the job itself being eliminated. In the latter case you will often get a package of benefits and the termination process is somewhat similar to the one you are familiar with.
- scarface74 10y agoI have a coworker that said he basically walked out of an interview that asked him to write three different sort algorithms on the board - he was applying for your standard enterprise developer. I agree with him. I'm not applying for a code monkey position. I'm applying for a senior software Engineer or architect. Someone who can use modern tools and create solutions. I had two coding tests during my last round of interviews. One on a computer onsite where the interviewers left me alone with a computer and IDE and permission to use Google and the other a coding problem I had a week to complete, turn in on github, and the second part of the interview was going to be a code review. I found both to be acceptable and relevant.