That's pretty much true. However my first foray into programming was in Fortran, working with a physics professor in undergrad. He basically said: "Here's my program, start changing it.", which suited my learning style well. I used it to model phase transitions, and it resulted in my first publication. I picked up Arc because Lisp looked cool, if not somewhat familiar, and I wanted to learn enough that I could make most any basic app I could imagine. I grabbed the code for hacker news, and started changing it.
Personally how you first learned is what seems to be the best way for me. Having sonething that works, you can play around with and have an end goal just seems to be the magic I need. I can't count the number of times I've been missing one of those and it's just led me to spinning my wheels for a day and then abandoning the project.
Yes, I think it's critically important to find what learning style works best for you, and just go with it. You can spend endless energy and kill motivation trying to learn the way you think you should. No doubt my learning approach has drawbacks, but they are far less than the drawback of not being motivated by the approach.