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 that 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 absolutely 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. 🤔
Basically, 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 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've 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:
I've also discovered this great book:
Basically, 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've tried to pick the right software: one that would allow me to organize a kind of a virtual Zettelkasten. Of course, Luhmann had this problem of organizing and relating things physically, which we don't have nowadays, thanks to searching/filtering/aggregating/ displaying capabilities of our powerful computers.
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, things really 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 in 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).
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.
Basically, 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 in 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 in the skin of the Engineer. While being 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, 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 really care a lot about how I take these notes, but I try to be extremely selective and add references to the book page or to 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 writings 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
- Composing Software
- Clojure For The Brave and True
- Alan Kay
- Uncle Bob Martin
- Kent C. Dodds
- That great guy on Twitter I use to follow
- Youtube Videos
- Programming Technologies
- 🌈 Creative Notes
- The Book I'm Writing
- Mentoring Exercises
- Articles I Want to Write
- Note-taking for Software Engineers
Probably, you don't have the same needs as me, but I hope this article has inspired you to start organizing how do 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, 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? ❤️