From the book Seven Languages in Seven Weeks By Bruce Tate
Learning to program is like learning to swim. No amount of theory is a substitute for diving into the pool and flailing around in the water gasping for air. The first time you sink under the water, you panic, but when you bob to the surface and gulp in some air, you feel elated. You think to yourself, “I can swim.” At least that’s how I felt when I learned to swim.
It’s the same with programming. The first steps are the most difficult, and you need a good teacher to encourage you to jump into the water.
The first step in acquiring any new skill is not being able to do your own thing but being able to reproduce what other people have done before you. This is the quickest way to mastering a skill.
Ultimately, programming is about understanding, and understanding is about ideas. So, exposure to new ideas is essential to a deeper understanding of what programming is all about.
-Joe Armstrong, creator of Erlang