How do I never forget and learn fast? Write to future self 🛸
Tags: productivity, learning, devjournal, pkm
Published: 2024-01-04 23:00:00

In the world of coding, where things move fast and brains buzz with ideas, there's a big lie we often tell ourselves: *"I'll remember it"*.

But, truth be told, our brains can only hold so much. If we try to exceed this limit, we will suffer from being overwhelmed and our productivity will decrease.

So, here's where taking good notes becomes a superhero move for developers.

## Brain is a processor, not a warehouse

How many times have you thought you'd remember that clever solution or tricky code? Or maybe you had a meeting where you figured out an important solution you will for sure remember (spoiler alert: you don’t).

Our brains are not good at storing "raw" information (without understanding and connecting them). Relying only on memory is like building a castle on sand. It might look good for a bit, but it won't last.

**The only option is to externalize the ideas.**

When you close your thought in a note it becomes...object and now you can with it.

You can edit, split, and merge with other ideas, add properties, and restructure. It's easy to back and reuse that object. Upon these little objects, you can build the next one and create a whole system of knowledge. 

You'll start noticing connections (aka. connecting the dots) that improve your understanding and allow you to learn faster. You'll have more analogies and references that are crucial to understanding deeply complex, abstract concepts.
 

![Notes as object by @kepano](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5uxsrjvco4v9h1ny9ap1.png)

Yup, it's an analogy for building a system from function -> classes -> modules. Pretty cool, isn't it?

Yet most people don’t back to their notes. They don’t remember where they are. Can it be improved? Sure, but you need to think about the future.

## Two crucial questions

Think about notes like a message for your future self. Ask yourself:

- ”Under what contexts I’d like to find it in the future?” Would be related it to feature A, project B? Is it frontend, or backend stuff?
- “In a few weeks, or a few months, or even a year or more, when I come back to this note, what do I know now that will be useful then?” (@tfthacker)

Ask for the following questions? Great! 👏

You should find several contexts for each note. It can be related to a person, meeting, feature, or technology. Yet, how to put all these contexts into the note, how to connect them!? Use a graph.

## Build network, not archive

You don't want to treat your system like an archive. Your goal is not to place a note in a specific location, as this requires memorization (again) and may likely result in not revisiting the note after a longer period.

**What you want to do is place the note based on contexts and connections with other notes.** This way, you'll be able to reach Note X through various paths, making it more easily accessible for you.

Give you the possibility to reach notes in different ways. **Managing knowledge is a graph problem**, and that’s why a hierarchical system like folders isn't a good tool to solve it.

## Example Time!

I’d like to find information about the `Union Find` when I added a long time ago. Now I remember that’s something related to data structure and/or graphs.

How can I reach the note in my system?

- Starting looking directly using the `Union Find` phrase
- Start from broader topics like `Graph`, `Data Structure` and go down
- Start from related topics like `Kruksal Algorithm`, `Spanning Tree`

Thanks to graph **I don’t have to remember the exact location of this note** and can find it more easily and faster by related contexts.

![Use a graph to find notes super fast](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dm69mz8ut76w6fozgxgp.gif)

Try it and I’m sure your future self will be more productive and certainly will be grateful as well as the rest of the team.