I was once asked during an interview to sketch how I would write an algorithm to solve a puzzle game like Sodoku or Boggle. To be honest, it was difficult simply because I did not have a keyboard in front of me to work the solution out incrementally.
I’ve heard of developers working around such challenging interview questions by instead writing what the tests for the answer would look like instead of writing the answer itself.
For a web developer, understanding algorithms, and especially np-complete style problems may seem unrelated to wiring up an MVC app, however they are core to almost all industries. Industries that specifically deal with supply and demand require dynamic programming/optimization routines.
Going from web development to writing discreet optimization algorithms is definitely a big leap, especially when one considers the fact that those algorithms may not always be written in managed code, but instead SQL. So, one has to determine the problem, break it down and optimize it, then figure out how to accomplish it in the database or business programming language of choice. It’s no easy feat.
Fortunately, Microsoft provides a great business intelligence suite of products for doing OLAP number crunching.
There are numerous resources on the topic and I encourage all developers to familiarize themselves with optimization. A great place to start would be to write a program to solve the age old “Chutes and Ladders” game. Another well known case is the Knapsack problem.