Ask HN: Programming Problems for Plane Rides

76 points by andrewparker ↗ HN
When I have been on flights recently without Wifi, I've been passing the time by doing programming problems I find online before the flight.

A few times now I've found myself scrambling before a flight to download some random CS course PDF or digging around recruiting sites for hiring challenges that don't assume I have an Internet connection.

Does anyone have a good recommendation for a big page or site full of interesting problems that I could download locally? Generally problems that take from 30min - 2hrs to complete?

28 comments

[ 29.3 ms ] story [ 755 ms ] thread
Gah! But how would I complete a programming challenge without Google!?
I always keep an offline copy of the Javadocs on my laptops, and it's easy to do similarly for any other language of your choosing.

If your problem is needing to look up algorithms, I'd say that copying and pasting from programming blogs and wikipedia is not a substitute for actually learning algorithms. With a very small amount of memorization and a larger amount of practice designing algorithms it can be quite easy to reinvent these techniques on the spot.

I once tried to accomplish a variety of tasks with nothing but an Ubuntu liveCD. It's actually very helpful and complete! It teaches you a lot about what tools you have on hand, which I now realize are much more helpful (if you know what you need is there) than the ad-ridden internet.
You can solve almost any problem just by thinking about it, the question is: how inefficient will your solution be?
I recommend trying to implement a classic game (e.g. tetris). If you download the documentation for the graphics library, it's surprising how much you can do in two hours. Even without knowing the library from before.

(Unfortunately, we just got internet on trains here in Norway, which have reduced my train-productivity noticeably)

I love doing this.

I suggest programming Snakes (on a plane).

I often do this on flights, and in addition to solving "puzzles" you can always try to build a well-defined system from scratch. For example:

  - A JSON parser (bring the BNF from http://json.org/)
  - Simplified Lisp interpreter
  - Forth compiler (for example: https://github.com/JohnEarnest/Four.Ps)
  - Emulator for a simple CPU or MCU (6502, 1801, etc- bring a datasheet)
Projects like these are not "practical", as everything here has been done before, but great learning experiences.
For short puzzles, you can try out our newly launched site puzzlenode: http://puzzlenode.com/ | Only 4 problems there now but there will be at least 4 new ones added every two months, hopefully much more often than that.

These problems also serve as entrance exams for Ruby Mendicant University. We release our RMU exercises as well, but they're more open ended and likely take more than two hours in most cases: http://university.rubymendicant.com/resources/learning_mater...

If you are looking for algorithmic puzzles you can browse the archives of topcoder.com : http://www.topcoder.com/tc?module=MatchList

These usually require less time and less math skill than the already mentioned projecteuler.net problems.

You could always download earlier topcoder-contests (http://www.topcoder.com), specifically single round matches for algorithms. They have a time limit on 75 minutes for 3 exercises, and should keep you busy for roughly that amount of time.
I always like to do something practical, not a mere exercise. So my first choice is actually building something with a full-stack framework like web2py. You can easily create a db-driven web site in 30 min - 5 hours.
One of my professors has a large collection of previous ACM programming contest problems (with solutions) on his web site, along with problems from the contest he runs: http://math.nmu.edu/~apoe/
Slightly off-topic, but I'm actually disappointed by the spread of Internet access to things like planes and trains. One of the things I enjoy the most about flying is that I feel disconnected from the rest of the world, and I try to take advantage of this to focus on a book or programming problem for the duration of the flight, without worries or distractions. I haven't yet been on a flight with wifi, but I suspect that the illusion of isolation would be broken for me, and my ability to focus would suffer dramatically. Hopefully, most airlines will see it as another thing they can charge me for.
I am wholeheartedly in agreement with you, to the extent that I took a 36 hour train ride a few months ago partly to disconnect from the normal flow of life, and from the 24/7 Internet access that I am accustom to.