A Reason to Study Algorithms


Studying and learning about algorithms can be quite fascinating. But a lot of people complain about it, citing the usefulness of learning algorithms in a day-to-day professional job. There is definitely something to be said about how often you have to apply Dijkstra's algorithm when all you're doing at your job is building websites. But there is also something to be said about how mundane a job can get if all you're doing is build websites and worry about the inconsistencies between Gecko and WebKit.

The other day I watched an awesome TEDx talk by Jim Fowler, professor and researcher in mathematics at Ohio State University. He compared the motivation for doing mathematics with the motivation for reading. "We don't get excited about learning to read because it's useful, we read because it's enjoyable" - he went on to say. Similarly, studying math because it's a means to an end misses out on the point that math can be an end in itself. He argues that studying math becomes enjoyable and it gives us satisfaction if we approach it right.

So what does all that have to do with algorithms?

I think a lot of the same could be said about algorithms too. We don't study them only because they are useful, but because doing so provides a degree of satisfaction. And the exploration should be a life-long habit. It shouldn't end when you're done with school. Or after you've passed your first interview. If you study algorithms to pass a class, or to pass an interview and then stop, you're missing out. Instead, keep studying algorithms because they are interesting!

uniform random sampling voronoi diagram

In closing, I'd like to add a link to Mike Bostock's page about Visualizing Algorithms where he describes a few algos and gives some very insightful graphical visualizations of what happens when the algorithms are executed.

is the founder of Donaq, a software development consulting company with a focus on mobility. You can find Mike on Google+ and on LinkedIn.
Design copyright (c) Miky Dinescu