Before start working as a software developer on 2002, I spent three years being a musician. I played drums in a handful of bands from pop to contemporary jazz, and of course, also a lot of rock and roll! I had great time doing this, I met most of my friends during this period, and it taught me quite a few lessons that I can use in other areas than music, especially in software development.
Mastering music (drums), and software development require a lot of dedication, both on reading and practicing.
In music, the first thing I did when I decided to take it seriously was to look for a music school to learn how to read and interpret music. Then I spent a long time reading books about techniques and rhythms, attending workshops, spending nights and weekends practicing to improve my ability and velocity. That was a very important step because during that period I could commit mistakes, drop the drumsticks whilst playing, and let all the ugliness happen. No one was watching me! The goal was not to sound good, but to stretch my limits, so I could be in perfect shape when performing with a band.
In software development, it’s pretty much the same, you have to read a lot (books, blogs, articles, magazines), learn programming languages (choose two or three to specialise, and get a higher overview of others), attend workshops, meet people, practice by trying and evaluating different technologies, creating a blog to post your experiences, joining open-source projects, registering for coding competitions, solving some of the CodeKata challenges, preferably pairing with someone else, in summary, stretch your limits!!!! (Have you seen this before? ☺) Doing so will give you more self-confidence for you to perform well during your show, at client site.