Ask HN: What's your process for learning?

222 points by mysterpaul ↗ HN
I'm interested in seeing if anyone has a process they use to help with learning.

- Do you focus on one topic/book/course/project/article at a time, or split your time between multiple things?

- Do you use any tools to track your resources, todos, notes, or goals?

- Are there any pain points you have while learning, or are there any tools you wish existed?

97 comments

[ 4.2 ms ] story [ 162 ms ] thread
Learning what? Welding? Practice, practice, practice.

I focus on the thing that I'm most interested in at the moment. That is rarely an entire book, though I've done that too.

If I feel like I need to take notes to keep track of what's going on, I will do so. I might also leave a note about things I've skipped or glossed over and should want to (re)visit again later.

The biggest pain point is usually scattered information, or information that assumes some background you don't have and doesn't give you enough clues to fill in.

1. Read a little until I'm itching to try to apply what I know.

2. Try it.

3. Reflect on what went wrong.

4. Go to 1.

I actually started using a search engine I built for choosing what and how to learn things.

https://learn-anything.xyz/

As for learning I usually mind map concepts I thought were interesting and then review the mind maps and create flash cards. It depends on the content however.

If it is something actionable like learning a programming language, I try to use the knowledge straightaway and build things. :)

This is great project, thanks for sharing!
But what's the best way to learn how to learn?
I think that, first you have to learn how to take courses on how to learn on how to learn, then you may progress to taking course on how to learn how to learn.
I took the course. I thought it was excellent and it took less than a week for me to complete it working very part time on it. I was already using some of the suggested techniques, which was reassuring, and I learned some new ones. My progress with learning a new language and memorizing things in general has noticeably improved.
Can you summarize some of the techniques suggested in the course?
For books, you have to generally read them like 5 times. The first pass might take me like an hour, it's mostly to establish a general mental framework for what's in the book (actually try to read the table of content, and like familiarize yourself with the words you might not know). On the second pass, you will actually try to read the book and retain like 20% of what you read. On the next one try the next 30%.

This approach has the advantage that it lets you decide what's important. I also like to believe that it establishes better connections between the single ideas.

I would say that goals are counterproductive until you are somewhat comfortable but not when starting out. Like yeah sure, you should make some progress but you are in an uncharted territory, the best thing you can do is to walk around a bit and make sure you stay engaged.

If you move to a new city, you probably walk around the neighborhood for a bit, then to the neighborhood next to yours etc etc.

This was on HN quite some time ago:

http://pne.people.si.umich.edu/PDF/howtoread.pdf

I find it valuable for another reason: I'm always constrained for time, so I might not get through an entire book. If that book is deeply technical, it discourages me from continuing, because I have to take the time to re-skim what was read previously.

I somewhat recently started trying the above method. With multiple iterations through the book, I can get an idea of the information and at the very least know where it find it and that it exists. Depending on the iteration, I'll have some notes to fall back on, or have some important concepts underlined.

This is also why you shouldn't just watch beginner tutorials on complex software like 3d modeling packages or digital audio workstations.

Those are good, but you should also watch professionals use the tools on really complicated projects in person or in screencasts. While you won't be able to follow along fast enough and will be in way over your head, you will learn what's possible and be able to remember in the future when you run into a problem that needs complex radial symmetry, or whatever, that there a way that is much faster.

It also broadens your notion of what is possible in the application, rather than trying to reason from the ground up of the simple tools you have learned in a beginner tutorial.

That's a good guide, but one thing I think it doesn't emphasize enough is the preface. If a book has a preface, that's usually where the authors make their case for why the book exists in the first place. It's worth paying extra attention to the preface, because it establishes the context of the entire work. The ToC tells you what's in there, and it might hint at why, and the intro might give you more historical background, but the preface is almost always short and sweet.
How does this work for mathematic books?
It is extremely inefficient to just read a book 5 times, it is like throwing mud to the wall hoping that it sticks. It's much more effective to focus on each topic and try to remember and repeat the informations just read. Having a general mental framework on the book on the other hand is very helpful.
Not it's not. It's not like each pass takes as long as if you were doing it in one pass. I would actually say that this approach is faster as it lets you focus better and on the things you want to get.

> it is like throwing mud to the wall hoping that it sticks

I must have not explained it well because that's the exact opposite of what I'm talking about. It's not about what sticks, it's about creating the connect-the-dots

> It's much more effective to focus on each topic and try to remember and repeat the informations just read.

Effective for what? Assuming that a neural net is a good approximation of the human learning model, why do nns tend to be be trained over multiple epochs?

To create the connections you have to consciously think and recall not only the topics, but also understand how they are connected and practice them. Seriously, I thought this was the last place on earth were I would have found people saying that to learn something the best way is to read a book 5 times. Because if you want to learn Java obviously the best way is to read a Java book 5 times, instead of reading one concept at a time, understanding it, recalling it, putting it in practice with exercises without looking at the book and connecting all the concepts. I will continue learning in my way that for you is for some reason so alien, good luck in learning reading 5 times.
You are misunderstanding what I'm saying.
Sorry, but you're wrong.

You're not reading a book five times, cover to cover. That's not a productive use of your time. Instead, you should breeze through the table of contents. Skim the first chapter. Still interested? Skip to the last chapter and read that. Jump around to the parts that interest you. Read through it again with a broad outline of what you're reading. Encounter a boring section? Skip ahead by twenty pages or drop the book altogether.

This is the best strategy for reading books for knowledge, and not just to say you've read a certain book.

I agree that this scatter based approach to learning works very well for me, mainly because I am always interested in what I am learning. This approach also works for narrow scope based topics, by "flitting" between resources (internet links etc) rather than obsess about a single (possibly badly worded) article/tutorial.
I am reading "How to read a book" and the process you described is akin to inspectional reading. The book goes in great detail how to utilize the inspectional reading process and improve it.

It also describes the next step "analytical reading" which comprises of mostly asking questions about the topic in general and about the author's intent.

I'm sorry, but I don't think you have much experience in learning. In this way you will only remember a fraction compared to focusing step by step on the different topics and purposefully recall all the concepts, ideally putting them to practice starting from scratch without looking at all at the book. Source: pretty much every research about learning agrees that the conscious efforts of recalling, especially with spaced repetition is the best way to learn something. Plus anecdotally decades of experience in learning a huge amount of topics, programming languages, human languages and whatever. If you want to learn something useful I think that it may be helpful for you the course "learning how to learn", already cited by someone else here, in coursera that explains quite well why just skimming and reading a book is a very inefficient way of learning something. Accordingly to that course and a lot of the current learning research I'm not the one that is wrong.
I wouldn't say that reading a book multiple times is wrong. People learn in different ways. One way works for some and another way works for others. Anyway, finding the interesting parts of a book is a good tip, one of the axioms of learning is that you'll learn much faster if you are interested. Building interest on the book/subject by reading what we find interesting is an excellent way to learn. Of course you have to eventually read what you previously found uninteresting. Hopefully by then you'll have enough knowledge or curiosity to get thru it. What helps is to constantly ask questions as you go through the book and finding the answers will help. Generally speaking humans need to solve problems to survive. Our brain gets a hit of Dopamine every time we get an answer. So, by asking why as we read, we'll be rewarded by learning.

My tip is to make sure you understand the subject. By putting it in your own words. A problem with reading is that it's easy to fool ourselves into thinking that we know something when in reality we don't. We need to constantly test ourselves.

I do a bit of a twist on this : I get as many books on the same subject as I can and read them all at least once. I typically find that each one has valuable nuggets, one really clicks with my brain, and all contribute to scaffolding a solid internal representation.
Haha same here. It's becoming a bit of an issue, as my apt is getting filled up.
> The first pass might take me like an hour

How do you fast read it? It's more like skimming it rather than actually understanding it. It would be frustrating for me, I'm more like a perfectionist who hates to leave behind not understood paragraphs. The idea is neat though, I lean the same way, but it's not true how I read books.

Very quickly. I would say I'm only scanning for terms that occur a lot and that I'm not familiar with. And in what order they are introduced.
Here is the key insight (from, in my mind, Gilbert Ryle originally):

There is a difference between knowing that, and knowing how.

When you want to learn that something is the case, read.*

When you want to learn how something is done, do.

If you want to learn how to do something, and you are not doing the thing, then you might find yourself not learning.

* You can take notes, summarize, and repeat.

I think the question is a tad ambiguous. Are you talking about learning from scratch or building on what you already know?

The common thread in both is mastering the foundations. I know this is controversial, but I believe in book learning before playing whack-a-mole around the internet, simply because you aren't at the point where you can differentiate the signal from the noise.

After the foundations, I learn on a need-to-know basis, which is generally more applicative: if you are trying something that's never been done before, then the perspective is top-down instead of bottom-up.

I don't use notes, todos, online tracking, or whatever goal-oriented resources people are using. I don't see learning as a goal-oriented exercise so much as an accidental accumulation of knowledge. Knowledge gained best from a genuine interest in the subject at hand, which often leads into a genuine struggle to learn some topic, either because it is genuinely difficult or it something you find boring but necessary to learn to continue.

I'm an autodidact, and really, the best advice I can give is learn yourself first. Be absolutely honest with yourself about your interests, your limitations, and the answers, via a long journey of trial and error, will eventually come to you. The fact is, we aren't all able to fit into a mold, and no matter how much advice you read... advice reading is pretty much worthless without a grounding on failure.

In my experience, understanding theoretical concepts is challenging because the process of learning is often not legible [0].

What has worked for me is having multiple periods of immersion into a concept or topic, while referring to multiple sources, with notes [1] summarizing small bits as I learn them. I keep refactoring those notes as my understanding grows, to include coherent maps of larger and larger chunks. On short time scales, my learning is not measurable, but experience indicates that my understanding grows over time. Looking back, my periods of immersion range from a few hours/days, while I tend to revisit topics every few weeks/months. I guess this falls under the umbrella of spaced repetition methods.

Since my interests and pursuits are very diverse, and I'm seldom "finished" with something, I don't like the psychological weight of todo lists [2]. I maintain lists of interesting stuff [3], and several hundred browser tabs [4] but they're mostly not things to be checked off, and languish peacefully for long periods. That said, I'm on the lookout for better knowledge/idea management workflows and software. What I currently use is organically grown, and very messy.

That was for theoretical understanding. Practice helps, for things one "does".

---

[0]: Venkatesh Rao: A Big Little Idea Called Legibility -- https://www.ribbonfarm.com/2010/07/26/a-big-little-idea-call...

[1]: Markdown files, or scribbles/diagrams on scratch paper

[2]: Scott Hanselman: It's not what you read, it's what you ignore -- https://www.hanselman.com/blog/ItsNotWhatYouReadItsWhatYouIg...

[3]: Zim Wiki notebook -- http://zim-wiki.org/manual/Help/Notebooks.html

[4]: I <3 Firefox and the TabGroups extension

I read whatever interests me until it doesn't interest me any more, and I quit reading things that don't interest me. I don't say that to be flip—it's actually what I do, and it has allowed me to consume an enormous amount of material over the years. The only trick to this method is not to confuse difficulty with boredom. There are times when I learn to code, for example, or when I read about obscure financial wizardry or mathematics, where my mind drifts and it feels like boredom. But the reality is just that it's hard. Sometimes when things are hard you do have to change your track until you've developed prerequisite knowledge to come back to it. Just make sure in those instances not to decide the thing was boring because you couldn't handle it on the first go.
I think this question can be best answered by first looking at what research tells us about learning (otherwise your question attracts only anecdotal responses which will be less universally applicable). Here's what research says, followed by how it applies to your questions in particular.

1) Mastery based learning is generally the most effective process (learning each axiom of a topic to 100% before moving onto the harder topic)

2) Spiral based learning is an effective add-on to mastery based to keep you remembering the things you've learned (coming back to a topic just at the point of forgetting keeps you retaining knowledge)

3) The content you learn off of (video, text, etc) has different attributes which may correlate to better transferring of knowledge: Shorter videos, hand-written visuals, enthusiastic voice, have all been shown to correlate with better learning outcomes.

4) The motivation you have for the topic you're learning and how much closer it exists to intrinsic/extrinsic motivation dictates how well you'll absorb a topic. The closer to intrinsic, the more effective learning will be. Project-based learning generally falls into this category: projects that interest you motivate you to learn more.

Now with all of that in mind, to answer your questions:

> Do you focus on one topic/book/course/project/article at a time, or split your time between multiple things?

(1) would suggest that you should not split your time, at least at first, unless you are trying to find a better explanation (3)

> Do you use any tools to track your resources, todos, notes, or goals?

Most of the suggestions sound like meta work. I wouldn't suggest tracking todos so much as perhaps writing down the things you've learned to prove to yourself of (1) mastery or to come back to later for (2) spiraling.

> Are there any pain points you have while learning, or are there any tools you wish existed?

Sounds like you are trying to make a tool to help people learn/track learning at a high, abstract level. Because there is no one right solution to everything because of (3) and (4), whatever tool you create may not actually help anyone unless it's more domain-specific and less abstract.

I need to write things down myself, then read them over and over. It doesn't work if I read over and over what somebody else wrote.
Doing.

I pick a project that interests me at some point; currently "I'd like to have an internet music player that sits on my cupboard and doesn't require my tablet".

Then:

  * decide on platform (CC3200, because it has wifi, enough processing power, 
    and I happened to have one)
  * build something that decodes an MP3 stream (investigate, pick Helix as the decoder,
    make it run on the CC)
  * think about hardware (DAC, amplifier)
  * think about enclosure (wood, how to do front panel)
I knew next to nothing about many of these things when I started, and I'm making lots of mistakes along the way, and I won't become an expert in any of these things, but the overall goal/"target" provides a guide to decide what to learn next. A search engine then helps me find the resources I need.

For tracking my progress, I've started to use Emacs org mode.

Came here to say this. Couldn't have said it better.
Try to get learning working in multiple aspects of your brain at once. One of the best "learn about learning" lessons I ever had was studying jazz theory. My teacher used a four-way method of learning chords - say the name of the chord, visualize it on the keyboard, feel the shape your hands make to play the chord, and listen to the sound of the chord. I've applied this sort of approach to all sorts of skills since then.
If you're doing needfinding for a project idea to enhance learning, my suggestion is to focus on a single DOMAIN of learning first rather than trying to make something to help learning in general, since it's such a vague and broad problem. e.g., "how do you learn to do your taxes?" or "how do you learn basic home maintenance?"
My learning falls into a couple main categories: formal study for the sciences (be it math, programming, crypto, etc); and broad research for advocacy and activism. Both of these involve keeping up with current events, the latter moreso than the former; the former can be especially time-sensitive.

I don't have the time to put these in any coherent order, so I'll just list some:

- Bookmarks. I find much of my information online. I make aggressive use of tags, and I found that organizing them into folders is too difficult and a waste of time (unless grouping them for a project/talk temporarily); the tree structure doesn't lend itself well to a graph of concepts. I have ~10k bookmarks. I keep them; you never know when they'll come in handy, even if only for trivia. Figuring out what tags are appropriate forces me to extract key material.

- Maintain a reading list/backlog. I have short, medium, and long-term lists. Go through them on occasion and re-order them by interest/importance. Remove ones you know you won't have time for.

- Learn to speed read. I find it difficult on a screen, but easy on paper.

- Hands-on experience: if you're programming, go hack on your favorite project, look at bug reports, or write your own. Struggle through problems before you give up and look online.

- My time is split between many things. I use Org mode to organize my thoughts and agenda. Sometimes I can do the entire project in Org mode (e.g. https://mikegerwitz.com/projects/sapsf/tree/slides.org, but I left my time tracking private). It also integrates with my mail client (Gnus), where I live a good chunk of my life outside of work.

- While I read many articles and blogs and stuff online, for any in-depth material, I buy the book or print the paper and read offline. I have a system with 5 different color pens that I use to aggressively mark up and underline (blue general concepts, red a problem, green a solution, purple a technical detail, black misc.). I have a Bamboo tablet, but I still prefer paper.

- As I mentioned in another one of my comments (and as adamnemecek mentioned), read a book multiple times (http://pne.people.si.umich.edu/PDF/howtoread.pdf). It not only helps with absorbing the information and selecting what is important to you for further study (which is important given limited time), but also helps if you can't often finish books; after a few iterations, you'll have a good idea on all of the concepts and know _what information exists_ and _where to find it later_ when you actually need it. Discovery is the most important (thus my bookmarks)---material is always there to reference.

- I don't have time to watch videos---I prefer transcripts, which I can also search through. If I do need to watch a video (either because it explains a concept better or because there is no alternative), I watch it at 2--2.5x and slow down when I get to something I'm having trouble keeping up with. Some people talk slowly even at 2x. :x

- Get rid of distractions. One of the best things I did was create an agenda in Org mode, because once I complete a daily task (e.g. reading news sites; checking mail; checking GNU Social), I _stop_ and move onto another task. No peering at my e-mail or news sites 20 times while I'm doing another task.

- Similar to the previous: I only work on personal things at night. I have a family, and I want to spend time with them---I feel guilty if I work during the day when the kids want to play, and all the noise is a distraction; it breaks flow constantly. Wait until a calm point.

- Iterate over your system. Everything I do has evolved over the course of many years. The learning curve for some tools will slow you down, but can be very rewardin...

This is a great list. As OP is possibly interested in tools as well, here are some of the tools I use for some of them in this list.

1. bookmarks: pinboard.in / chrome plugin, add bookmark - add any relevant tags

2. backlog: todoist.com with tagging

3. speed read: beelinereader.com / found this to be useful but didnt use that often

4. reading offline: kindle

5. watching videos faster: video speed controller from chrome store

>Do you focus on one topic/book/course/project/article at a time, or split your time between multiple things?

For me, I deliberately split across multiple topics/books because my brain has different thresholds of concentration depending on time of day. The early mornings are best for more challenging subjects (e.g. math, deep learning algorithms, etc). At night, it's easier to read softer topics like history and politics. I think it's important to pay attention to your brain's energy levels and when/how it gets distracted. With that knowledge, you optimize your learning schedule around that.

>- Do you use any tools to track your resources, todos, notes, or goals?

Since learning time is finite, I think it's a important to put together a little curriculum of all the topics you want to learn. Prioritize them.

>Are there any pain points you have while learning

Another piece of advice that nobody ever seems to emphasize (but I wish I had known early in life) is that there are topics that will be a waste of time to learn. In my case, I regret I spent hours on PowerBuilder, IBM DB2, and DOS batch scripting with VBScript. It doesn't mean those skills are bad for others but a little research would have made me realize there were other more important skills to spend precious hours on. (Time spent learning X is time not spent on learning Y.) The tldr is that people will often evangelize things for you to learn that you really don't need to learn. They have good intentions with their advice but they don't know the complete picture of your life's goals.

Do you have a heuristic for determining what is/isn't worth learning? I personally try to learn the lowest level things I can, as I know that will have broad applicability.
I learn best by doing. I imagine how something might work (I am usually wrong!), and try building it. When I discover that I need to learn something, I try to communicate what I'm trying to build, why I am trying to build it, and where I got stuck. Then I ask around a bit (StackOverflow, Quora, Reddit, coworkers) to see if someone has insight how I might succeed. The depth and quality of answers I receive hint at the quality of my question, or the familiarity others have with the problem I am solving.

If I get no answers, I usually grind away at the problem until I lose interest, can ask a better question, or make enough progress that I can answer my own question.

Useful answers include offering:

- a suggestion to use alternative solution with acceptable trade-offs

- a different approach to how I solve my problem

- a specific answer to the question I asked

- to collaborate with me in finding a solution

- a supportive comment (the cutting edge can be lonely!)

- understanding about a trade-off or consequence of how I am approaching the problem

- a suggestion on improving the quality of the question

- a referral to someone who knows the answer

I usually focus on one goal at a time and dedicate all the time I have available to it.

The key is that I must have something I want to accomplish as a reason to learn something new. For instance, if I just decide to learn a new programming language, I will lose interest very quickly. But if I decide I wan't to create a new app, I can then use that same programming language for the job and I will consume every information I can in order to make it happen. Usually using google and youtube to find the resources. I start from the basic I need to start and go on from there.

I've used that method to learn new programming languages, surf fishing, technical analysis/investments in the stock market, grow plants, electronics, cooking, etc.

TLDR; focusing on a project makes it easier to learn as you need the information in order to make it happen

That's what I do too: make something to learn something. Currently writing an android app to learn Kotlin.
> focus

For casual learning, I split my time across various subjects and do whatever feels interesting. For serious learning like a certification, I set goals based on e.g. time spent studying.

> Tools

I use plain text files, either a single file or a folder full of them. I try to develop a sort of learning system for the subject in question.

> Pain points

I was too reliant on outside sources before and did not spend enough time creating "my own" knowledge through hypothesis, testing, measuring, etc. Nowadays I realize I have very little need for most of my books; it's more fun to see what I can come up with on my own.

I also wrote up a "learning ladder" that ranks various forms of study; for example before opening a book or a browser tab on a topic I will check to see if there's a short YouTube video available. After that I might look for an ELI5 on Reddit. Then eventually you get to books.

While that may seem obvious, it represents my taking responsibility for my own learning and I am a more motivated person because I created the ladder by myself and continually work on it. I have hundreds of these systems in areas from learning to fitness to work operations to finances, etc. When I go on vacation it's the #1 "book" I enjoy reading and pondering (I save all the .md files to Dropbox for reading on my phone).

  def learn(thing, max_time=0, max_attempts=1):

    while run_time < max_time:

      while attempts < max_attempts:

        attempts =+ 1

        if do(thing) = 0

          break

        else

          learn(thing)
Always set a time limit or a maximum number of attempts. Default to at least try (you may already know it).

Edit: I don't write code very much, and certainly don't claim to earn my living on it.

Pedantically, aside from the values that are tested without being initialized, with the default values, this always fails at the first test of the outer loop, without making any attempts.
It depends a lot on the topic. For coding/tech, I find working through an "organized collection" of video tutorials by rewriting the code locally and taking notes along the way, works very well. It's time-consuming, but I tend to retain more concepts after watching, listening and practicing, since it engages more senses (vision, sound and touch).

Prior to learning a new topic, I try to make mind/concept map of the material based on my initial understanding from reading articles or browsing books, docs and examples. It also helps to have an end goal or project in mind to connect concepts to actual outcomes. You can also try explaining what you just learned to a non-technical person; forcing you to "make sense" of a concept while converting to non-technical jargon.

Overall, it just takes time. After years as an autodidact, I haven't found many short cuts around hard work. There are many great techniques out there--some will work for you and others won't--but consistent practice is usually the underlying theme.

Usually, when learning something, I have a project to work on to apply my knowledge to. I find that I'll start by searching for some good resources. This is typically books, blogs, subreddits, screencasts, awesome-X, etc. Then I'll spend an hour or two a day learning from whatever resource I'm using, and spend the rest of my time working on the project, applying what I've learned.

Sometimes I don't have a project to work on, but I'm interested in something. For these things I'll push to use on new projects at my company, and will read a book or two about them prior to convincing people its a good idea. This isn't always ideal because the knowledge doesn't really stick without applying it to projects, but it scratches my itch to a certain extent.

Work on projects that you are passionate about. Work together with peers, get help when you are stuck and help when they are stuck. Be playful, do not be afraid of making mistakes and do not focus on perfection.

I warmly recommend Pragmatic Thinking and Learning by Andy Hunt and Alex Martelli’s lecture “Good Enough is Good Enough!” from EuroPython 2013: https://www.youtube.com/watch?v=gHG9FRSlPxw

More notes on learning: https://www.simongriffee.com/what/learning/

For programming languages.

1) Read the documentation 2) Sometimes, do a tutorial. 3) Build a small project and ask questions via Twitter/IRC/Slack along the way.

I made a tool to help making notes while studying. Aim was to make something which allows you to:

Add text and images quickly, so you can type along with a lecture, or by copying and pasting text, html or pdf from documents you are reading. At the same time it must be easy to add and scale images.

Tidy up and restructure your note. Just typing your notes is not enough. You also need to think about it, and restructuring or tidying up your notes is a great way to do that. The tool you use should not make you redo or rewrite the notes completely. It should just be click and dragging without messing up the formatting.

Show structure in multiple ways (colors, sizes, shapes, connections etc). Making notes in a text editor is limited. You need something that does not just scroll up and down, but also left and right. Something that looks more like a diagram or a mindmap, to which you can also add connections, labels, arrows, and colors. Having notes that look more like infographics helps me alot to remember or retrieve what is in them.

Have overview and detail in the same map without to much clutter. I myself like having notes on a topic in one document, but it must still be easy to show the structure and the details.

I am pretty pleased about how all this works in Breakdown Notes (my project). If you would like to check it out I suggest you take a look at an example map about english grammar: https://www.breakdown-notes.com/makemap/load/grammar

You sneaky little b____d using an ASK HN for advertising :P. This actually looks useful. I'll give it a try sometime.