4 ms·
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 precise
by crdrost 7y ago
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 big theories. Essentially I think learning is fundamentally Pain. You have to take on the pain before the learning can alleviate it, if you try to skip the pain then you have only a superficial idea of what you're talking about.
So like if I am learning Go, I am writing a command line Fibonacci calculator in it, then I am rewriting this ground-up with test driven development so that I can learn what testing looks like in Go, then I might try to build an HTTP server, then I might connect it to a database, then I might learn how to mock the database. Each of these tasks I am setting for myself needs to be answered by consulting tutorials and references, but if I just follow a tutorial I will not build true knowledge, I will just know how to do things when someone is holding my hand.
- gowld 7y agoIt'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.
- freedomben 7y agoIndeed, this is the subconscious aspects of your brain presenting information to your conscsious parts. I notice this too! It's amazing, and I think it's where the whole "gut feel" comes from. If you're interested in more of this stuff check out "The Believing Brain" by Michael Shermer, and "Consciousness Explained" by Daniel Dennett.
- TeMPOraL 7y agoThen 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.
- lanstin 7y agoI always save the big picture books for after a bit of successful hands on stuff. Often then i want to go back and redo the original learning efforts.
- freedomben 7y agoI approach languages in a similar way. I will often start with solving Project Euler problems in the new language, then I re-implement my perennial favorite project (a password manager) using the new language (mostly the server side and command line client). It's a long and hard way to do it, but I actually learn the language instead of knowing how to copy paste from Stack Overflow and Google even little things like "How to get substring in <lang>"
- ebspelman 7y agoI 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.
- crdrost 7y agoIf 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.
- lanstin 7y agoI 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.
- SketchySeaBeast 7y ago> 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. That's not the case though - why would I reinvent the wheel when I have finite time to get something done? I love to suss out solutions to all sorts of things on my own time, but if I have to left pad a field, I've already got lodash, I'm using that. In addition, when someone goes back to read the code "_.padStart" just makes sense to read. I'm not saying that understanding doesn't lead in repetition and effort, but I think you're wrong on why people use libraries. It's not because people don't want to know, they gotta get whatever it is they are working on done.
- dwild 7y ago>You have to take on the pain before the learning can alleviate it, if you try to skip the pain then you have only a superficial idea of what you're talking about. > [...] > Each of these tasks I am setting for myself needs to be answered by consulting tutorials and references, but if I just follow a tutorial I will not build true knowledge, I will just know how to do things when someone is holding my hand. That makes so much sense, thanks for the advice. I struggle with this too much nowadays, I just try too much to reach perfection too soon when learning new technologies. Thinking about this made me realize how this wasn't how I started when I was younger. I wasn't going for perfection, I was going for something that worked. Slowly afterward I learned the more technical parts, mostly by need, and the best practice, first by need, but then by desire. Nowadays I think that because I can handle some pretty technical knowledge, I can start by learning that, but seems like I waste quite a bit of time doing this and it just doesn't stick in my head. Next time I'll learn something, I'll start that way, a crude experimentation, and then see from there the next steps. Screw the best practice, that'll just be another experimentation down the line, could even be some rewrite of previous experimentation.
- antpls 7y agoI 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.
- rvieira 7y agoI 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).