Oops, this is an old post, but...
Tami wrote:
...trying to learn guitar without practicing the guitar
...trying to learn soccer without a ball
...trying to learn French without speaking it (sadly, not an uncommon approach to English-learning here but...)
...trying to learn programming without writing a program
...trying to learn dancing without actually dancing
I think this analogy is a little oversimplistic, and in fact (having been in the lucky position to be able to tutor students who are beginners in some discipline in the past) I
do often recommend that people think hard about what learning guitar or French really means.
I have attempted to learn the guitar in the past. For all the chords and cadences I know, no matter how good an ear I have, in spite of all the modes and keys I can write down
on paper, I still can't make my fingers do what I want them to. Why? Because I want to be awesome at the guitar. So I don't practise stupid things like
actually fingering the chords, or
actually plucking the right string at the right time. It's all doing the right thing in my head, so why isn't it coming out of the instrument? Stupid box, mumble grumble. It's now sitting in a cupboard, gathering dust. (I had a friend whose fingers did all the things he wanted them to, but he knew no theory, so it came out of the other end sounding awful anyway.) Once you have all the tricks under your belt, you can jam to your heart's content - but
only because you've put in the groundwork.
Likewise programming. "They" (the wisdom of the internet and programming teachers and so on) say that the hardest thing about programming is thinking logically and algorithmically, and once you've got that down, the rest follows naturally. I think logically and algorithmically anyway - by upbringing and by trade and by previous exposure to much simpler programming languages - so why did it take me four (long, gruelling) attempts to learn C? Because I didn't practise boring things like syntax. I would miss out a semicolon or put curly brackets instead of round brackets, and the compiler would spit out nonsense, and I'd be ready to throw my machine out of the window. (And people who practise syntax without structure will not produce working or efficient programs.) Once you have both down, write all the programs you like!
Likewise French. One does not learn French by being plonked in France - one learns by slowly accumulating large banks of grammar knowledge and vocabulary, practising forming it into sentences, reading sentences that French native speakers have written, studying them, and
then, later, going to France.
Essentially, the guitar, C, French, and many other things, are very complex and difficult things to learn precisely because, before you are competent at
everything, your creations will be good for nothing. This is why so many people give up at all of them: they want to be good at playing the guitar, writing a program or speaking French, so they try to do so from day 1, or day 10, or day 30, or drastically before they're ready, because let's be honest - the fun part is not practising your fingering/strumming, or your syntax/algorithmic thinking, or your grammar/vocabulary. But you need all of those arrows in your quiver
before you can be good.
Of course, once you're a 6-dan professional at the guitar, C or French, you gain the right to say things like "oh, all you need to do is play/program/speak lots". It's not usually so simple - for every 6-dan professional who played lots, there are tens of thousands of 16-kyu amateurs who wonder why they play lots and don't improve.