I spoke again this year at Orlando Code Camp, for two sessions. We had an amazing turnout again for arguably one of the best community driven education events anywhere. Again, I devoted one of my talks to professional development, specifically the process around hiring and getting hired. One of my bullet points was that, as a developer job candidate, most people simply aren't good enough to do the job that the employer needs. Indeed, we suffer from a massive skill deficiency in our line of work. The response from one gentleman, was not defensive, but awesome: "What do I do to be better?"
This is a question that has many answers, but I always come back to the same advice: Surround yourself with the best people possible. I honestly believe that this is the best way to improve your skills in most fields, but it carries extra weight in software development because of the qualities it shares with the blue collar trades. Mentoring is an important way to refine your abilities. I've found in my career that it's important not just in the early stages, where a lack of experience naturally means less ability, but also later, when you have to hire people to work for you. Suck it up and get people smarter than you, because they will contribute to your success.
Seek the best people, try hard to work with them.