Live data from Hacker News

Ask HN: How do you learn complex, dense technical information?

news.ycombinator.com

171–180 of 181 posts

Re: Ask HN: How do you learn complex, dense technical information?

#171
Learning complicated stuff is a compound process. There’s no framework as such. It takes slow, methodical, frequent look-ups, trying out, dead-ends and everything inconvenient at first.

But once we get past a certain stage, it’s more about connecting all the dots you’ve collected. It gets exciting as you get to see interesting patterns, and eventually get a sense of all the abstract ideas your learning materials where talking about.

Past that point, it’s faster, easier and exciting!

Re: Ask HN: How do you learn complex, dense technical information?

#172
post #155

Earlier quoted context omitted.

My general practice with mathematics is and Anki is to: 1) Understand the material I'm learning. 2) Put explanations of any algebraic procedures (for instance, the dot product of two vectors) as a flip card. 3) Put a single example of doing the work in a flip card. For important proofs, I put them in Anki using Cloze deletion. I just drop in the whole proof, and knock out portions. This has been extremely effective i…

> For important proofs, I put them in Anki using Cloze deletion. I just drop in the whole proof, and knock out portions. This has been extremely effective in remembering and understanding the proofs. Thanks - I still haven't used it for mathematics, but this is good to know. I do have a few proofs of theorems in statistics in my flashcards, but the whole point of the cards is to spend only a few minutes a day on them…

I’ve done some cloze deletions for math and related things, but I generally feel like having almost the whole proof in the prompt gives me too many cues. It often leaves me thinking that I indeed wouldn’t be able to come with the answer with fewer hints.

What I’ve tried the last couple of attempts is to “chunk” the proof (also terminology touched on in Barbara Oakley’s course) so that I end up with a question that’s something like “what’s the high-level idea / approach in the proof for X?”. That card would likely require an understanding of some underlying concepts or “chunks”, so I add questions for these too until I get to something that’s less abstract and easier to rederive.

I’m still not 100% confident if this will work well when these particular cards get into the 6-month range or so, and they start showing up at completely unrelated times. My main concern is that if I’ve forgotten some idea from “the middle”, it would be hard to reason about cards that build up on top of that.

Re: Ask HN: How do you learn complex, dense technical information?

#173

Earlier quoted context omitted.

> it's a lot better to use those connections instead of drilling it in a decontextualized fragments via SRS. Or, you can use SRS for "spaced repetition" of making these connections. That is, instead of treating it as rote memorization, use it for the timing effects. When I see a card about X1 which is part of a larger concept Y, I don't think "what was the exact answer to X1, which I remembered without any understand…

Maybe this will be a clearer explanation of what I said: https://alchemist.camp/learning-machine/spaced-repetition-sy... (starting at 11:27) > "[00:11:27] These SRS flash card apps are very good for learning vocabulary and depending on what's included in the flashcards, they could be for grammar as well. But the problem for a language learner is that it's de-contextualized. So say if you just study vocabulary words,…

Cool, I’ll take a read.

Just to clarify something in case it’s not obvious from my other comments. I’m not arguing for SRS as a replacement to all other forms of learning. You still need the extensive reading, problem solving, experimenting with a programming language.

However, I’ve found SRS to be a great addition to the methods above. For example, I haven’t found the methods above to give you long-term retention on their own. (And I’ve done a lot of problem solving.) Math is also a lot about building up the level of abstraction, and SRS can help with spacing the practice of lower-level concepts so you can more easily apply them to more complicated ones.

I’ve never been a fan of memorization in the past. However, I’ve found that:

1. Memorization (as in knowing foundational facts and being able to recall them efficiently) is actually pretty useful, as much as I didn’t want this to be true.

2. SRS can be used for thinking + deriving the answer to a card in addition to just memorization. It just gives you the right timing to do so.

Re: Ask HN: How do you learn complex, dense technical information?

#174
post #65

I do not have advice directly addressing your question about how to read, but I will say this: A lot of this complex-dense-technical stuff is difficult precisely because it can get abstract. That is true for example in writing proper C for kernel development (your field) and physics (my old field) and chess (everybody's field). My solution is to do lots of exercises and learn lots of examples before learning these bi…

I wouldn't be so sure that "learning = pain". This could be very different among personalities, ages and cultures.

People who enjoy video games and trying new board games are constantly playing with new rules, because they like it. If for you "learning = pain", it maybe a sign that you simply lost interest in what you initially wanted to learn. You might still enjoy learning about something entirely different.

I guess age could also be a biological factor to learning aversion, but that would require solid scientific results to prove.

Re: Ask HN: How do you learn complex, dense technical information?

#175
post #65

I do not have advice directly addressing your question about how to read, but I will say this: A lot of this complex-dense-technical stuff is difficult precisely because it can get abstract. That is true for example in writing proper C for kernel development (your field) and physics (my old field) and chess (everybody's field). My solution is to do lots of exercises and learn lots of examples before learning these bi…

I agree, except for learning = pain. I find that, like most things, it’s all to do with context. If I’m “forced” to learn something (e.g. exam, deadlines,etc) I find it painful. If I’m doing it on my own, with no pressure, I find it enjoyable. And I think it’s independent of subject (having started some subjects as a requirement but then moving on to learn them as a hobby).

Re: Ask HN: How do you learn complex, dense technical information?

#176
post #155

Earlier quoted context omitted.

My general practice with mathematics is and Anki is to: 1) Understand the material I'm learning. 2) Put explanations of any algebraic procedures (for instance, the dot product of two vectors) as a flip card. 3) Put a single example of doing the work in a flip card. For important proofs, I put them in Anki using Cloze deletion. I just drop in the whole proof, and knock out portions. This has been extremely effective i…

> For important proofs, I put them in Anki using Cloze deletion. I just drop in the whole proof, and knock out portions. This has been extremely effective in remembering and understanding the proofs. Thanks - I still haven't used it for mathematics, but this is good to know. I do have a few proofs of theorems in statistics in my flashcards, but the whole point of the cards is to spend only a few minutes a day on them…

"Covering and reproducing in your own words" is a combination of recall and synthesis, both necessary for remembering. This was a different section, and it might have been the Mindshift class, where she mentioned in US schools, we focus too much on understanding and conceptualization, while in Chinese schools, it's mostly memorization. Unfortunately, the two ideas only really work optimally together. Either model produces extremely well educated on occasion, but if you use both, then anyone can not only educate themselves well, but retain it for a far longer time period. Further, understandings of subjects are compounded by the memorization process. In my own practice, I've found this to be true, but that's anecdotal. Some nation is going to get their act together and try this on a larger scale, and I can't wait to see the output.

Re: Ask HN: How do you learn complex, dense technical information?

#177
post #128

Earlier quoted context omitted.

I totally respect your opinion, but I think I fundamentally disagree with the idea that learning = pain. Project-driven learning seems more effective when the project is something that excites the learner. I might suggest that your ability to learn test-driven development in Go is actually driven by the fact that you're interested in Fibonacci calculators.

> I think I fundamentally disagree with the idea that learning = pain I'm not OP and my interpretation is probably not what he meant, but when I saw that line, I wasn't seeing learning as pain, but more so as living the pain that justify the better practice. > Project-driven learning seems more effective when the project is something that excites the learner. I agree completely on that, but we can easily screw up tha…

Hey! I wanted to just tell you if you see this comment that your approach is more important than you may realize.

If you write internal tools for a company then it is SO powerful to write a front-end without a back-end.

Ultimately this gets into a method of Extreme Programming (viz. waiting on features until the absolute last minute) married to the philosophy of Domain-Driven Design.

In DDD you want to establish Bounded Contexts for language, then within that context you want every programmer to speak in terms that clients could understand. Being able to change your data model cheaply is deeply powerful here as you can just give someone an interface saying “it won’t save your changes yet, just try it and see how you would do your day-to-day work with it and tell me what doesn't make sense.” And then they will say (assuming an accounting app) “what do you do with purchases that don't belong to a contract, how do I input them?” and you say “what do you mean, I thought we were tracking purchases for contracts?” And they will be like “A pitch is different than a contract, but we still purchase things for pitches but we don't need all of these details for it.” And you're like “if I were to show you a list of both pitches and contracts, like what would that be a list of?” and they reply “that would be a list of projects!” and then you build a list of all projects into your app.

And then when you build the back-end, you have one database representing the bounded context, and it has a projects table (UUID id [PK], string name, UUID pitch_id [nullable], UUID contract_id [nullable]), a constraint to make sure that exactly one of those IDs is NOT NULL, and a purchase table that foreign keys to a project. the key point is not that this is a clever database structure, but that it was molded to the hands of the people who use it, by delaying the binding of that data structure into a concrete relational form as late as possible.

Re: Ask HN: How do you learn complex, dense technical information?

#179
If you are very knowledgeable and understand most of the contents of the topic you're reading, then I recommend continuing to read.

For me, that's mostly not the case and I always start with trying to find concrete examples rather than abstract explanations. If it's coding-related, even more so. Most documented pieces out there are poorly written so code examples can help me explain the intention of what's written.

Post reply on HN