I used to have an elaborate system, but I converged on a simple solution: I stash everything in a single Google Docs document.
I made the conscious decision to optimize for ease of use, so that the friction/effort to write something down is minimized.
At the same time, I also made a decision to not to adopt any organization system -- anything that increases the friction of use is eschewed. Search was all I needed. I've been using this system for the past 5 years or so, and it's been very productive.
To extract ideas from it, I routinely re-read stuff (it's in log format, so it's very easy to read) and use the Fieldstone approach (Weinberg)[1] to coalesce similar and interesting thoughts and rewrite into larger thoughts. I've gotten a lot of actionable ideas this way (that I actually go on to execute on).
So it's a system optimized for postprocessing rather than pre-processing. (The Fieldstone approach is a method from writing, rather than knowledge management.) I find that pre-processing systems are unsustainable over the long term unless you're exceptionally disciplined (also, it's hard to know how to structure knowledge until you've processed it -- most interesting ideas are a garbled mess when first encountered). I try to build systems that don't rely on sustained human discipline or the necessity of shoehorning into known organization units.
[1] https://www.skmurphy.com/blog/2016/05/04/weinberg-on-writing...
This is a serious impediment to developing any useful expertise in any area, but I have sort of made peace with this tendency. But not all is lost. It has been my experience that the next time I visit a previously learned topic, it's significantly easy for me to load everything to my "active" memory, and build-up from there. Apparently, you never truly forget the things that have once learned well. See here, for e.g.: https://www.sciencedaily.com/releases/2008/11/081117110834.h...
> Scientists at the Max Planck Institute of Neurobiology have been able to show that new cell contacts established during a learning process stay put, even when they are no longer required. The reactivation of this temporarily inactivated "stock of contacts" enables a faster learning of things forgotten.
I am no expert on memory, but from what I have read on the topic, our long-term memory is virtually unlimited, the main constraint being inability to recall rather than the memory content being erased. If you have once learned a topic well but haven't visited in a long time, you may not be able to recall it very easily, but you will be able to recognize or relearn it better than someone who doesn't have any exposure to the topic.
Whittling it down, I think of it as Data, Insights, and Execution. First you need lots of data, then you get insights, and finally you can execute when you're close to maximizing on insights. Writing helps keep track of the first two, and if you want to teach then execution = communication, or how you package and present something.
Usually you get a fair amount of review just from the stuff you read while searching for other stuff you know is in there somewhere.
https://github.com/vincentntang/TIL
It's where I store my code snippets, and a way to rubber ducky to myself. Everything I write on there is directly something I had to look up and didn't know off hand. Something to note is I do add things to my TIL during work hours and spend 10-15 minute tops writing each `.md` file
I haven't really blogged much lately but this makes it easier to transition after. I wrote a React useState and useEffect guide this morning from my TIL notes
https://www.vincentntang.com/react-use-effect-explained/
I highly recommend making a daily TIL since I can rich search all my notes for copy paste code I can use for projects
To that end, I keep a mistake log, into which I insert an entry after doing something that either caused down-time or that caused my team to lose over an hour of productive time. It now has over 500 entries in story format, along with the relevant code. Some example titles (along with their tags in square brackets):
- [gotchas] references to relative file paths are brittle when there are multiple entry points to a program
- [gotchas] lazy evaluation cannot be cached in most systems
- [unix] adding `sudo` affects $PATH and can cause commands not to be found
- [gotchas] never confuse STDOUT with return value
- [collaboration] never remove a flow in code without consulting all possible stake-holders
- [algorithms] when calling a sorting function, always ask yourself if alphabetical or numerical
I plan on posting a video with more details on my YouTube channel soon.
ubuntu tricks ___________
keeping one file makes it easier to search or browse ... separately I have other text files for broad categories like nyc, shop, bb ( catch all )
from a terminal ( Ubuntu ) I enter this to search
svl 'some string here'
where svl is an alias to a bash script containing
stringPattern=$1
cat ~/MEGA/notes.txt | grep --color=auto -B 10 -A 15 -i "$stringPattern"
I use mega nz for cloud storage so all this is mirrored on any box I use ... been using similar my entire career so this file today has over 90,000 lines of text notes ... I find such a process essential to be productive across a vast array of problem domains
(1) attaining an intuitive sense for them
(2) memorizing as little jargon as possible (only the amount necessary to look up things later).
(3) making my life richer
(4) making more accurate predictions about the world I encounter
How? It varies. Lots of lectures and listening with no written notes. I had a professor who spoke so quickly I couldn't take notes as he spoke so I learned to listen as learning.
Materially I make entries in a Google Doc which morphs often. The headings change and move around, entries are deleted and modified.
-
Precise dates and proper nouns do not interest me. IMHO that's all dry memorization, bits that don't connect to other bits, that's stamp collecting and tantamount to hoarding (which I think is gross, a literal failure of hygene).
Here's my 'journal' to share my learning as a Software Engineer as well. Hope you enjoy it!
https://blog.phuaxueyong.com/post/2020-02-29-articles-in-sec...
It's a very effective way to keep everything in long-term memory. (It's also very difficult. You're trying to recall items that are just at the edge of your memory.)
Also, I just keep notes in one giant text file. I'd love some sort of fuzzy search though.
- Readwise.io: to capture and resurface highlights I make on my Kindle - Pocket: to capture web reading and highlighting (readwise works here too)
Simple, effective :)