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.
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.
About a year and a half ago I decided that I wanted to change course and go back to being an engineer. I knew that I wanted to code, I just didn’t know where to start.
In this post I will go over:
- how I picked functional programming (FP) as something I want to study
- what FP is and why I like it
- go over a handful of examples to give you an idea on how you could use it in your day to day job
In closing, I will try so summarize what I learned about personal development as I went through this process.
How I got started
Right after I decided that I want to give up on management and go back to engineering, I had no idea what I should do next… All I could think of where the things I didn’t like about my job instead of the things I liked :).
My team was (and still is) heavily involved with distributed systems (mainly batch and real-time analytics built on top of the Hadoop stack), but simply joining those projects seemed very intimidating at that moment.
I really wanted to have fun and score a few quick wins, in order to validate if I’m still on the right track…
I didn’t have any experience with enterprise Java and the system and tech stack are both incredibly complex; on top of that I am very motivated by concrete results and enjoy working on more high-level problems — none of which can be found in building and optimizing distributed infrastructure.