Earlier this month I wrote a post titled Please Stop Wasting Your Time Reading Books, which generated some good discussion. I expected some people to be upset about it, and they were, so I feel like writing about my own learning process, the one where I actually see real, tangible results and that doesn’t require many books.

Example: iPhone programming

Even though I was already a (self-made) competent web programmer, at the beginning of last year I decided to step into iPhone programming. I knew that creating software for a mobile device was very different than for the web.

Without going into technical details I had to learn a new computer language as well as learning new programming paradigms.

Here’s how my learning experience went:

  • January 2010 – May 2010: This was the time where I spent most of my learning time reading books about iPhone programming. I’ve probably read 3-4 books (they’re thick) and did the exercises suggested where present. Result: after four months I wasn’t able to create a simple program myself. Some of what I read was actually useful and taught me important concepts, but after finishing the books I wasn’t able to recall what I learned.
  • June 2010- December 2010: During this time I did very little. I actually worked on some tutorials and tried to make something simple on my own. Nothing too fancy, just proof of concepts. I built a simple rss reader and posted about the process online. People liked it and I was happy. But I still wasn’t an iPhone programmer
  • December 2010 – March 2011: This is where I started to take things seriously. I put aside books and started working on something real, something that I would then sell for money. Needless to say I had to relearn everything from scratch, things that weren’t even mentioned on books. After only 3 months I now feel confident on working on moderately complex iPhone programs, both for me and for clients.

I don’t claim to be a great iPhone developer, but I’m making progress fast and I’m improving my skills every day.

How to Become A Good Programmer, Designer, Painter

So how do you apply this to your specific situation? It’s very simple, define what you want and work on it every day. It’s so ridiculously simple and obvious that it works every single time.

  • Want to become a good writer? Write a page or more every day.
  • Want to become a good programmer? Work on one open source project every day.
  • Want to become a good painter? Paint something, anything every day.
  • And so on.

And so on. I assure you that if you spend 30 minutes a day learning about a particular skill, after one year you’ll be already ahead of most people.

###

I’ll say it for the last time to avoid confusion. Books are not the problem. You’ll need them when you don’t understand how to do something. Just remember that the core of learning lies on doing stuff, not reading about it.