92 lines
4.4 KiB
Markdown
92 lines
4.4 KiB
Markdown
---
|
|
title: "Around \"Hello World\" in 30 Days"
|
|
date: 2010-06-02T00:00:00+00:00
|
|
draft: false
|
|
canonical_url: https://www.viget.com/articles/around-hello-world-in-30-days/
|
|
---
|
|
|
|
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](http://gapingvoid.com/2008/01/10/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](http://news.nationalgeographic.com/news/2010/06/100601-sinkhole-in-guatemala-2010-world-science/),
|
|
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](http://devnation.us/events/8), 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](http://cassandra.apache.org/)
|
|
2. [Chrome Extensions](https://code.google.com/chrome/extensions/)
|
|
3. [Clojure](http://clojure.org/)
|
|
4. [CoffeeScript](https://jashkenas.github.com/coffee-script/)
|
|
5. [CouchDB](http://couchdb.apache.org/)
|
|
6. [CSS3](http://www.css3.info/)
|
|
7. [Django](https://www.djangoproject.com/)
|
|
8. [Erlang](http://www.erlang.org/)
|
|
9. [Go](https://golang.org/)
|
|
10. [Haskell](http://www.haskell.org/)
|
|
11. [HTML5](https://en.wikipedia.org/wiki/HTML5)
|
|
12. [Io](http://www.iolanguage.com/)
|
|
13. [Jekyll](https://github.com/mojombo/jekyll)
|
|
14. [jQTouch](http://www.jqtouch.com/)
|
|
15. [Lua](http://www.lua.org/)
|
|
16. [MacRuby](http://www.macruby.org/)
|
|
17. [Mercurial](http://mercurial.selenic.com/)
|
|
18. [MongoDB](http://www.mongodb.org/)
|
|
19. [Node.js](http://nodejs.org/)
|
|
20. [OCaml](http://caml.inria.fr/)
|
|
21. [ooc](http://ooc-lang.org/)
|
|
22. [Redis](https://code.google.com/p/redis/)
|
|
23. [Riak](http://riak.basho.com/)
|
|
24. [Scala](http://www.scala-lang.org/)
|
|
25. [Scheme](https://en.wikipedia.org/wiki/Scheme_(programming_language))
|
|
26. [Sinatra](http://www.sinatrarb.com/)
|
|
27. [Squeak](http://www.squeak.org/)
|
|
28. [Treetop](http://treetop.rubyforge.org/)
|
|
29. [VIM](http://www.vim.org/)
|
|
30. [ZSH](http://www.zsh.org/)
|
|
|
|
Thirteen languages, most of them functional. Five datastores of various
|
|
[NoSQL](https://en.wikipedia.org/wiki/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](https://techmonth.tumblr.com) 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](http://www.slideshare.net/deisinger/techmonth)), 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](https://www.amazon.com/Little-Schemer-Daniel-P-Friedman/dp/0262560992)
|
|
or building a simple webapp with [Node.js](http://nodejs.org/), 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.
|