Once upon a time, I'd learn things by reading manuals. Cover to cover, grasp everything, and if there were exercises, I'd do them in my head. Then I'd get going.
Then I started to learn by playing. I'd mess around with a piece of software, try things, and gradually absorb what it could do and how I could do it. That's how I learned to use Photoshop, in my own, idiosyncratic way. I've tried reading books or watching tutorials, but somehow, it never stuck. The only time I've learned new tricks is when someone looks over my shoulder and says - the right way - oh, did you know you could do this instead, and it's easier / better / faster ? And then I can take that little tip, relate it to what I'm doing, and use it.
Nowadays, though, I only seem to be able to learn software when I have a specific goal and some serious time pressure. If I know what I'm trying to achieve, then I have a structure to work with. I don't get distracted by obscure features or unnecessary tasks, I just focus on learning everything I need to know to get the job done. And, because it's a real project, not a test project, I learn it and remember it.
Right now, I'm learning how to make eBooks. I've spent a day or so looking at how it's done, researching the market and the different devices and formats, and doing the basic research. I've got the tools, and now I need to learn how to use them. I've opened them up and played with them a bit, but I'm none the wiser. The solution is simple. Start on the first book right away. Screw it up, get it rejected, do it again, repeat until satisfactory.
I know the job can be done in a day. Two days is normal. So I'm allowing myself a week for the first one. Then, as I get better, I'll get quicker, and within a few iterations, I'll know all I need to know to hit that one-to-two day target. Then, once I have the process down, I'll start picking up tricks to do more. It works out quite efficiently, and it means I'm getting real results very early on.
I think it's mainly due to the fact that most software is way more feature-rich than I need. I probably only use maybe 10% of the functionality of most of the apps I have. The rest are unnecessary. If I started learning by playing, I'd be lost in irrelevance, and getting frustrated that I wasn't doing the thing I was after. Yes, it might be nice to figure out how I can make a book title that wings its way onto the opening page like a flight of swans, forms beautiful letters while rippling through all the colours of the rainbow, and then bursts into flame, leaving nothing behind but the words scorched onto the electronic paper, but really, that's not as important as figuring out how to put the damn text onto the reader, is it? Task-based learning forces you to focus on what's critical. In the process, I'll notice the option to create animated titles, and I can come back to that when I have time, or if I have a project that would genuinely benefit from it.
It's the same with pretty much all apps. They do way more than I need. So does my phone. So does my bloody dishwasher. (What exactly are those other four programs for? Isn't the WASH program enough?) I can't be bothered to figure everything out, just enough to deal with what I need right now.
This isn't just a technology thing or a complaint about unnecessary features and over-engineered software. This "just in time knowledge" is actually how we learn most things. I'm not going to learn all about plumbing to deal with any potential household crises. I'll find out just what I need to know to fix my leaking shower, and deal with that. (Or, in reality, get someone to come over and fix my shower while I watch, so I'll know for next time. Thanks, Jon!)
Learning by throwing myself in at the deep end seems to work for me. It keeps me focused on results, and seems to improve my retention. I'd be interested to hear how others learn new skills.