Programming and algorithms.
I played a demo for an adventure game fell in love with it. The full game was not out yet (still isn't, lol), so, after finishing the demo, I started looking for more information about the game and found an earlier demo hidden on the game's website.
That earlier demo only had two puzzles in it: a language puzzle (or so I think, I couldn't make heads or tails of it) and a combo travelling salesman / Dijkstra graph traversal puzzle.
The graph was a 25*25 grid with 4 to 5 digit edge weights. It came with two handy visualizations, so you could solve it by eye if you had good intuition (I don't), but the better the solution, the greater the score. It went like, 0 for failure, 1 for barely passing, 2 for an okay solution, 5 for good, and then, near the optimum, it escalated fast to a maximum of 60.
Having been totally stumped by the language puzzle, I decided to take my revenge there. I found the Dijkstra algorithm, I read up on the traveling salesman to ensure nothing better had been invented since last time I'd looked. All that remained was to crunch over 2000 4-5-digit numbers by hand.
Well screw that, I thought, and googled, "easiest programming language".
(I got Python. These days you get Javascript, so long addition would be better in every aspect.)