Live data from Hacker News

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

news.ycombinator.com

111–120 of 181 posts

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

#111
post #105
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…

It's a weird feeling when I don't know how to do something so I practice a lot and I then still don't "know" how to do it but somehow I can do it.

Then the best part comes next: you read some more theory again, and suddenly it connects - the abstract becomes understandable in the context of pains and solutions suggested by gut. And now you have a solid piece of understanding you can reason from.

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

#112
A. Build general familiarity. Do a shallow pass, just to get familiar with the information mapping, general concepts, and their relationships. Don't worry about understanding everything.

B. Create feedback loops:

- Go someplace where I can talk to myself, and summarize as much of what I read as possible. Note anything I couldn't explain to someone else, and go back and fill in those gaps.

- Write out my own summary of the material, as simple as possible (no fat), such that anyone could read the summary and learn the material. This is basically technical writing, and also creates an artifact for others who need to learn the same content.

- Draw out the main components on a whiteboard.

C. Start to apply the material.

- Copy a "known good". Transcribe good production code to get a feel for the principles. Hunter S. Thompson used to spend hours copying Faulkner to develop a muscle memory for the rhythm of the language of good writing.

- Choose a small goal and use the material to implement it.

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

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

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

#114
There is no easy way. It'll take time to build the knowledge, while occasionally getting ridiculed, praised, demoralized, excited etc. Just keep pushing! and best way to do that would be pick a small domain in kernel which "truly" motivates you. Try and understand each and every line of it, no matter how much time it takes. Take breaks, take detour, but keep coming back. Eventually, that one small domain will not only help you understand bigger picture, whole exercise will help in understanding other complex topics too. Remember, brain is like muscle too - it needs similar regimen of disciplined exercise to strengthen those muscles.

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

#115
post #114

There is no easy way. It'll take time to build the knowledge, while occasionally getting ridiculed, praised, demoralized, excited etc. Just keep pushing! and best way to do that would be pick a small domain in kernel which "truly" motivates you. Try and understand each and every line of it, no matter how much time it takes. Take breaks, take detour, but keep coming back. Eventually, that one small domain will not onl…

To clarify on "Try and understand each and every line of it", don't try to do it sequentially. Initially, understand at 10000 ft level and leave the abstractions as is. Then dive deeper in second pass understanding one-level down of abstractions, then deeper in third and so on.

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

#116
For reading technical papers, I've found the 3-pass method in "How to Read a Paper" [1] helpful.

For longer/more complex topics, I like having an experiment that I work on, try stuff out, etc. While I'm working on the experiment I take notes on what I want to do, what I did to accomplish said objective, and what things I learned during that.

[1]: http://ccr.sigcomm.org/online/files/p83-keshavA.pdf

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

#117
I guess my method for new frameworks / languages / etc is sort of a combination of top down and bottom up. I start with very high level overview, followed by a very simple tutorial, then work my way up in the hands-on path, and work my way down in the reading and theory path. One reinforces the other, so the reading does not remain abstract, and the practical has context.

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

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

If you think that I am interested in Fibonacci calculators... I mean you are not wrong: I have a Gist I think on doing Fibonaccis by matrix exponentiation which is kind of fun. But in this particular case, no, I don't need to calculate Fibonaccis for any particular reason. It is just a nice project that I can do recursively and then refactor iteratively, and it requires getting some ideas about retrieving environment variables (is Fib[0] 1 or 0?) and command-line arguments.

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

#119
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 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 NPM ecosystem contracts your thesis. People find it too unpleasant to buckle down and type out that combination of string functions to left pad. It is less cognitive work to down load some library. When I was younger the learning was easier but even then learning is etching new groves in your brain. If it doesn’t feel like you are changing your biology you aren’t getting real deep learning. Not that learning isn’t sprinkled with moments of happy enlightenment. There comes a moment when to truly understand something you have to totally push against it. I am presently learning AWS, AWS api and terraform. It is exhilarating and also very hard. First month or two I collapsed asleep at the end of each day and dreamt of HCL and so on. Now, six months later, I can help my coworkers get around obscure gotchas in AWS and terraform.

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

#120
post #102
post #84

My approach, which I don't claim to be necessarily the fastest, somewhat resembles what you first mentioned (going slowly, looking up every word etc.). I recommend the following: 1. Give yourself time and accept that there will be things where you will get terribly stuck. 2. Ideally work with other people, or find other people trying to learn the same thing that you can exchange meaningful questions and comments with…

> Give yourself time and accept that there will be things where you will get terribly stuck. I don't remember where I heard it, but this situation was described to me as the "moment before a breakthrough". I was told to look for these moments of stuckness because that's where the biggest wins are (and where many, many people quit).

Sounds about right. The nice thing is that if you're mentally prepared for it you have a good change of pulling through.
Post reply on HN