Ask HN: How to take notes?
What are the effective ways of taking Notes?
I am learning programming (/languages) , new things and I think that I should take notes so that i can quickly revise/remember things if i forget.
Are cheatsheets helpful? How should i do it? Any suggestions?
79 comments
[ 2.3 ms ] story [ 163 ms ] threadI'd add that I use markdown
This and many more tricks were learned by reading "Make it Stick: The Science of Successful Learning" -- https://www.amazon.com/Make-Stick-Science-Successful-Learnin...
0. https://en.wikipedia.org/wiki/Serge_Lang
Features i find are actually helpful:
- keep a link to the source where you found the information summarized in the note. A url, a DOI and an equation number, whatever.
- when you can, physically recopy the data in the note. Retype the code, write ideas out long-form.
- ELI5 (explain it like i’m five) or up-goer [0] the contents of a collection of notes. Or at least write summaries or abstracts about a collection of them. Recapitulating information instead of blindly saving it makes you digest it better.
- Rubber ducking works. Go pester your partner, your pet, the potted plant, whatever.
[0]: https://www.splasho.com/upgoer5/
Note that it does not actually mean this. It usually means something more like "Explain like I'm 15 years old"
"Fun" fact: ASAP does not mean "As soon as possible" but instead refers to a wide range of urgency levels from "sometime in the next two weeks" to "as soon as you are humanly capable of doing while keeping your risk of major injury below 2% and cost below $300.
This "two-pass" process aids my retention substantially (maybe from 30% retention to 70%).
I tried replacing it with onenote, chery tree and others. It's just not the same.
Things I write down by hand seem to be burned in my brain much easier than when I mindlessly type them on the keyboard.
It's a re-usable (original version can be wiped with microwaving it) paper notebook designed to be OCRed into Evernote, Google Drive, Dropbox and others.
- Links that I find interesting which I'd like to archive: https://bollu.github.io/todo.html
- Short pieces that are accessible to folks with background. This goes on the blog: https://bollu.github.io/. Visualizations of theorems, which are far scarcer than I like on the internet, also go up on the blog.
- Long form notes from books and courses goes into a notes repo where I write up stuff in latex: https://github.com/bollu/notes/blob/master/algebra/main.pdf [This is an example of the notes I've been taking while attending AGITTOC: Algebraic geometry in the time of covid]. The latex file: https://github.com/bollu/notes/blob/master/algebra/main.tex
- The blog and links are powered by latex-enabled markdown. (i) blog https://github.com/bollu/bollu.github.io/blob/master/README.... (ii) todo: https://github.com/bollu/bollu.github.io/blob/master/todo.md
All of these tools are motivated by a principle of being fast and easy to edit; Otherwise, I literally can't take notes because it doesn't feel as fluid. So I have symlinks to README.md and todo.md in my home folder, and similarly for whatever course I am attending currently. I edit very little, I write down the idea I am interested in and then git push.
I feel this system works well for me. I'm able to go back and review ideas that I had seen before and polish them up. It's fast, easy to write, upload, and share.
I've tried using other elaborate methods [org-mode, evernote, ...] but none of them had the simplicity of:
1. Open a plaintext file, wherever you are [I am always in a position to open a plaintext file, whether from my IDE or from the command line]. 2. Start writing 3. $$$
So I strongly recommend some system that is as simple as "open a file and start writing".
Hope this hepls.
Having said that I have in the past captured a Syntax file for a programming language I was learning e.g: https://github.com/harveytoro/TIL/blob/master/go/syntax.md
But more recently if I just want to refresh my knowledge on the syntax of a language I use: https://learnxinyminutes.com which has syntax cheatsheets for a lot of languages
Maybe your notes will suck and you'll never read them, but it will still help to have written them.
Maybe you'll read your notes and think they suck, and you'll know what you wish you'd written.
I don't think you can "remember everything in notes" in a one-shot process, though.
1. Long term notes - in your website - non blog - just a website, keep them small, cheatsheet but long term.
2. Short term notes - where you dump your stuff into - for this you can use tiddlywiki.
It's really powerful if you go through all of it's capabilities, but can be used quite simply too.
Learn what a Zettelkasten (https://en.wikipedia.org/wiki/Zettelkasten) is, how it can help you and make yourself familiar with its concept.
https://github.com/nikitavoloboev/knowledge/blob/master/SUMM...
On mobile, I take quick notes with Telegram's Saved Messages.
This kind of question has been asked many times before on HN and elsewhere. Here are some links I collected around note/wiki management.
https://wiki.nikitavoloboev.xyz/other/wiki-workflow#links
Oh and for effortless sharing of notes, I use my tool gitupdate to automatically push changes made to my folder of notes. i.e. here is a commit where I add this very thread to my wiki under `wiki-workflow.md` topic. To do it, I pressed two buttons (`+v) (https://github.com/nikitavoloboev/dotfiles/blob/194d8453b2af...) which runs a KM macro (https://i.imgur.com/fmXgUYv.png).
https://github.com/nikitavoloboev/knowledge/commit/cfaab75dd...
This is a great idea. I use it all the time. I use the Histre integration to push these Telegram notes automatically to https://histre.com/ (disclaimer: mine) for a full proper notes with tags, searchability, sharing etc: https://histre.com/blog/take-notes-with-telegram/
Do you auto generate the SUMMARY.md files, if so how? A script doing a simple recursive directory walk?
The workflow also lets me create hyperlinks between documents within the wiki.
Or, to abuse language horribly, rubber duck like they're five.
This forces you to not only remember, but understand, what you're trying to learn.
You can always refer to the flash cards like regular notes, but by memorizing the information instead of just jotting it down you greatly increase the speed at which you learn new things.
I don’t take any notes until the end of the session, when I do an informal debriefing to summarize what I learned, which isn’t necessarily what I set out to learn.
I find I memorise concepts well when there’s some kind of physicality to them, and I’ve therefore repeatedly gone for the “serial killer wall” method of note taking - in my case, it tends to be multiple A4 sheets with handwritten notes or printed reference sheets plastered on every visible surface around my workspace, using cork pinboards for more space, with an arrangement of information that makes sense to me - I like a four coloured biro for splitting out either dimensions or topics of information, and sharpie or string to link disconnected areas together. This translates well for digital applications, like coding and electronic engineering, physical applications, and more abstract learning efforts, like cramming a masters in physics, or learning a language.
Yes, you can replicate this with a wiki or hyperlinked whatever, and I sometimes do for pocket guides, but being able to fetch information at a glance is key to making that recall just happen without looking, for me.
The structuring of the notes takes an effort in understanding, in creating a landscape of interconnected information - and the structure of the notes becomes the physical representation of the structure of the information framework. I then, later, when referring to some part of some knowledge acquired this way, find my mind’s eye using that same structure to identify the relevant information.
Anyway. It really is whatever works for you, and trial and error will get you there - for me, it’s paper, pen, and somewhere to put it all.
I dont think cheatsheets are helpful personally. Unless you are just talking about syntax.
Also specific methods might be worth a look down the line, but initially I dont think it makes sense.
Try to avoid getting into rote learning. I learned that way as a kid, I'll find myself writing squiggly notes just because somehow it makes me remember stuff the act of writing something.
For coding stuff I don't really have notes about "coding" more on random neat tricks/concepts(like about Git/Systemd), which means store them somewhere eg. an app that has a global search like OneNote/Evernote/Notes(Mac).
For general fast learning I recommend crash courses on YouTube eg. by Traversy Media/others.
Also using sandboxes where some code is already setup so you can have something to work from.
Generally though I think practice is what will make it stick and personal desire to achieve/build something that you want.
Consider taking notes by hand instead of using a computer. I found one study from some time ago that suggested handwritten notes are better: https://journals.sagepub.com/doi/abs/10.1177/095679761452458... I personally find taking notes by hand better for me. Since I can't find any studies replicating the result of the one I cited, I suggest trying it out and see if it helps!
When I was taking notes for class lectures, I would split sections of notes by date, titling subsections in a given day as appropriate. This sort of chunking will help you remember the notes better, rather than writing in one continuous stream. If you're taking online courses to learn some programming languages, I think this method will work! If not, I would suggest keeping a notebook per programming language and just organize your notes by day.
When taking notes, you do NOT want to copy what's on screen or what's being talked about verbatim. You want to capture just the highlights, so that they'll jog your memory later. I generally write tons of bullet points instead of complete sentences, and I end up with more of an outline at the end than paragraphs of information. If you need the finer details, it's better to go back and review the source material itself.
Once you have your notes, you can review them by going day-by-day. For your case, if you need to refer to previous sections quickly, consider bookmarking them with sticky notes. (Not sure how you would do this digitally.) You might be surprised to find that the act of writing down the notes was enough to keep them in your head, and you may not actually need to review your notes often.
Hope this helps!
Taking minutes for meetings, I have to use a computer. I'm able to kind of get into a stenographer flow state. I capture a lot but remember Little.
I have no idea how or why these strategies work.
- It suggests appropriate tags you. #python etc. This lets you review things by topic.
- Tags are inlined in your notes. You don't have to create them first
- If you want to publish some of these notes, you just add #pub
- You can also publish notebooks (collections of notes). You can think of it as lightweight super fast blogging. This will help you get a following on a subject, without having to spend a lot of time doing it.
Examples: SaaS Pricing https://histre.com/notebooks/03lt8gml/saas-pricing/ ; New Project https://histre.com/pub/notebooks/x6rfhtd5/links-for-starting...
- Highlight sections in the web page you like to review later
I'm a little biased with this workflow because I wrote an iOS client that lets you manage notes as GitHub gists. If this flow sounds attractive you can check OctoNote out here: https://apps.apple.com/us/app/octonote/id1433164731