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:
- Tips for maintainable CSS and front-end libraries
- Basics of web typography
- Important Git commands I tend to forget
- Styleguide and CSS tips from "Hardboiled Web Design."
- Effective UI and UX from "Don't Make Me Think."
- The principles of Essentialism
- The major tips and takeaways on a book for not being ashamed of being single (judge all you want, it was a great read!)
Just writing down these notes has many benefits:
- It helps me separate the signal from the noise, and keep them separate. Looking for something is easier when I don't need to navigate a book or blog post, and for extra help I have the search function.
- It forces me to distill important info from the larger source. The easier I want my note-taking to be, the faster I need to get to the point.
- Others can reference your notes if you keep them in a public repo. This is a win for the open-source community, beginners looking for good resources, or your career if scouters or developers looking to hire see your focus on learning more.
- It's always fun yet productive to relax and flip through past notes.
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.
Top comments (34)
Totally agree. Do the same. Very helpful and saves A LOT of time in the end! Thanks for sharing (and confirming!) Max!
Happy to do so, Thanks for sharing and confirming with me as well!
Happy to!
This is exactly why I keep a blog and keep posting there. It is not really for others; I blog what I learn there so I can reference it back.
One type of app that I use often is notes. I used nvAlt for long, now I use iAWriter on Mac and iOS. It is filled with so many TILs (today-i-learned) and other similar notes.
Similar to what you describe in this post, I keep a note of all errors I get while developing. You will be amazed how often you search for the same errors. Keeping a log of the errors and how you solved it will save so much of time. I blogged about it here: jjude.com/flask-errors/
Taking notes also makes you conduct a thoughtful retro of what you have done. It helps you to improve.
Agreed - half the time the errors I'm searching for have purple links in Google, so I know I've found/fixed the problem before....
Maybe actively writing down the issue and my solution would make me better retain it.
Very good point about keeping track of errors made as well. I have often written down new things I've learned in the process related to them, like a new
git
command related to a rebase error. But documenting the specific nature of the error does make it much less likely I'd make it again too.I love the idea of logging all errors. Totally going to start doing this. Thanks!
Same here.
GitBook may help you keep things more organized while at the same time keeping everything in a GitHub repo.
Alternatively a static site generator gives you a lot of freedom on how to organize content. You can still keep it all on GitHub.
Jekyll is super simple to get started since support is built into GitHub.
My personal favorite is Hugo for the simplicity, features and speed it provides.
Why GitBook needs access to my orgs ? Pff... Looks promising but I can't use it with GitHub... Thanks for sharing.
Update, I find this : github.com/azerupi/mdBook, seems good.
You can choose to let GitBook store your books in a GitHub repo.
Thanks for the suggestion! I'll definitely look into this, will also make it even easier to read and review.
Great stuff! I've been keeping book notes in a personal wiki for years, and I can attest that it helped me better remember what I learned, and having something to refer back to has been invaluable.
More recently (Last 4-5 years), I've started dumping hard-to-remember bits of code/commands/configs into a snippet manager like TextExpander or Alfred. (I'm told Dash is also good for this, but haven't tried it.)
I totally agree with you.
For me, OneNote is utilized pretty well by me to write notes about almost everything happening in my daily routines, ranging from work to life. I started the habit of taking notes when I was still in university.
I also encourage my colleague and all the people that I've mentored so far to make a habit of taking notes and feeling really happy when they find it useful.
Thanks for the great post!
I totally agree with you about the feeling of taking notes on paper! I feel like it's easier to remember things and also easier to be creative and actually keep writing.
One thing that helps to focus on writing instead of refining your notes is that you can not undo what you wrote down. Some editors have this as a feature under the name Hemingway Mode.
I wrote more about my thoughts on this in the past: dev.to/jorinvo/note-taking
For me paper is a great medium for thinking, but digital is a good addition for refining, sharing and archiving notes and writings.
Totally agreed, In 2019 I read 30+ books but I can only remember a few of them, 2020 my resolution was to read books and assimilate them by publishing summaries. Here is one, dev.to/bhavaniravi/atomic-habits-b...
I agree 100%! I've been wondering if perhaps taking the time to write down my understanding/explanation for why a piece of code works was wasted when comparing it to the time I could spend coding. However, it's how I learn :)
Hey Max ! Thanks for writing such a great article. It immediately prompted me to start my own repository for keeping a note of stuffs I have learnt.
Since a long time I am having a tough time organising stuff that I've learnt/read.
I even plan to create a web-application that helps me write stuff and organise it based on tags and locations. I am still working on ideas to expand this application's utility though. I intend to apply some analytical utility to it so that the user can have an idea on what topics did he 'logged' the most during the last month. (May be generate a word-cloud of most terms logged in the user's notes)
Would love to hear your views on the same.
I do the same thing! Partly since I don't always have my computer around when I need to note nothing, and partly I just like to write a stream of consciousness for a kind of mental release.