I am not an expert.
Computer programming is about constant learning. I like to think that I'm competent in my field (currently doing .NET programming). But with the depth and breadth of the technologies, it's also very easy to feel lost and inadequate. Still, I keep moving forward and keep learning new things along the way. If I ever get to the point when I've come to the end of another project and I haven't come across some new technique or optimization along the way, then it probably means that it's time to move on to another field.
But I don't see that happening for a while.
I wrote my first program in 1985 on a knock-off Apple ][. I was 14 at the time. So, that puts me squarely between the old-timers who talk about punch cards and big iron, and the newcomers who have never had a computer with a floppy drive. Over the years, I've used various programming tools and languages, including BASIC, C++, Visual Basic, Java, Delphi and C#. In addition, I've used various web technologies, such as HTML, JavaScript, PHP, Visual InterDev, ASP, ASP.NET, and even dabbled in assembly (just for the "fun" of it).
My professional programming career began in 2000. I was fortunate enough to have been given access to good training, knowledgeable colleagues, and access to the occasional technical conference. I'm also an avid reader and can usually be found with some 600 page tome in my bag.
So, what's this all about? My goal is to help other programmers take a step up. Together, we will be looking at various topics ranging from general programming techniques (such as common design patterns) to specific technologies (such as WCF and WPF) to application architecture. The focus will be on those elements that have made me more effective as a programmer. But I will also include mistakes that I've made along the way. Many times, basic tenets become clear when you look at the way not to do things.
Be prepared to think. And above all, keep learning.