Never Stop Learning post

May 30th, 2008

Yes, I realize that my posting had slowed down and that's mainly because, well, I'm trying to subscribe to the theory that I should only blog when I have something interesting to say. Maybe some of you think I never have anything interesting to say. Anyhow, here's what I've been thinking about.

Despite my 10 plus years of cranking out terrible code using a language hated by numerous developers (those "I've gone to language X and will never return to PHP" comments I see on the web just make me laugh and remind me how few people really understand that a programming language is just a tool to get a job done and it's about the skill of the progammer. Delude yourself at your own peril) I am constantly learning new things. Here are a few of the newer things I've been concentrating on as of late:

  • Learning how to create unobtrusive Javascript for my Ajax-powered applications. Much easier to do when starting from scratch, harder to do when refactoring an existing application
  • Simple code is better, so I am focusing my coding on trying to do the bare minimum that works, and avoiding cute and clever solutions. Common sense, sure. But I still see examples all over the place of people avoiding easy solutions. Why do people do this? Job security? Over-inflated ego? This is where my slacker tendencies work well for me. Simple is GOOD, my dear readers.
  • When dealing with conditional logic and programming flow, you should always practice "return home early". Felix nailed it on the head here, and I've been doing this for a number of years now but as I refactor code for a work project I find myself chopping away at the code. Reminds me of an old post on carpenter or sculptor from a programming perspective.
  • Always be open to new ideas, as you never know when the next big thing flashes across your vision and you want to be aware of it. Watching Twitter's struggles to simply stay up under the huge crushing load has made me realize how critical it is to actually understand WHAT it is you're building and HOW technology choices impact things. So I've started thinking about system architectures. I love reading about cool application stacks and figuring out how I could ever fit in time to learn some of these things like Erlang, or Mantissa. I've been working with the LAMP stack for so long it might be time to branch out and build some apps using one of the alternatives just so I understand these things. Why couldn't I build a Javascript + Erlang + CouchDB application? Other than my own internal fears, nothing, right?

Never stop learning, people. Passion is the key to keep your job interesting, as you never know when your job will suddenly become interesting whether you like it or not.