Being a programmer is rough, especially when technology moves so fast. I’m sure there are about two new libraries, three new APIs, and a plethora of new widgets that have just come out by the time I finish typing and posting these thing.
If you’re working in a standard LOB (line of business) you’re stuck between two perils. One hand there is ALWAYS work to do and programming requests typically pile up before you finish. Where I work, we’re down a couple of folks and with the economy, departments are looking to IT to do more of their “processing” work for them. This makes things even more frantic.
On the other hand, I owe it to myself, and my employer, to keep up with the current trends. This way I can become a better craftsman [Yes, I said that.] and offer new solutions to problems we face in the future. Keeping up with the current trends, in my opinion, also involves understanding common bugs that are happening with various frameworks and seeing new ways to “skin the cat.”
All of this takes time, and a bit of detail. Walk up to your supervisor and say, “Hey boss, I want to take some time to research Framework X and maybe write a little app with it.” and you’ll probably get some odd looks. Some supervisors understand this and will let things go, and others will want you to take your own vacation time to do such things. Worse, they may expect you to do those things on your own time. But with a family and a life outside of the job, who’s going to do that? I will sheepishly admit that I enjoy doing my own projects outside of work [I’m a freak that way], but that’s a different story and irrelevant here.
After doing my own scheming and pondering, I think I’ve finally come up with a suitable solution to this situation:
Three hours a week, that’s all I ask.
Take three hours out of your work week and devote it to doing the “upkeep” of your trade. How you split it up is up to you. Often times I like to take a half an hour in the morning and a half hour after getting back from lunch to “read my feeds.” I’ve collected a large amount of RSS feeds (and read them nicely thanks to Netvibes) and I skim through them looking for relevant articles. I look for articles both directly related to my programming language du jour (.Net) but also for programming concepts in general. I also keep some dibs on some aggregated sites so I can see what’s going on with other programming languages, new and old.
Sometimes I’ll take an hour once or twice during the week and work on a small project using the new framework or technology I’ve been reading about. This is how my Hacksaw application got off the ground a good 3 or 4 years back. I haven’t had much time to do a lot of upkeep since, but with the new release of MVC 3 and Razor, I’m looking to rewrite the application to leverage the new features. It doesn’t have to, but it also helps if the project you work on has some kind of direct benefit at work.
You’d be surprised at what 3 hours (a mere 7.5% of a 40 hour work week) will do to hone your skills, and make you aware of technology at large. I don’t think your supervisor will get too mad either, provided you give due priority to servers that catch on fire and apps that go wonky. But talk to them about it, I think they’ll appreciate the benefits you provide to their overall goals. Don’t forget to share your discoveries with your fellow programmers as well.