Ask HN: How to take notes?

101 points by varbhat ↗ HN
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 ] thread
Cheatsheets and blog posts are what helped me most.
Did you use some physical medium like paper to take notes? Or did you go software way of taking notes?
I haven't used a physical medium to take notes in over a decade. You can't copy and paste from a paper notebook.

I'd add that I use markdown

It's a truth that teaching is the best way to learn; even if you never "teach" the course you're learning it's useful write down key points as questions (along with their answers in your notes) and compose an exam from the material you just learned as though you're going to use it to test someone else's knowledge. Then take the exam you created, first right after you're done with your learning session and then again the next day before you start with your next session. The act of recalling from memory what you've learned is key to locking in information for long-term retrieval. (And your collection of practice exams make for a great way to cumulatively test that you're recalling everything you've learned.)

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...

I try very hard not to get caught in bikeshedding the perfect note system over actually writing things down. This is very much in the “don’t let the perfect be the enemy of doing literally anything at all” territory.

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/

ELI5 : I did not know about this acronym. For those who don't know, it means "Explain me Like I'm 5 years old". https://www.reddit.com/r/explainlikeimfive/
> it means "Explain me Like I'm 5 years old".

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.

I second the practice of transcribing notes.

This "two-pass" process aids my retention substantially (maybe from 30% retention to 70%).

I had to look up rubber ducking, appreciate it. It seems to be related to debugging but it sure seems to be applicable to other items like writing out an email or before starting a task.
In this case, the MO is "take some notes and then explain what they are to your rubber duck". Just like debugging, you'll stop at least once halfway through when you say "waaaait that's not right at all!"
A paper notebook is severely underrated.

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.

I feel the same. But,i think taking notes in software is faster.
And you can't "grep dead trees" (search paper notes).
Ted Nelson disagrees with you. No hyperlinks, no real connections, no networks. Too many limitations.
You could, kind of, combine the benefits of both by using something like Rocketbook.

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.

I dump my notes in three categories:

- 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.

Depends partly on how you learn, generally a better approach to learning a programming language (from my perspective) would be to work on a project or some problems that way you will have runnable code in that language that you can reference back to at any point. If you do take programming notes it is also useful to capture edge cases or syntax comparisons either against two languages or different approaches you can take in a single language rather than just noting down syntax.

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

A strategy that's helped me: After you've decided what topic you want learn follow these steps. 1. Quickly familiarize yourself with the topic. I usually watch a quick video on the topic (<10min). This helps you familiarize yourself with terminology, concepts, and why it's important to learn. 2. Next find a cheatsheet. Print it out if you can or grab a notebook. You want something that's already done some of the leg work for you. If you can't find a cheatsheet, go back through the tutorial video and in a notebook, write out concepts they mention, leave some space between them, you'll fill in details later. 3. Follow along to more in depth guide. Be it a tutorial video, course, written document. When going through your course, in your cheatsheet or notebook fill in concepts that you've missed and add short notes to your cheatsheet. This will help you learn more because you'll memorize concepts as you write notes along with it. Don't rush and after you've written something out, close your eyes and actively try to recall what you've written. Active recall is one of the best methods for memorization. Also, these cheatsheets can sit on your desk and you can reference them when you begin to code something in the language you've just learned.
(comment deleted)
Start with whatever feels intuitive to you. Whenever you feel your current note-taking method isn't good enough, improve on that.

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.

I suggest two systems.

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.

You should try http://roamresearch.com/ and follow #RoamCult on Twitter - they are way ahead on note taking.
Cheatsheets are a very helpful resource and you need to have a tool to keep, interlink, retrieve and organize them. A physical notebook is not the optimal choice because of some limitations like fast retrieval of topics and almost impossible filtered searching etc. Organize your "new things" and resources to cheatsheets in a Zettelkasten like tool. You can use a simple text editor or there are applications and plug-ins available to get a Zettelkasten-like app. I personally use Passfindr (https://passfindr.com), a freemium Personal Information Manager with powerful and fast search capabilities.

Learn what a Zettelkasten (https://en.wikipedia.org/wiki/Zettelkasten) is, how it can help you and make yourself familiar with its concept.

I’ve tried everything, and my latest iteration is a single textfile in markdown for everything (topical notes, personal TODOs, work TODOs, random paste snippets etc) which then gets turned into HTML for easy viewing (I may style it in the future). It’s also in git, and on the hour, cron commits the changes themselves as the git message itself so changes are searchable via git log.
I have a bind (3+n) to open notes.md file in Sublime Text I can drop things into. Although I don't use it much as often I can write notes directly under some topic in my wiki. It usually fits under some of the 840+ topics I have

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...

I have terminal bound to "<super>+<enter>". From there I run "cat > title.txt" or "cat >> title.txt" and type whatever I want to save. It's as frictionless as it can be.
Everything that you take notes on, explain it out loud to someone (or something) as if they know nothing about the subject.

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.

If learning is the goal, I highly recommend taking notes into a flash card system (I use and recommend Anki). Then review your flash cards daily.

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 make photocopies of all my notes: the original gets filed by title, and the copy goes into a Leitner box after having key details redacted.
It’s very easy to let notetaking overwhelm the real goal— learning. I’ve had good luck putting my full attention into whatever reading material or exercise I’m working on.

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.

It’s down to whatever works for you.

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.

Since you want to quickly revise topics in a new complicated subject, I'd suggest simply slowing down and writing really thoughtful notes on the subject. Use elements of recall to really get a picture of where your understanding is at, itll help you build the lattice of your knowledge and that lattice will be strengthened when you review your notes.

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.

Just my opinions:

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.

I made it a point to take detailed notes for all of my lectures in college, and I did pretty well in my courses as a result! So here's some advice.

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 notes for study, I have to use pen & paper. I just don't retain anything I don't write down. (I have a very terrible shorthand, basically illegible to anyone else.)

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.

Try my https://histre.com/ to take notes on things you read online. I use it extensively of course.

- 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 take notes in Markdown as [gists](https://gist.github.com/) on GitHub. The web editor for GitHub is pretty good, does excellent code formatting, and has some other web niceties. Plus all my stuff stays in one place.

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