A while ago, I read “Lucky to be a Programmer” and while it sums up my feelings exactly, I wanted to continue the conversation of some additional thoughts on this same topic.
There’s a lot of reasons I consider myself a lucky programmer. Until recently, I took many of these reasons for granted. It wasn’t until I started thinking of all the “things” that I have in my professional workspace, as well as in my personal development workspace, that make me grateful.
I was programming poker card memory games in QBASIC when I realized that I could do some pretty cool things with computers; this wasn’t the exact point I decided to pursue this as a hobby and profession, but it was close. Gustavo nailed it when he said:
…programming is an intense creative pleasure, a perfect mixture of puzzles, writing, and craftsmanship.
I wanted to start learning new languages and do cooler things. This translates pretty well to the present. I attend user groups, conferences, code camps and open spaces in the pursuit of higher learning (in software development, quality work and project management to name a few disciplines). While attending these I’ve learned a great deal about new technologies and practices that have improved my skills. Some of these gatherings, events and groups will allow you to get or win free software, books and prizes.
Improving my Craft
In addition to the reference material and tools I can get my hands on, I’m also able to put these to work. I now work in an environment that values quality over anything else. If I ask for a ReSharper license at work because I know that it improves my productivity and points out code issues from time to time, well, then I’m given a copy and urged to use it to its fully potential.
If I want to spend some time improving our continuous integration environment, I’m able to do so. Our team knows that these types of tasks from time-to-time are very important to ensuring constant quality. We know that there is never “one process to rule them all” and we continue to work on it and tweak it to make sure that we’re getting better. We don’t do act in a manner because “that’s just the way we do things”, our process only involves “this is how we’re currently doing it.”
I have a pretty groovy work environment.
Like many other geeks, I’m a bit introverted at times. Two or three years ago, I never would have imagined that I would be speaking in public about technology. I suppose I can take some pride that I go out of my way to help host events and attend groups and meetings that are related to software and technology. I’ve given two presentations this year and have submitted two more for future events on which I’m waiting for a response.
In Good Times and In Bad
Even in a down economy, I have seen some cutbacks that aren’t ideal and are just plain downers. After the initial slump it might put me in, it only makes me want to work harder to get our team and company out of the downtime. I kind of take it on as a challenge; it’s like being asked what you can do by thinking outside the box to find and improve ineffeciencies and correct them. I feel that if we can make it through the bad times by improving our processes, gaining knowledge and becoming more skilled; we’re only going to do better once things start trending upward.
Not Enough Hours in the Day
I spend a lot of time working on projects, reading valuable materials, analyzing open source code and working on pet projects. Sometimes I’m content with the work I do, but more often than not, I feel that there aren’t enough hours in the day provided to me to get done what I need and want to do. I have to stop and realize though, that even very productive members in the software community, feel the same way sometimes.
What Do I Have to Show For It?
When attending conferences, user groups and code camps, it’s always nice to know that some “really cool things” that people are doing, are things that we’ve been doing for a decent amount of time. In addition to good practices, we’re also able to use some fun, new things out there. In addition to a great workplace and exciting work, building quality products with low-to-no defects is always a bonus. This sort of validation provides some confidence that we’re on the right path.