Note-Taking for Software Engineers
The importance of organizing your thoughts and efficiently keep them from haunting you
Hey everyone! π
Since I became a Software Engineer I've recognized the importance of being organized and efficient while taking notes.
Being this a very important soft skill, I've decided to share a bit of my story with you. How I've improved and evolved the way I take notes, and how that contributed to being a better software engineer in the mid to long term.
My First Experiences
Initially, I didn't have a specific process on how to take notes. I usually opened what was at hand. It could be Google Notes, my mobile phone or tablet notes app, paper notebooks, stickies, or even the fridge magnetic notepad. It was a nightmare to organize everything π.
As time went by, I had the perception that my notes were a mere pile of rubbish. I started to get a bit frustrated because of this general feeling that:
my notes had no structure
they were dispersed in different apps and places (computer, mobile phone, paper, fridge stickies)
it was hard to find what I wanted in the middle of such a dispersed set of information
they were becoming obsolete, losing their purpose and context
I bet that some of you have this feeling, and it's normal. Note-taking is something that requires method and discipline. It might seem easy to do, but it isn't. Nobody in school taught us to effectively take notes. Curiously, almost every student takes notes. But did they even learn how to take them? I suspect not. π€
I "just" wanted to:
be more organized and efficient
communicate better
keep important points from meetings organized and at hand
keep important configs/info about each project organized and at hand
remember and get back to what I've read/studied in a book
remember and get back to what I've learned from a talk, an article, a spec, a podcast
be better at building my knowledge cake (in layers)
create my software engineering journal and tech notes
quickly gather and disperse things to build some content (being able to compose different perspectives of the same subject)
organize my weekly/monthly/yearly to-do list, which included different groups and context layers: personal/familiar/work/etc.
be able to relate things (tags/backlinking)
A Turning Point
At the beginning of 2020, thanks to AndrΓ© Jonas, I discovered two amazing concepts:
Second Brain
Zettelkasten Method
I'm not going to describe these two methodologies here since it would make this post excruciatingly long but I'll leave you some links:
Building a Second Brain: An Overview
Building a Second Brain: Homepage
I've also discovered this great book:
Reading all these, introduced me to a new way of meaningful note-taking.
Yes, you can go and read it. I'll wait here! β
The Right Tool for The Job
As soon as I got the first elementary ideas on how I'd like to start taking notes, I tried to pick the right software: one that would allow me to organize a kind of virtual Zettelkasten. Of course, Luhmann had this problem of organizing and relating things physically, which we don't have nowadays, thanks to the searching/filtering/aggregating/ displaying capabilities of our powerful computers.
I've tried Obsidian, Foam, and lately, Notion.
All these options are great, though you might prefer one over the other for particular reasons.
What made me go with Notion was:
The UI is amazing, and things look good.
It allows me to use tags and backlinks (extremely important to build the zettelkasten).
I can use the mobile app on my phone and tablet.
Information is organized and at hand in any situation or place.
There are also some cons to using it:
You don't own your data.
The text format is difficult to quickly convert. Exporting functionality might be a bit limited.
It doesn't have a graph display of how your notes connect. This might be important but for me being able to search/filter in Notion is more than enough to relate things.
How Do I Take Notes Nowadays
Okay, everyone, this is the most important part. How should one organize their notes so that it becomes easy to manage and contextually relate them?
To reach this point, I've started to write down a document, that I keep updated, on how I:
Take Notes
Organize my notes (what I call my Multiverse).
I got this concept while watching Ali Abdaal's youtube video: My Simple Productivity System - The Equation.
In this video Ali explains, using a metaphor, that to keep productivity high, you must assume three different roles: The Pilot, the Plane, and the Engineer.
While you're the Pilot, you should worry about setting the course of the plane. You should think about what to do during the day (planning). Once you've decided, for the rest of the day, you can enter the "plane" mode.
While being the Plane, you should simply focus on following the Pilot's directions. This is where we are 80% of the time, following instructions to achieve our goals according to a pre-defined plan.
Last but not least, 5 to 10% of our time should be spent on the skin of the Engineer. While the engineer we should make sure the Plane is efficient, that the system is organized and everything is going as expected.
Okay, so all this to say that, before starting to work and taking notes one must be the Engineer (define the system, and the procedures), then be the Pilot (deciding where to fly today and which course we'll take) and in the end, be the Plane (work and take notes accordingly).
I've decided to separate my notes into three main stages:
Ideas & Random Thoughts (Fleeting Notes): things that you want to remember later but you don't have time to curate now. It's a simple sheet where I write: check this, investigate that, what the heck means that.
Notes from Reading/watching Talks / listening to Podcasts (Literary Notes): things that you want to use later to elaborate on, or for creative purposes, but are now registered in the context of the source. I don't care a lot about how I take these notes, but I try to be extremely selective and add references to the book page or the minute of the talk/podcast. I also try to tag and backlink them with other notes. It can be done later, but the more you can create relations among them from start, the better. A few days later I come back and polish them a bit, I remove non-interesting parts and reorganize them.
Permanent Notes (Creative Notes): These are the notes I create while in a creative process. When I want to write about something I search my Literary Notes and start to scaffold it quickly. At this point my writing can still be atomic, if I'm handling a complex context, or more global if I'm writing an article like this one. The idea at this point is not to collect but to cook. To put it in perspective and rewrite it from the point of view of what I'm creating. Combining ideas is great at this point. Sometimes there are contradictions, corrections to be done, or a lack of support from the original notes. But they are, as a whole, a great source to rely on.
How do I Organize Data (my Multiverse)
Okay, till now, we've talked about the process of note-taking for study/creation purposes. But there's random stuff from our daily lives that also need to be registered and tracked.
Thinking about this, I've created an Info Section (where I keep important info about work or random things from my daily life such what's the reference of my printer's ink cartridges).
I've also created a Get Things Done section, where I take notes about things that I need to pay attention to and resolve. It can be something like "switch the kitchen lamp" or "write an e-mail to my manager". Everything that requires an action and that is not important from the literary or creative perspective sits here.
So we end with a folder/file structure like this one:
Main Entry: main entry point of Multiverse, with links to the main sections.
π Info Notes
Software Licenses
Car Info
Home Info
Company Info
Engineering Log
Gratitude Journal
Daily Journal
...
β Get Things Done
General Todo
Study Todo
Shopping List
...
π₯ Fleeting Notes
Random Thoughts
Things to Investigate / Explore
π Literary Notes
Programming Technologies
JavaScript
React
Clojure
Books
Composing Software
Clojure For The Brave and True
Articles
Quotes
Talks
People
Alan Kay
Uncle Bob Martin
Kent C. Dodds
That great guy on Twitter I use to follow
Youtube Videos
Specs
π Creative Notes
The Book I'm Writing
Mentoring Exercises
Articles I Want to Write
Note-taking for Software Engineers
....
Conclusion
Probably, you don't have the same needs as me, but I hope this article has inspired you to start organizing how you take notes. Don't get tied to any structure in particular. Start from scratch and find a way for things to fit into a proper structure and context.
After some months you'll feel that organizing your note-taking habits we'll turn you into a more efficient person. Your mind will be clean, and you won't worry anymore about that thing you needed to do but you forgot about π€ You'll arrive at meetings with your topics organized, you'll know what you want to say or do, you'll provide much better insight in what you've been working last semester.
You'll have a software engineering log, where you register facts and discoveries, as things you want to deep dive into later.
Adapt, Optimise, Evolve. Never forget to be the Engineer, the Pilot, and the Plane!
As a curiosity, this article came almost for free from my creative notes. I had the ideas related and prepared beforehand. The only thing I did was create the article structuring all my notes in an appropriate sequence.
Have fun! πΈ
If you want to get in touch, you can reach out on Twitter.
I'd love to hear about how you've organized your notes and how you're feeling about it! Which were the evident and immediate benefits? What were the hardest parts of the process? β€οΈ