Ace this test and get a job interview with Facebook

Even if you aren't looking for a new job, Facebook's timed test for potential programmers is a fascinating challenge

Ready to take the hardest programming quiz ever?

I'm not talking about a CS 401 exam. I'm talking about not-quite-real-world, stretch-your-synapses questions that will give you a headache. And if you're lucky, they'll lead to a phone interview with one of the headhunters at Facebook.

No, you don't need a degree. Facebook couldn't care less if you graduated from high school. And showing up for the test in faded blue jeans or a natty bow tie won't help one whit. All you need is an Internet connection, a Web browser, and an IQ that'd boil water. In Fahrenheit.

You also need to know C, C++, Java, Python, Perl, Ruby, C#, or PHP. No, you don't need to know all of them. Pick your poison.

If u cn rd ths n code lk a demon u cn mak 6 figrs.

Want to try a test question? Look here. You'll have 45 minutes. There's a list of programming languages at the bottom of the first page. Select the language and you'll get sample data. That'll get you warmed up.

According to George Anders's new book "The Rare Find," the folks at Facebook still use traditional selection and interview techniques for finding new employees: submit a resume, show off your degree, toss in a flashy school and a nosebleed-level GPA, and you might get a job. But they've also raised the programming puzzle challenge to an art form.

Five years ago, CTO Adam D'Angelo and engineer Yishan Wong decided to broaden Facebook's hiring horizons. "We developed this theory that occasionally there were these brilliant people out there who hadn't found their way to Silicon Valley," according to Wong. "They might be languishing in ordinary tech jobs. We needed a way to surface them."

Thus, the superchallenging programming puzzles. Even if you're an itinerant sheep shearer in New Zealand, you can step up to a monitor and try your hand.

We aren't talking about "how would you move Mt. Fuji" Microsoft hand-waving questions. We're talking down and dirty coding, with input and output, test regimens, complex and potentially elegant soluations, and genuine right -- and wrong -- answers.

You can try to leak the details, cheat, collaborate -- but the folks at Facebook are wise to all of that. They've done this before. Two substantially similar correct answers will get both knocked out and the perpetrators permanently banned. If you're smart enough to come up with a good solution, you're smart enough to keep it to yourself, eh?

My favorite sample test: Small World. In it, you have to write a program that reads location data (latitude and longitude) for a large number of points. Your program must output the three nearest points to every input point. Sound easy? It isn't because the program must be able to handle an arbitrarily large number of points -- and it must have asymptotic time growth that is less than quadratic in the number of points.

And you thought you had Knuth Volume III memorized.

Facebook has (you guessed it) a Facebook page for folks enthralled by their unique testing technique. On it you can find references to old puzzles, some tantalizing hints about how to take the tests, and even an occasional announcement about new puzzles. If you want to test your mettle against classic Facebook puzzles, try the Puzzle Archive Facebook page.

Ready for the real thing? Facebook estimates the tests will take one to two hours. There's no going back: Once you're in, you're in.


This story, "Ace this test and get a job interview with Facebook," was originally published at Get the first word on what the important tech news really means with the InfoWorld Tech Watch blog. For the latest developments in business technology news, follow on Twitter.

Copyright © 2011 IDG Communications, Inc.