Blog

I hate Puzzles: Am I still a Programmer?

Posted by Namrata Bakre on 4th October 2014, 4.47 PM



Have a look at this puzzle version of this Escher drawing (to the left).

And one day I decided to give it a shot. Have a good look at this picture, 60-70% of it is shades of gray. The pieces are small enough that only a few pieces by themselves contained anything recognizable. Escher's eyes and parts of the window in the background. After putting those together we got stuck.

Why do people enjoy this kind of thing? If you don't have anything else to do, sure – but we have plenty of more useful stuff to do. I decided to give up. I once again concluded what I already knew: I hate doing puzzles. Later during the day I found this comic on Reddit or Hacker News or someplace. It's about the joy of programming. In short: writing boilerplate code – boring; coming up with new algorithms – fun.

Coming up with algorithms is the programmer's version of puzzle solving. There's a problem, and it's fun to come up with the most efficient algorithm to solve it – right? This is what I see many interesting companies want: clever guys and girls that are great at algorithmic puzzle solving. At least, it appears that way from their hiring practices.

Four people need to cross a rickety bridge at night. Unfortunately, they have only one torch and the bridge is too dangerous to cross without one. The bridge is only strong enough to support two people at a time. Not all people take the same time to cross the bridge. Times for each person: 1 min, 2 mins, 7 mins and 10 mins. What is the shortest time needed for all four of them to cross the bridge?

A few weeks ago one of my friends was contacted by a recruiter from a fairly high–profile San Francisco–based startup – if he was interested in joining their team. Sure! Great! Could you please solve this algorithmic puzzle within half an hour? He failed. Hiring decision made. End of story. I hate puzzles.

Does that make me a bad programmer? Am I a programmer at all, if I don't like and suck at these types of problems? There are more hints that I'm not a real nerd – I don't like science–fiction, for instance. Maybe I'm simply not the type of programmer these companies are looking for. That's fair enough. I've been programming but very rarely have I had to come up with a complex algorithm. What I like about programming is not problem solving – it's design. How do I design an application in such a way that people will understand it? What tools can you give developers to make them more productive?

Maybe I should refer to myself as software designer rather than programmer.
What does programming mean to you? Is it algorithmic in nature or not at all? Am I crazy not to enjoy puzzles?