Around "Hello World" in 30 Days

David Eisinger, Development Director

Article Category: #Code

Posted on

I’ll say this up front: I love my job. I love the web. I love Rails. And I love working here at Viget. But lately, I’ve gone through periods where web development feels a bit stale. Hugh Macleod has a great post called Beware of Turning Hobbies into Jobs that sheds a bit of light on this problem: once you make a career out of doing what you love, it’s not solely yours anymore. There are clearly bigger problems one could have, but I think this is something all developers struggle with at some point in their careers.

This problem was weighing on my mind one morning, combined with a looming speaking engagement I’d committed to for DevNation Chicago, when it hit me: I would spend a month trying a new technology every day, and then share my experiences in Chicago. Learning is a core value here at Viget, and my coworkers were incredibly supportive, adding to the list of technologies and asking to join me in learning several of them. With their help, coming up with the list was no problem — it was actually harder to get the list down to 30. Here’s what I finally committed to:

  1. Cassandra
  2. Chrome Extensions
  3. Clojure
  4. CoffeeScript
  5. CouchDB
  6. CSS3
  7. Django
  8. Erlang
  9. Go
  10. Haskell
  11. HTML5
  12. Io
  13. Jekyll
  14. jQTouch
  15. Lua
  16. MacRuby
  17. Mercurial
  18. MongoDB
  19. Node.js
  20. OCaml
  21. ooc
  22. Redis
  23. Riak
  24. Scala
  25. Scheme
  26. Sinatra
  27. Squeak
  28. Treetop
  29. VIM
  30. ZSH

Thirteen languages, most of them functional. Five datastores of various NoSQL flavors. Five web frameworks, and seven “others,” including a new version control system, text editor, and shell.

Once I’d committed myself to this project, an hour a day for 30 days, it was surprisingly easy to stick with it. The hour time slot was critical, both as a minimum (no giving up when things get too hard or too easy) and as a maximum (it’s easier to sit down with an intimidating piece of technology at 7 p.m. when you know you’ll be done by 8). I did have some ups and downs, though. High points included Redis, Scheme, Erlang, and CoffeeScript. Lows included Cassandra and CouchDB, which I couldn’t even get running in the allotted hour.

I created a simple Tumblr blog

and posted to it after every new tech, which kept me accountable and spurred discussion on Twitter and at the office. My talk went over surprisingly well at DevNation (here are my slides), and I hope to give it again at future events.

All in all, it was a great experience and proved that projects that are intimidating when considered all at once are easily manageable when broken down into small pieces. The biggest lesson I took away from the whole thing was that it’s fundamental to find a way to make programming fun. Working my way through The Little Schemer or building a simple webapp with Node.js, I felt like a kid again, pecking out my first QBasic programs. Learning how to keep programming exciting is far more beneficial than any concrete technical knowhow I gained.

David Eisinger

David is Viget's managing development director. From our Durham, NC, office, he builds high-quality, forward-thinking software for PUMA, the World Wildlife Fund, NFLPA, and many others.

More articles by David

Related Articles