Learning by copying
Taking apart someone else's work as practice.
To become a musician, you are taught to play music someone else made and improve your skill by continuing to find other music to copy. Amateur musicians sometimes do this for years before deciding to make their own original music. There’s even sheet music written for you to use to mimmick an original song exactly.
I learned to program HTML and CSS because of the View Source browser feature. It’s the sheet music to programming a static website. I learned to design the same way. I started out as a kid, making my own video game fan sites for fun. I would take photos and graphics from other sites and edit them until I had something I liked. I would do this over and over, staying up many late nights tweaking graphics and code. I didn’t know it then, but the time I was spending was all the practice I needed for when I later decided to build websites professionally.
Throughout the years I’ve realized that I still essentially do the same thing whenever their is a new technique I want to try out. I pick a personal project and try out the new concept while in the process understanding how it works and later applying it to client projects.
Recently, I wanted to learn some new programming skills. I decided to use Code School since I liked their approach to learning how to program: learn a little, code a little, learn some more, code some more. You are encouraged to copy the code from the slides presented at the beginning. And as you do that, you start applying what you’ve learned and write your own code for the example programs given, each getting more difficult along the way.
The View Source method can even be applied to web application code like PHP or Ruby on Rails since many projects are available online as open-sourced code. If you want to program your own blog tool, download the entire WordPress source code and take it apart. As you improve your skills, you can even become a part of an open-source project yourself as a way to continue practicing.