A Better Interview Question: Star Alignment
It was a beautiful night, and I was propping up my new telescope that my wife had given me for Christmas. The stars were stunning and the sky without cloud. I flipped the switch on the scope and night-vision red lighting came to life. The scope was ready...
This telescope has some sophisticated electronics for finding bodies and systems in the night sky:
- An onboard database containing the locations of hundreds of thousands of stars
- A keypad which lets me find things in the database, and then select the bits and bobs in the sky I want to look at
- A motor, which will automatically find the system I want, then slowly move the scope as the earth turns under the found system.
All of these features are great, but initially useless as the scope doesn't know where it is in the world, nor what date it is and so on.
This is the first step when using the scope: you need to align it.
You can do this in 5 or so different ways - but they (thankfully) give you a quick and dirty procedure called SkyAlign. This is described to the right.
Point the telescope at three bright objects in the sky and the telescope tells YOU what the objects are. You do not need to know the names of the stars – you can even pick the moon or bright planets!
- Level the scope with the provided leveller
- Enter your zip code and nearest city
- Enter the time and date
- Find a bright star, planet, or moon and center it in the scope. Press "ALIGN Object 1" on the keypad.
- Find another bright object (star, planet or moon) preferable far across the sky from the first. Center it in the scope, and press "ALIGN Object 2"
- Finally, find a 3rd object and do the same procedure.
- When you align the 3rd object, the scope is aligned.
I realized that, as I was musing over this stuff with my brother (Mr. Computer Science Professor Freak of Nature) - I was learning quickly about how he solved problems. And how he thought about things.
I thought about FizzBuzz, and how utterly stupid that problem is as it drives people to try and solve it - whereas a question like this it's fairly obvious (unless you know the answer) that you're not going to solve it in 15 minutes.
So, you can desrcribe how you *would* solve it, given enough time.
For extra credit you could also tell me what language you think might work best.
As opposed to the premise of a few of some big named bloggers, I don't think FizzBuzz-style questions should be used as a cleaver, dividing Us vs. Them. After all, you never know when Them will be trying to hire Us.
We're designing software to run on mobile devices, that will connect to our scopes using Bluetooth software. The software will need to align the scope, and we need you to design this. The details are:
- You have access to our super whammadyne mainframe that knows the location of every celestial body, every minute, from 1970 through to 2990
- You can use the mobile device's GPS and clock to know where and when you are
- The user will select three points across the sky which you can use to spatially orient the scope. The user is told to use "bright objects" - which can be moon, stars, or planets (Polaris is too dim, so it will not be available to you)
How would you solve this problem? Specifically so a user can find a body by name?