By my rough estimates, today I reached 10,000 hours of programming time, both through work and side projects. Why is this significant? If you do a little digging around the Internet, there have been numerous articles indicating that it takes this amount of time to really become proficient in something. No genius work involved, just lots of hard work and thirst for learning more. Incidentally, I also reached the 10,000 reputation mark on StackOverflow, a programming related site today as well, which can be considered another milestone for those in the know. Interestingly enough, it was a side question related to Visual Studio that put me over the edge. It wasn’t anything really in depth, but it helped somebody out and that made me happy.
So what’s the big to do about all these 10Ks. Well, in the grand scheme of things it isn’t worth breaking out the bubbly, but it is a good point in which to stop and reflect on things. Looking over these hours, I find that:
- I’ve worked through four primary server side languages: Perl, PHP, Java, and .Net
- I’ve worked through four primary database technologies: MySQL, Oracle, SQL Server, and SQLite.
- Aside from work, I have two applications, two websites, and a utility library released in the wild, some of which enjoyed a bit of popularity.
While my own history indicates a large change in technology over time, the truly amazing thing is that this is maybe a quarter of the technologies that have been out there this time in the mainstream. There are even more that I don’t know about!
Looking forward, there is still a lot I want to learn and get involved with: mobile/iPad apps, new architectures available in .Net (MVC, MVVM within WPF), and even new languages to learn (Ruby/Python/Objective C?). There is always the unknown tech out there that can spring up at random times, and I’m sure even those would catch my interest. Scott Hanselman put up a post recently listing a whole slew of interview questions for senior developers that I’d say I could only answer about 65% of them properly through initial inspection, which probably means that I’d get only about 50% correct. Instead of frustrating me, It has inspired me to go through all of the questions just to do more research and get a grasp on all of them. I might even turn it into a series of blog posts or something. Who knows.
The main point is that after 10,000 hours of time I think I’m finally at the point where I can appreciate what I know, and more importantly what I don’t know. The things that have helped me the most are side projects, helping others, and continued reading. These things keep the thirst of knowledge flowing in and pouring out into something tangible and is very healthy for continued growth. Interestingly enough (thinking about my microcosm/macrocosm posts of yesteryear), I read an article on how this really applies to life as well.
So here’s to the next 10,000 hours of software development and to what new adventures (amazing, unusual, and intriguing) await!