Monday, July 14, 2014

Visualizing Algorithms // Shape of My Thoughts

The very first talk I saw at Eyeo was "Visualizing Algorithms" by Mike Bostock, who is the author of D3.js, a Javascript library for dataviz that I've been working with recently. This talk covered the use of visualization to understand the way algorithms work, as well as to debug them. This is such a simple solution to those of us who are visually minded and who are trying to implement algorithms for whatever purpose, whether it be solving a math problem or coding a data structure. A good example of such an exercise would be coding a sort algorithm and sorting rows of pixels. There are a variety of great examples on Mike's website. His code samples and visualizations for sorting, shuffling (the opposite of sorting), maze generation (different kinds of traversal, which produce a tree), and the "rent vs. buy" calculator are especially helpful. This talk gave me a new perspective as to how I might approach coding problems when my usual, more mathematical/scientific approach doesn't necessarily work.

The second (and one of the most interesting and thought-provoking talks I saw) was "The Shapes of My Thoughts," given by Giorgia Lupi, information designer at Accurat. This talk described Giorgia's design process, and design in general for those who may not have formal training in the subject. I loved this talk because, as a Computer Scientist by training, I've often found myself at a disadvantage when faced with design challenges, especially in the workplace. It's hard, as an analytically minded person, to approach a problem from a design perspective, especially when the outcome of said problem is something I will eventually be programming. This talk was a great lesson in allowing my mind to problem-solve, unfettered by constraints such as tech specs, time, and resources - "YES-AND-ing," basically.

One of the first things she suggested (and really something I should have begun doing ages ago) is to learn to design and learn design concepts. We have enough resources readily available to us online, and living in LA, I definitely have a great number of resources in my friends and colleagues. There are also a number of great books available on the subject (the one I'm currently reading is Art As Experience, by John Dewey). Second, Giorgia encouraged us to find inspiration in things we aesthetically like, perhaps using a website such as Pinterest to organize my inspirations. It is helpful to redraw images in order to understand 1) their composition, and 2) what exactly we like about them and to understand our thinking. It's not necessary that we be brilliant artists; as long as the exercise helps us. We can start this inspiration hunt by finding a topic or subject we like and focusing on that.

Another suggestion she gave was to separate macro- and micro- structure, and to design for these separately. After designing at the macro level, we can then refine the structure of the visualization and introduce a level of abstraction to elaborate on our original inspiration. The macro level should be the architecture of the data. We can do this by drawing to explore overall shapes and compositions, even without a specific project or dataset in mind. (One might think of this as a brainstorming session between the head and the hand.)

In order to continue my design education, I've bought a sketchbook and plan to create a Pinterest board of inspirations. I've also got a few design books on their way to me. I'm looking forward to future brainstorming sessions!

No comments:

Post a Comment