Earlier quoted context omitted.
For an actual framework I always like to step thru a typical unit of work line by line in the debugger, from accept to write (I mostly do server processes). It is surprisingly illuminating to see how IO is managed and hoe the layers interact and fit together. It gives data to build a robust mental model of the framework. This is why I weep when I see some Spring backtracks with 100 or so stack layers.
I was reading the first half of your comment and immediately went "but.. but... what about those huge Java stack traces?".
Ask HN: How do you learn complex, dense technical information?
131–140 of 181 posts
Re: Ask HN: How do you learn complex, dense technical information?
#132It's the only thing that sticks and has worked for me, and I've been (successfully and not) learning dense technical info for 30 years.
Re: Ask HN: How do you learn complex, dense technical information?
#133Earlier 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 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…
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.
Re: Ask HN: How do you learn complex, dense technical information?
#134Re: Ask HN: How do you learn complex, dense technical information?
#135For 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?
#136Earlier 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…
For example, nobody is forcing me to use Docker from the start. I don't have to use it until I decide the development or deployment pain is big enough that I will learn how to use Docker. Similarly, why do server side rendering when you can have a perfectly working project without it. Add server side rendering later, when you project actually has real features. Not from day one. The temptation to use cool tech from the start is difficult to ignore at first, but after a few attempts to do a side project, only to give up before you've even started, it gets easier to appreciate stack simplicity :)
Trying to keep code as simple as possible from the start is more difficult, i.e. you might be structuring your code too naively and regret it later when you try to refactor. But as we know, abstracting too early creates similar if not worse problems.
Re: Ask HN: How do you learn complex, dense technical information?
#137Re: Ask HN: How do you learn complex, dense technical information?
#138Re: Ask HN: How do you learn complex, dense technical information?
#139Background: senior year of college I took one of the deep learning courses my CS dept was offering, and I was nervous about it early on because I nearly failed the math pre-req test they gave to assess whether we could handle the concepts in the course and get some value out of it.
I ended up doing well in the course and passed with a great grade, even though I felt like I was drinking from a technical firehose the whole time. The technique I ended up using to get myself through was what I call depth-first learning. Basically you start from the beginning of a non-trivial, legitimate starter project or material, and work through it as you normally would. When you hit a point of confusion or a knowledge gap of any size, pause everything and follow the concept graph all the way down until you bottom out or hit something you have seen before and understand, then backtrack and continue from where you first branched. Taking notes in a gdoc or something is also crucial.
I'm not claiming to have reverse-engineered cold fusion or anything by learning this way, but my main takeaway was this: everything I thought was complex was really just a huge pile of simple things that I understand (or could understand with minimal effort). It was all about understanding the essence of what is going in the big picture and how the smaller pieces relate to it. The main difference I think in this approach vs what you have already tried is that you are using a similar approach with a reference manual, and not a legit near-state-of-the-art project with a concrete goal in mind. If you don't try to accomplish something specifically, you're just going to load up a bunch of information in your head, then eject it when you come across a problem you are actively trying to solve.
Re: Ask HN: How do you learn complex, dense technical information?
#140Ultimately, I wanted to stop reinventing algorithms, which in turn forced me to review math. After that, additional layers of knowledge became much easier to stack.
Remember that C was easy for its creators. :)