For those of you that don’t know, I recently returned to the technical ranks as a Software Architect after a three-year stint in management. To make a long story short, I now love my job again. Perhaps I’ll write the long story in a future blog entry. On to the topic at hand. Today I led the first significant design discussion that I have led in quite a long time. A few minutes afterward, I was already reflecting on what had occurred and how.
I had an extremely successful meeting with one of our clients yesterday. We were discussing how we wanted to go about migrating her laboratory from its current system (one that we built several years ago) to our new lab management platform. At some point during the discussion I made the statement, “We tried to make the previous system too smart! We’re not repeating that mistake this time.” Of course, she was in complete agreement with that principle.
A local Pastor once gave the advice of introducing ourselves and our kids to dead people. It is his belief that if his kids grow up idolizing the likes of Eric Liddell, Jim Elliot, and Hudson Taylor, they would be far better off than by looking up to many of our so-called “heroes” of today. I happen to agree with his advice, but that’s not the subject of tonight’s blog entry.
Back in July I posted my professional development goals for the year (My performance review is annually in July, so it’s a good time to set goals.), and it seemed like a good idea to take a look at my progress while doing the “New Year’s Resolution” thing.
Learn Groovy and Grails Andy and Dave suggest learning a new language every year, so this seemed like a good goal for me.
I posted earlier on my desire to become a better programmer. Well, I’ve since put together a plan of action for the next twelve months. I’ve based some of these goals on suggestions from The Pragmatic Programmer by Andy Hunt and Dave Thomas.
Learn Groovy and Grails Andy and Dave suggest learning a new language every year. I had already informally started learning Groovy and Grails after JavaOne 2007. Since I already have a head start on this one, Groovy will be my language for the next year (I’m learning Grails mainly because of my web development background - it will provide me more opportunity to apply my Groovy knowledge).
I have decided to embark upon a quest to become a better programmer. I would really like to improve my understanding of the computer science that underlies my day-to-day tasks, particularly as it relates to programming language design as well as algorithm design and complexity analysis. I would also like to improve my analytical and problem solving skills. I’ve found that I’m really good at learning new technologies and quickly bringing them to bear on web application development problems, but take me out of that problem space and I get nervous rather quickly.