Visualizing algorithms

I’m a visual learner 1. I use mind-maps to break down complex ideas, I draw on the whiteboard to understand complex systems, I prefer bulleted lists to long emails and I love to use color coding to help with categorization.

That’s why I was blown away by Mike Bostock’s recent blog post about visualizing algorithms:

Algorithms are a fascinating use case for visualization. To visualize an algorithm, we don’t merely fit data to a chart; there is no primary dataset. Instead there are logical rules that describe behavior. This may be why algorithm visualizations are so unusual, as designers experiment with novel forms to better communicate. This is reason enough to study them.

But algorithms are also a reminder that visualization is more than a tool for finding patterns in data. Visualization leverages the human visual system to augment human intellect: we can use it to better understand these important abstract processes, and perhaps other things, too.

Visualizing Algorithms

As a side note, I really love D3.js – check it out if you’re looking for a versatile library to represent data (static and dynamic datasets, including transitions). It’s more advanced than your typical charting library, but the applications are endless, as you can judge from the examples page.

  1. Wikipedia page on Visual Learning 

Side projects should be stupid

Tobias van Schneider, Spotify’s design lead, talks about the importance of side projects and how to make the most of them.
The core of the idea is to keep them simple and stupid for as long as possible, otherwise you tend to overcomplicate them and nothing gets done.

I use them as a vehicle for learning and starting new things at work and I currently have about 3 going on in parallel (2 based on the Arduino platform, one building on top of Spark).

success also comes in the form of learning new things, meeting the right people, feeling personally fulfilled, he says. You don’t know what will happen next. Perhaps your side project will lead you to your next job, your spouse, or a sustainable living that gives you the freedom to keep exploring.

Why Side Projects Should Be Stupid

Essential JavaScript design patterns

Here’s an excellent free book that will make you a better JavaScript programmer. With JS being such a dynamic language with a bad reputation for poorly written code, the book by Addy Osmani is an invaluable resource on how to solve real problems while keeping the structure and quality of your code high.

In his own words: In this book we will explore applying both classical and modern design patterns to the JavaScript programming language.
Learning JavaScript Design Patterns