Quantum Organics

better living through entropy

Becoming a Better Programmer (An Introduction)

Hi, I’m Scott.  I have been developing software professionally for the past ten years. I’ve learned a lot during that time, but when I began working in .NET about two years ago, I quickly realized that I had a lot of learning to do. I had been working mostly in ColdFusion and PHP for the previous three or four years, and had focused on old school ASP before that. Sure, a lot of my knowledge and experience was relevant. HTML, CSS, and JavaScript hadn’t changed much.  SQL Server and Oracle hadn’t either.  But as an application developer, the focus is that middle area—the application—and after working in (predominantly) procedural languages for eight years, the sudden shift to an object-oriented platform was slightly overwhelming. In my mind, I had three options: give up and go back to a procedural language, try to bend the platform to my procedural mindset, or adopt an object-oriented mindset and become a better programmer.

Hopefully it is obvious from the title of this post that I chose the third path. Object-oriented programming (OOP) is not a trend.  It wasn’t invented yesterday, and it isn’t going away any time soon. When Microsoft released the .NET framework in 2002, forcing the legions of Visual Basic programmers to learn the new object-oriented VB.NET or perish, that was as clear a signal as any that not only was OOP here to stay—it was the mainstream.

I wasn’t starting completely from scratch. The computer science curriculum from the late ’90s placed a heavy emphasis on OOP, and I learned it via C++ and Java during that time.  Still, eight years away is a long time and I had a lot that I needed to relearn and I’d developed a lot of habits that I needed to unlearn. The industry hadn’t stopped to wait for me, either. Agile development practices now seem intimately linked to OOP and provide a framework of best practices for ensuring quality. Meanwhile, my family still expects to be fed, and my clients still expect me to deliver software.

I am starting this blog in large part to share my experiences learning OOP and agile development. In the May/June 2008 issue of CoDe Magazine, Microsoft MVP Jean-Paul Boodhoo wrote a terrific article called “Individuagility” in which he outlines his approach to teaching agile development. His steps correspond fairly neatly to my own experiences so far. The last point in his list does a great job of summarizing why I have undertaken my personal journey, and why I am documenting it:

Become a student of your profession. Most of the people who embark down this style of development do so because they have a passion to want to deliver applications that both please the user as well as please other developers who maintain the code. Like anything else in life, if you want to excel in anything you have to be willing to sacrifice a little. What does this mean? Make a commitment to read a book a month. Take time to download a tool you have no idea about and start spiking it. Speak at a user group. Write a magazine article about your learning. Passion breeds passion. If you get infected, more often than not, others around you will want to take part in the learning that you are going through!

Hopefully I’ll be able to impart some of my passion and advice, and motivate others to start or continue similar journeys.  My goal is one post per week, but as this post is just an introduction I’m going to try to follow it up in the next day or two with some actual content.  Stay tuned!

No comments yet. Be the first!
Leave a comment
  1. *
  2. *