The best job application process I've been through was when the employer asked for a small program to be submitted with the CV. The program had to use their infrastructure and existing products, which gave me a quick tour of their processes, the tools they use and the quality of their existing code base. I assume that in turn, my code gave them a clear view of the way my code looks in real life, the tests, the comments, the docs etc. This was followed by a short mostly non-technical interview.<p>I wish more companies would do this.
Maybe it is because I have been stuck working with .NET environments so much, but they seem to be focusing on stuff that is too complicated.<p>The basic FizzBuzz test is about the right level of complexity. It weeds out those people who cannot even do as simple loop while still giving real coders enough rope to work with to show their stuff.<p>To be honest, the more advanced concepts in programming can be mentored and corrected if the basics are in place. In my experience, once they pass a basic coding test, you are interviewing for culture, to determine if they are a junior or senior coder, and whether or not they know they are a junior coder and will therefore be open to improving.
Asking people to write code on a whiteboard in the pressure of the interview environment doesn't seem very reflective of how they work day to day to me. Perhaps judging them on previous projects or open source work they have contributed to would be a better approach. If someone gave me a pen and a whiteboard and asked me to draw code I think I would likely say thanks but no thanks and walk out of the interview.
I'm currently preparing for my first coding interviews, using a blog post about interviewing at Google as my guide. [1] In addition to studying the subjects in the post (algorithms, data structures, discrete math), I'm taking the three public Stanford classes and writing an iOS app that I will put in my github. Any advice re this approach? My career goal is to program useful stuff people use, with smart people.<p>[1] <a href="http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html" rel="nofollow">http://steve-yegge.blogspot.com/2008/03/get-that-job-at-goog...</a>
Can't submit comments on the site. I wanted to submit:
----<p>Instead of coding on the whiteboard, have you ever tried setting up a work station / projector combination ? (I'd even consider dual projectors for a dual-head setup).<p>I think it's much more realistic to watch how a potential candidate actually "types" the solution. They may stub things out, then go back and fill it in, they may write one version from top to bottom, or they might continually copy and paste code around the place. There are a thousand possibles.<p>I think actually watching them type and interact with the IDE will give you a lot of understanding that watching them struggle to draw a coherent "}" on the whiteboard will not.<p>-Dan
It depends a lot on what company actually do, but lets be honest - not so many companies out there need some tricky algo implemented. Most stuff already invented and you, as programmer, have to know when to use what, how it should work together and what is approximate complexity of two or more algos, which could be used in particular situation..<p>Why I am saying this... In most cases (unless someone interviewing me for position where I will be developing "nanobots to build house on Mars"), if interviewer will ask me to write actual code on real white board.. i will pass this position no matter how big or cool or both this company is.<p>My memory and attention have better use then memorizing particular syntax of particular language, particular code of particular sorting algorithm, etc.
I'm starting to do some job hunting for a professional programming position and I'm a bit nervous about these types of interviews. I think I have the skills, but having been a solo programmer for a long time, I'm nervous about people looking over my shoulder and watching while I try to think through a problem. It's probably more a lack of experience with these types of interviews than anything else.<p>As someone hiring a developer, can't the submission of previously written code provide good insight into the type of person you're interviewing, or is there concern that the code is not really theirs?
I've also found that having a laptop with you with your preferred IDE ready to go is a great idea. I suck at hand writing but type like a champ, and feel that "whiteboard" coding is more of an exercise for those who were TAs in college than someone who can show how to really code in person.<p>About 1/2 the time my suggestion to write live code was shot down. I do fine on the whiteboard, just hate it.