This also applies to computers. Just get your hands dirty, try to build something and you'll find yourself learning about so many things and tools incidentally while trying to fix something.
I can learn much better this way than going chapter by chapter in a book.
But interestingly, even graded, project-style assignments don't accomplish the same effect, only if I'm really onboard with the topic. I seem to need a spark of excitement of "this is not exactly the way you're supposed to be doing things" and just breaking things and playing.
I can pick something up very quickly when I have an actual reason to know it, and getting a good grade in a course is not a strong enough reason compared to “Learning this will help me save the world”. I’m not going to be passionate about it or inquisitive or asking myself the extra questions I normally ask myself when I’m learning something in order to apply it to a problem. And real problems are better than made up problems.
I learned more about trig working out what angle I needed to input in some design software to make a line cross two exact points than I ever did in high school.
I'm very much a visual learner so I find geometry in particular very satisfying since I work out relationships visually (and then mathematically to prove it).