My Interview Experience at Microsoft
philosophicalgeek.com
philosophicalgeek.com
It is always a good idea to get a good refresh of CS basics, and algorithms, and more advanced stuff as data graphs, but at the end of the day, (if the interviewers are good), your raw skills will show up. Just like math, skills are built in top of each-other and show with time, an you can advance more if you internalize low level abstractions (pointers, linked lists, hashtables, etc). You can't just pick a book and learn these things in few days.
But a 9.5 hrs interview is grueling and a tad exessive, also tells something about the company that you are joining. If they like interviews that long, means that have some huge bureocratic internal processes. Interviews by 3 technical people, and one manager/product manager should be more than enough to spot a good a candidate, within a 4hr time-frame.
Anymore than that, it is just a waste a time.
Microsoft is a huge company. The best thing it can do to improve its odds in the marketplace is to put enough process around hiring such that they can significantly reduce the false positive rate.
I'd argue more people should do full day interviews than less. You wouldn't marry someone after knowing them for only 4 hours, so why should a company hire someone after getting to know them for less than a day? ;-)
The problem is, if you insisted that every first date lasted ten hours, you'd rarely get a second. The ones who did make it though your screen would probably be neurotic and weird.
Most people get married once or twice in their lifes, and expect their marriage to last forever. Nobody expects that from a job.
You might want to equal getting a job with dating and sleeping with a new girl, but not getting married ;)
Similarly, for a startup (or engineering team), each hiring decision is so important that in aggregate it will pretty much determine how happy/productive you are... and possibly in the case of a startup, for the rest of your life as well.
The time scales may be different, but the impact is similar.
If that takes a 9 hours or a 9 days, then so be it. At least then I'd know I would be working with people I can respect and learn from and would enjoy being around.
All I am ever interested in is a code sample. That will answer all coding questions. It can not even be compared to forcing a nervous candidate to code by writing on a white board. It also can not be compared to a quiz on topics in programming. Get a code sample, read it, ask a few questions about it, that is all.
As to if a person would "fit' on a team, it takes roughly 3 seconds to figure that out. So have each team member meet with the candidate for 1 minute, that's plenty of time.
Then do a background check, call references and that's all there is to.
Everything else is just smoke and mirrors BS. It selects for people good at interviewing, not good hackers.
And lastly you can always fire people, if they lied about their code sample or whatever. So lets stop acting as if hiring someone is irreversible. In America at least, firing people is still easy.
There's one thing to note about large companies. Large companies can't trust one good developer to evaluate a code sample. So that's bad, and they then fall back on a day long dog and pony show. And then they usually have huge, ugly, crufty code bases, that means that they can't even tell if someone is good or bad until AFTER they grok the code base. And groking the code base often takes a LONG time. So to pay someone for months only to then fire them and start again is expensive.
And the moral of the story is: Stay away from big companies.
Last 2 interviews I had I was turned down largely due to poor performance on coding challenges.
I feel it was the right choice for each company to make. They had really great teams and I admire them for holding out to hire an equally charismatic individual with truly excellent coding skills.
The hurt you feel getting turned down when you know you've put your best face forward is the blunt end of professionalism. A good indicator that you've got your sight set in the right direction.
Sounds vaguely symbolic.
Someone drank the koolaid.
You can be technically savy and still not be a good fit for the team and vice versa. Communication is equally important if not the most important facet. If a team isn't on the right wavelength you'll have more problems than you can count.
Then write about it, be it a blog, wiki, or your own personal notes.
Adaptability, creativity, insight, and the ability to think quickly and accurately and express ideas clearly and concisely are often greatly enhanced by such activity.
Some people are successful in "cramming" knowledge before an interview (or exam), but the best ones I know are those who live it and absorb deeply the learning. They also hone their art, and if you want a truly great company, these are the people to employ.
Certainly I can not see somebody stellar enduring a 10 hour interview to get a job. No offense to the author of the blog article - he might still be potentially stellar, but not knowing it yet...
Considering the dating analogy: suppose you were on a date with Scarlett Johansson. If it would took you 10 hours to figure out if you really like her, she could be forgiven for thinking that there is something wrong with you.
I need to read those books if not simply out of curiosity.
Is there any MS employee in this board, can they shed some light on what OS-es do people use to develop with. Maybe it is allowed, but is it frown up to use a non-MS OS?
But really, Vista-hate? Does Vista really get in the way of you opening MS Visual Studio (which seems to be the IDE of the day there)?
http://www.charlespetzold.com/etc/DoesVisualStudioRotTheMind...
The only reason I can imagine why Microsoft would put its programmers, device vendors, third-party developers, and ultimately its customers, through this much pain is because once this copy protection is entrenched, Microsoft will completely own the distribution channel. http://www.cs.auckland.ac.nz/~pgut001/pubs/vista_cost.html
And I'm pretty sure they run Windows too.
Don't know why you would want to use XP though, it seems pretty old and funky these days. And who really wants to check for spyware every day or two. I choose to use vista, but did a good deal of my coding in emacs, and kept ubuntu on my home machine.
There are the fanatics that insist on using vista and live search instead of google because anything else would be "helping our competitors".
There are the normal xp/vista + VS people, I would wager most people fall into this category.
Then there are the awesome crazy ones, the people who write the .net CLR and windows drivers and stuff seem to use VS, source insight or emacs.
There are also macs around, but very few. There are a lot of tablet PCs, I think msft itself is the worlds largest consumer of those things.