October 31, 2017

Take Notes on Everything

With so much to keep learning as a junior dev, I've remembered not to trust my brain to hold onto all the new info.

A new favorite book of mine is "You Are Not So Smart" by David McRaney. It lists dozens of common cognitive mistakes humans make constantly, ranging from how we disorganize social relationships, misinterpret the world around us, and invent fake motivations and memories.

Why would I like this book? It's a great list of my mind's limitations, and only by knowing those I get around them. One of the most important is how (un)reliably I remember what I read.

That is to say, not reliably at all. Certainly not when it comes to coding.

An example is my recent purchase, "Accessibility for Everyone" by Laura Kalbag (or really, anything amazing from A Book Apart). I skimmed it before reading through the sections in-depth. But if I wanted to really use anything from that book, say in a new project, I wouldn't remember virtually anything useful. I'd have to crack open the book and search all over again - at best I'd just know where to start looking. Considering how much info most developers process each day, this happens all the time. It only goes away with info I read at least five times.

This is why writing down notes on everything I read is an important habit I've sadly let falter. My own preference is a Github repo full of markdown files with notes on books, blog posts, and whatever else I want to save for later. Important syntax rules, term definitions, personal tricks or ideas, quotes or summaries - I write down anything I find inspiring or useful from the texts. So far these have included:

Just writing down these notes has many benefits:

I'm not claiming taking notes is more important than writing actual code. But in my coding workflow, I'm seeing that my note-taking is part of an important balancing act. Finishing a project gives me a huge, euphoric sense of accomplishment that's like a drug hit - I'm anxious and rushed to get the next. Recording my new knowledge gives me a gradual, calmer sense of accomplishment that scales well over time. It helps me better examine what I'm learning and not overlook important details. In the long run, it makes learning easier and helps me remember more. As a bonus, it may even help others who read them.

This is all part of why I'm a big supporter of programmers doing more writing outside of just code. If not for others to read, than for yourself to improve your knowledge and craft that much more.