Are you up to the challenge? Dropbox wants to know
dropbox.com
dropbox.com
Anybody else have experiences either positive or negative on the hiring from (candidate or employer)?
(They wanted me to do, "using any language, write an IRC-like client and server". 10 lines of code these days, but still not interesting to do for free.)
Anyway, no biggie. The puzzle was among the simpler ones (solving a maze iirc), and I was mailing out tons of job applications at the time - with low expectations for each individual one.
Sounds like a win-win.
You can play with them here: http://dbpacker.samwarmuth.com/ (make sure to scroll horizontally to see all of them -- there are 10 different methods)
I'm planning on doing a short write-up of the process once they remove it from their jobs page.
[1] PDF http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.98....
I think the first problem is easy to solve inefficiently but finding a very good solution takes an inappropriate amount of time. The second problem is rather boring.
Perhaps asking open/creative questions makes more sense? Here's some ideas
- Write a script that saves you at least one minute of time every day
- Draw a picture of the future of the internet/technology/whatever
- Build a tool that amplifies people's need for cloud storage
Your questions would be more useful if you're looking for more of a high level concept architect rather than a low level algorithms hacker.
The second one is more about trade offs.
Assuming optimal coding, "better" output means more complex code, and means lower performance in terms of processing time and memory usage.
For example, you could write a very complex version that tracked the lifecycle of a file by it's name, and "folded up" the manipulations into a couple of lines of output.
This would be more complex, slower and bug prone - but more human readable.
A test like this is a very interesting way to understand someone's programming taste.
Now if they'd asked me the infinite-grid-of-resistors problem...
Passion is thinking of better code while you're in the shower, or getting so excited about a new idea that you can't sleep.
Finding a great mind in this way will have a similar outcome to finding a great vocal artist through first round American Idol eliminations.
Note in the sample output they have 4 "distinct" configurations for the minimum size (really they're all the same, just rotated). If the two small boxes weren't identical/interchangeable, there would be 8 configurations (4 pairs of two, and each pair would be indistinguishable from eachother without labeling the small boxes A and B).