First off, Happy New Year and Happy New Decade to one and all. By the end of 2010, I hope I’m a better programmer than in 2009.
In order to be a better programmer I need to have a good resolution. I’d like to do something better this year while not abandoning good habits I’ve picked up over the time I’ve been trying to be a better programmer. (That actually makes sense even though a bit convoluted.)
So, now I’ve got to come up with a resolution. The one I want will do the following:
- It has to be one I can keep. If I aim too high, I may miss the mark and feel I’ve failed to keep a resolution. Aiming too low is just a waste of time.
- It has to be forgiving. That means that if I don’t keep it 100% of the time, it’s ok. Improvement, not perfection, is the goal. Improving habits eventually become part of my programming DNA, and it’s a step in the ongoing trek to be a better programmer than I was at this time last year.
So my New Year’s resolution is:
Improve nailing down relationships between classes in design patterns.
For example, when I look at a design pattern with an aggregate relationship, I want to be able to immediately imagine what the code looks like for that kind of relationship and how it differs from an acquaintance or some other relationship. Eventually, this will enable me to look at a design pattern in a UML and see the code-class relationships and how it might or might not solve a programming problem.
I’ve probably got a dozen other resolutions for becoming a better programmer, but they’re sort of always there nagging and whittling, nudging me in the right direction. (My wife has thousands of resolutions for me; none having a thing to do with programming!)
Ok, that’s it for me. How about you? What’s your New Year’s programming resolution? Put ‘em in our Comments, and at the end of the year we’ll see how we’ve done.

The ActionScript 3.0 Design Patterns New Years Resolution by William B. Sanders, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.
No related posts.

Bill Sanders
great resolution. Mine is to become more fully test driven in my development. I want any project I start from scratch to be done in a more testable way.
However, I am not much for resolutions. Being a runner – I see tons of people start running in January and stop running in Feb. So I am going to try to turn the resolution into a mantra in the coming weeks. Cheers.
Hi Todd,
That’s a great one, and it’s certainly on my horizon as well. You might find some thoughts on testing by Miško Hevery helpful:
Must remember: Resolution-2-Mantra
Must remember: Resolution-2-Mantra
Must remember: Resolution-2-Mantra
Must remember: Resolution-2-Mantra
Back to it!
Bill
For me it’s being able to prototype systems faster. I often spend too much time worrying on the fine grain details and ultimately giving up on the project as I become burnt out from over-analyzing.
Perhaps you can write something on aggregate relationships versus acquaintance?
-Jonathan from JADBOX
Btw, love your blog :)
Hi Jonathan,
First off, you goal of prototyping systems faster is a good one for all of us. Keep us posted on any gems you find.
Second, I am beginning work on a new desktop AIR app that is a quick relationship lookup. It’s something like the AIR Design Pattern Catalog but it covers DP UML symbols, the different kind of relationships and some examples. In the meantime, you might want to check out this article for some discussion of differentiating aggregate and acquaintance relationships. The difference is both subtle and contextual, and sometimes it’s virtually impossible to tell the difference between the two. However, I’d like to give it my best shot.
Kindest regards,
Bill
Okay, I revised my resolution to:
“Learning to prototype quickly while keeping modular using loose coupling.”
This is because a prototype that can evolve into a production quality starting point is much more useful than a bulk of unusable code.
Read more about my new year outlook over at:
http://www.jadbox.com/2010/01/nownew-decade2010/
Hi there! Nice programming resolutions from the post and for the comments.
As for me, I still got such a long way to go that is even hard to choose one. But I particularly like Jonathan’s resolution: agility! That’s the thing I’m trying to improve so I got to some reading about Lean thinking and some tools that might help like the Pomodoro technique. Both really cool.
Check it out in http://en.wikipedia.org/wiki/Lean_software_development and http://www.pomodorotechnique.com/
Tot ziens! (see ya in dutch)
Hi Memo,
Goin’ agile I see. That’s always a good one.
Veja-o mais tarde,
Bill