How do you keep up with developments in programming? What about keeping yourself engaged as a developer?
I read books. I read a lot of blogs. In fact, my Google Reader is so packed with blogs that I can't always keep up. I end up going through the list of articles much the same way you might scan over the list of articles on cnn.com or a local newspaper.
Luckily, I've got another technique up my sleeve. I've got a commute. I drive for about an hour total each day, to and from work. I can't read blogs then, but I can listen to podcasts. Podcasts are a bit weird. You can't skim them very well - you have to actually listen to them front to back. That's also the downside to podcasts - you can't skim them well, so you need be a bit more selective about them. Here are my choices for programming related podcasts (other podcasts will come in a future post).
I listen to two kinds of programming podcasts. The first are aimed at current events - either new software releases or community happenings. These have a lot of overlap with the blogs I read, but the enforced pacing of a podcast means that sometimes I'll end up learning important things about something I'd skimmed over in the RSS reader. The other kind are more about the programming lifestyle, and I haven't found a good counterpart for these in the blog world.
Current Events Podcasts
These supplement my selection of RSS feeds. They push me to learn a bit more about things that I skipped over in the RSS reader.
The Changelog http://thechangelog.com/
Ruby 5 http://ruby5.envylabs.com/
A rotating cast of developers give a twice-weekly roundup of new releases and cool stuff in the Ruby world. 5 minutes long and moves really quickly. This is a pretty good way to hear about new releases with a little bit of flavor to help you know when something's interesting to you in particular. They pretty obviously write a script beforehand, so jokes and interactions between the presenters can seem a bit stilted sometimes.
The Ruby Show http://rubyshow.com/
Silly. Juvenile. Entertaining. Peter Cooper and Jason Seifer cover recent happenings in Ruby land. The subject matter has a lot of overlaps with The Changelog and Ruby 5, but somehow all three of these will pick up subjects that the others miss. The Ruby Show tends to focus a bit more on community and interesting learning opportunities than the others do. Listen for any time Peter has to say a word with an initial "thr" sound.
Programming Lifestyle Podcasts
These are more meditative - talking about being a programmer in general.
Miles Forrest and Curtis McHale interview other developers and talk about getting better at programming. Coderpath doesn't update as often as I'd like, but when it does it's great.
This Developer's Life http://thisdeveloperslife.com/
Rob Conery and Scott Hanselman do a podcast about different aspects of being a developer. The focus here isn't on code, but on things like work/life balance, horrible projects and getting fired. Stories are generally told via anecdotes from other developers that they've interviewed. Listen to this to hear some entertaining stories that help you understand that you're not alone.
All in all, I have enough podcasts to keep my commutes covered pretty well. I feel like they play an important part in keeping me informed and inspired.
If you're using a Mac, you probably have growl running.
Did you know you can use it to get notifications whenever any kind of script finishes running? Pop-ups when specs and deployments finish can be really handy.
First, open up a terminal and see if you already have the growlnotify program. If not, you'll need to install it. Luckily, it comes in the "extras" folder within the main Growl distribution. Just run the growlnotify package installer to get it.
Once you've got it installed, all you need to do to get a notification after running something is append a growlnotify command line after the command. Something like this:
rake spec ; growlnotify -s -m "specs are done!"
The semi-colon after rake spec tells it to run the second command unconditionally after rake finishes. -s tells it to make the notification sticky - that way it'll stay on screen so you see it even if you've looked away right when specs finish. Otherwise you might end up assuming they're still running when they aren't. -m lets you specify a message for the growl window.
And that's it. No code changes. No programming at all and you can safely switch contexts to check your mail, visit stackoverflow or whatever and you'll still know when the specs finish.