Original question from Quora:

How do I not feel overwhelmed from programming and learn it quickly?

I am learning Java and Android at the same time. I feel so overwhelmed. I want to learn quickly, and get at least internship this summer. But, there is so much to learn, understand and remember, and feel i can’t doing, because concepts are too complex to me to understand them.

My Answer:

Here is something that will save you decades of headache…

Have you ever picked up a guitar? If you haven’t it’s fine. The metaphor will still make sense.

I picked up a guitar the first time around age 14 or so. I was terrible at it. Oh and I didn’t practice.

Every once in a while I would pick up the guitar, goof around a bit, get a little better and then forget about the guitar. This went on for years.

Then about 11 years ago my wife and I joined a church that was missing live contemporary music. She can sing and at the time I could pound out enough basic chords to play some worship music.

At first we only could do a couple songs, but after months of practice we had enough of a repertoire to do music every Sunday morning.

Now, 11 years later of forced practice I can pick up most any song and play on Sunday morning. Every once in a while there are some that need some practice still and when that is the case, I practice until I can play the song.

By my estimation when you figure out how often I’ve had to practice, plus how often I’ve had to perform, that is something like 750–1,000 sessions of guitar playing since I started. Looking back, that seems about right to me.

If I had practiced every day since age 14, I’d have the skill level I do now by the age of 17. Actually, it’d be a lot higher by that age.

And that brings us to the lesson that will save you decades of headache…

The quickest way to learn something is to practice and learn a little bit at a time each day. There is no shortcut to putting the time and reps in.

Oh by the way, that is how you’ve learned everything you’ve ever learned in your life.

How did you learn how to walk? How long did it take?

What about talking?

What about riding a bike?

What about learning to read?

What about math?

You know what the real secret to school is? It’s tricking students into practicing a little bit each day until they “learn” things.

Yes, you need some amount of instruction, but it’s more like 10% instruction and 90% practice to learn most skills.

Programming is a skill. It takes time and practice to get good.

It’s worth the time to practice enough to really be good at this. There is no rush.

-Brian

P.S. I unpack more ideas in Creative Genius.