How to Learn Stuff Quickly
joshwcomeau.com
joshwcomeau.com
It's worse than that, which you allude to later in your comment. The problem is not holes in your knowledge. The problem is, as they say "what you know that just ain't so."
A large part of learning is about unlearning invalid, oversimplified mental models. And you won't find those problems without trying things out and realising the outcome diverges from your expectation.
It's also very easy for those plausible-sounding ideas to stick around for so long in your mind that you sort of start taking them for granted, and we tend to be really bad at scrutinizing those things we take for granted.
It's only much later, when it just isn't working, and you're relutantly forced to come face to face with the difficult fact that some of the things you thought you knew really well were just some loudmouth opinion on the internet.
+1. This is so common that there's a name for the algorithm that searches a space this way: IDA*!
What's missing in this post is that it entirely focused in isolated learning, away from tutors and other forms of interpersonal teaching. Any approach to learning stuff "quickly" should take seriously Bloom's 2 Sigma Problem. [1]
Partly offloading your learning problem onto an expert tutor trained in master learning has a good chance of vastly exceeding any learning approach a novice can adopt on their own. The internet has thus far failed to support this learning model, I think because it would be incredibly expensive for students.
How have you implemented this in your own learnings?
Slightly odd personal recent example, a friend who is really good at speedrunning Super Mario 64 taught me for a few hours and I got better at it in an hour than I did in the three days before trying to learn on my own.
From what I gather, there are two approaches: (1) post in forums and develop a relationship over time (this can take forever), or (2) pay for an inorganic relationship through codementor or some other service and hope that it turns into a more organic mentor/mentee relationship over time. Neither is ideal.
The effort becomes a memory concern where cheat sheets are how you transition or learn quickly into a new space.
I'm a polyglot in software development. I can work with most tech stack within 2-3 weeks and be efficient within 3-6 months, idiomatic within a year maximum. A big part of that is due to relatability between spaces. Every toilet has a flushing button and every kitchen has a sink and every language had a form of exposing positive or negative response.
My advice is always throw yourself in and swim. Find whatever swimlane or swimming aid available and move forward.
One caveat is learning spaces that are constantly shifting. For example, Swift. What a mess. Look up anything in that language and find 5 ways to do something, 3 expired, 1 manageable and 1 undocumented that works. It's sad but know that that's the outlier, not the average!
I very much agree with you. Eventually most “new” knowledge feels like it’s just really a new “intersection” of a few core concepts that you already know.
First, there is no need to put pressure on yourself to learn 'quickly' - that's counter productive.
Second, you need to find a good teacher.
Finding good teachers is how you learn 'quickly'. Now the way to do that is to have parents who can help you.
Really, the way to learn 'quickly', is to be born into a family that's loving and competent at life. Then it just happens - by the time you develop the ability and interest in looking around to figure out what's going on, you'll have been in after-school activities and a good school for like 10 years.
There's a bit of an escape hatch - if you're good at academics or sports, you'll get to have secondary father/mother figures and that'll be your chance to catch up. If you don't, you're kind of fucked :)
If you weren't born with loving and competent parents, you'll be floundering through-out life, in relationships, in your career, in lack of self esteem. It's a near guarantee, because whatever short comings your parents had, you'll be solving and then some. That's just how life goes.
Anyhoo :)
Don't really get what your parents being "good at life" means though, and everyone's parents have shortcomings.
I agree with you on the first point. If you wish to actually learn, you take your time. As for everything else... maybe you should keep out of the """psychology""" section of the library for a while.
If the above lines made sense to you, then only read the following paragraphs because I don't know if you can relate to this or not.
Learning quickly happens when you can know things quickly. That way you will have time to explore a lot and test a lot. Going through tutorials and documentation just allows you to know things. Therefore the quality of tutorials or mentors helps to grasp quickly because they just tell you what to know.
Real learning happens after you know things. Throughout my life, I got confused between knowing and learning. I can read or hear facts such that it allows me to recall the fact. But there were cases where I actually didn't understand the fact as I hadn't absorbed it completely. I just knew how things were but not the idea and reason why they were such.
When you want to truly learn something, to the finest detail, it really really requires a lot of effort and dedication. Picking up new skills is relatively easy. It just requires knowing enough to go through and solve your problems. But honing the skill to master level is really difficult.
Think about drawing sketches. You can just watch a tutorial on it and draw. Then close the tutorial and repeat it. You now know how to create at that pose. But when you want to change it, you will have to know about shading, pose, color, etc. Even if you know them, it's hard to use them because you may have never learned about them. Because to learn about colors, pose, shading requires experience and time. The more quickly you can iterate through it, the better you get about your preferences and style. Knowing them will only give you a shortcut. Learning them will give you a lot of creative freedom.
That's to grok[0] something right?
"I'm stuck in tutorial hell, I understand the tutorials for how to multiply 3 digit and the tutorial for how to multiply 4 digit numbers. But when I try to multiply 5 digit numbers on my own, I just can't figure it out and have to go look up a tut."
Programming shouldn't be taught piecewise via 15 minute videos on YouTube of how to accomplish one particular specific task. It needs to be built from the ground up, from first principles of the environment in which you're programming, and the instruction given to pupils must be "determine the solution you need, break it into a series of building block steps, and then perform those building blocks." Not "try to re-create the tutorial of how to make a React component send a JSON request step by step without looking at the video." But no one makes video "tutorials" about the building blocks. Which is a shame, because that's the actual learning part.
I have some bad news for how artists traditionally learned how to paint. I agree with the overall thrust that only learning by copying with no theory behind it is bad, but the problem isn’t the copying it’s the lack of theory. A python flask how-to that also explains how flask works while doing the step by step process seems just fine to me.
Building blocks from the ground up is great for schools, but is incredibly time consuming for learning the breadth of a tool.
P.S. Teach yourself programming in 10 years might be a good example as well: https://norvig.com/21-days.html
Growing in a poor Eastern European country with a cheap Z80 computer, meant experimenting was needed for me to learn as a kid. There were only a handful books about Z80 programming and all were about Basic and also very basic. The other books were either in abstract CS territory, full of high level math or about some big iron machines and languages that did not run on my Z80.
So after reading somewhere that I can poke some address to obtain a particular effect, without explaining why, the next question was what happens if I poke another address?
It's the difference between "learn a thing before you commit to doing it" and "commit to doing, and thus learn"
I'd say that it's normal to feel that way but that it's directly detrimental to learning. If you want to learn something outside your comfort zone you must first learn to recognize, identify and embrace the fact that you are outside your comfort zone.
Wanting things not to go catastrophically wrong is one thing but not letting yourself play, experiment, or even try, because you want everything to go perfectly the very first time, is probably one of the most unhelpful things in all of life.
I don't think that's actually true. I mean, obviously, I'd _like_ things to go perfectly the first time I try, but I'm resigned to the idea that they most likely will not, and that in fact they might _never_ go perfectly. Playing the guitar taught me that. :-)
So I don't stress about failure too much, and encourage my son to start small and fail from time to time.
The opposite of what Homer Simpson's advice where he said: "You tried your best and failed miserably. The lesson is, never try."
It’s a difference both in scale, and in divergence from the known. While I’ve built large systems for work, it’s usually on the scale of ~1000 development hours and 10-100k+ LOC. Most of my personal projects are basically toys, a few hundred LOC and do-able in an afternoon. I’d like to be able to build medium-scale things without dedicating a significant chunk of my life to them.
The other facet, divergence from the known, is the other sticking point. Given a tic-tac-toe board it’s pretty obvious how to build bingo. I don’t even know what I don’t know about how to build a 3D editor, so it’s hard to get started. (I have this problem with math, too; since so many concepts build on each other, it’s hard to jump in and do something interesting.)
I'm always disappointed when I am directed to a video, rather than text, when I'm searching for a particular topic.
It takes a long time to seek to what you want, and you're forced to learn at the speed of the presenter, rather than your own speed, as with text.
I also find it easier to learn things offline. I had to get up and running with the Spring Framework quickly, and what worked was putting the documentation onto the Kindle.
Prof. Andrew Huberman from Stanford University School of Medicine has some great podcast episodes on this (among other interesting things) [0].
> You still can, but it takes much more effort and deliberate protocols to follow.
is absolutely true, words for words :-)
>is absolutely true, words for words :-)
Do you follow a specific protocol or method for learning these days? And compared to when you were learning something when you were younger, do you find it more challenging (even with the protocol)?
Being older has its advantages : when working with young students, I can influence groups to go in the good direction (before I was more of a follower). Also, since I've chosen to study again, I'm 100% clear on what I do. This translates to studying very seriously (I'm not distracted by the web, tv, etc. except HN of course :-) ). The professors have also lost a bit of their charisma, so I don't fear them any more.
The life/studies balance is a bit tough sometimes but fortunately my family is very supportive. This is really important because when the work load is high (say, work 12 hours/per day for several days), the kids, my wife start missing me. I also most often refuses socializing 'cos it takes time and energy. All in all, they show a lot of patience.
The hardest part for me is the stress of the exams. Before I was (over) confident in my ability to succeed, now I'm not at all, so it's stressful. Also, I sit in front of my courses for long hours and it has real effects on my muscles. It's difficult to maintain physical activity when under pressure.
So my protocol is simple : I work 5 days a week, about 10 hours per day. Saturday is off, no matter what. Sunday I work only 7-8 hours. I do my best to be in bed before 11pm; I start working before 9:00. I do my best to have a 40 minutes walk 3-4 times per week. I try not to spend time in front of my computer when not needed (I don't spend hours tuning emacs or Debian any more :-)). I try to read 15-30 min. before sleep. The rest of the time is for family, preparing diner, dishes. So basically, I don't have personal leasure time anymore (but since I like studying, it's not much of a problem).
All in all, it's doable if you can afford to stop working the time needed (2 years in my case). But you need lots of discipline and a supportive family 'cos your brain has definitely aged...
For example in programming, when I stumble on a problem, not immediately going to SO for an answer but thinking about it for a while has helped me to learn better.
When learning something new, I’ve found it’s helpful to hear the top experts engaging with one-another about the topic. Not to hear what they think, but to hear how they think, and in particular, the level of abstraction in which they’re working.
Actively look for relationships between what you're learning and what you already know: Does the thing you're learning solve a problem that you're familiar with? Is its mechanism similar to something from another field? Does it achieve a similar result in a novel way? etc.
Write down these insights somewhere, and figure out some way to habitually review them. The details of this habit probably don't matter too much, as long as it's something comfortable for you to keep up long-term.