index.md (4483B)
1 --- 2 title: "Around \"Hello World\" in 30 Days" 3 date: 2010-06-02T00:00:00+00:00 4 draft: false 5 canonical_url: https://www.viget.com/articles/around-hello-world-in-30-days/ 6 --- 7 8 I'll say this up front: I love my job. I love the web. I love Rails. And 9 I love working here at Viget. But lately, I've gone through periods 10 where web development feels a bit stale. Hugh Macleod has a great post 11 called [Beware of Turning Hobbies into 12 Jobs](http://gapingvoid.com/2008/01/10/beware-of-turning-hobbies-into-jobs/) 13 that sheds a bit of light on this problem: once you make a career out of 14 doing what you love, it's not solely yours anymore. There are clearly 15 [bigger problems one could 16 have](http://news.nationalgeographic.com/news/2010/06/100601-sinkhole-in-guatemala-2010-world-science/), 17 but I think this is something all developers struggle with at some point 18 in their careers. 19 20 This problem was weighing on my mind one morning, combined with a 21 looming speaking engagement I'd committed to for [DevNation 22 Chicago](http://devnation.us/events/8), when it hit me: I would spend a 23 month trying a new technology every day, and then share my experiences 24 in Chicago. Learning is a core value here at Viget, and my coworkers 25 were incredibly supportive, adding to the list of technologies and 26 asking to join me in learning several of them. With their help, coming 27 up with the list was no problem --- it was actually harder to get the 28 list *down* to 30. Here's what I finally committed to: 29 30 1. [Cassandra](http://cassandra.apache.org/) 31 2. [Chrome Extensions](https://code.google.com/chrome/extensions/) 32 3. [Clojure](http://clojure.org/) 33 4. [CoffeeScript](https://jashkenas.github.com/coffee-script/) 34 5. [CouchDB](http://couchdb.apache.org/) 35 6. [CSS3](http://www.css3.info/) 36 7. [Django](https://www.djangoproject.com/) 37 8. [Erlang](http://www.erlang.org/) 38 9. [Go](https://golang.org/) 39 10. [Haskell](http://www.haskell.org/) 40 11. [HTML5](https://en.wikipedia.org/wiki/HTML5) 41 12. [Io](http://www.iolanguage.com/) 42 13. [Jekyll](https://github.com/mojombo/jekyll) 43 14. [jQTouch](http://www.jqtouch.com/) 44 15. [Lua](http://www.lua.org/) 45 16. [MacRuby](http://www.macruby.org/) 46 17. [Mercurial](http://mercurial.selenic.com/) 47 18. [MongoDB](http://www.mongodb.org/) 48 19. [Node.js](http://nodejs.org/) 49 20. [OCaml](http://caml.inria.fr/) 50 21. [ooc](http://ooc-lang.org/) 51 22. [Redis](https://code.google.com/p/redis/) 52 23. [Riak](http://riak.basho.com/) 53 24. [Scala](http://www.scala-lang.org/) 54 25. [Scheme](https://en.wikipedia.org/wiki/Scheme_(programming_language)) 55 26. [Sinatra](http://www.sinatrarb.com/) 56 27. [Squeak](http://www.squeak.org/) 57 28. [Treetop](http://treetop.rubyforge.org/) 58 29. [VIM](http://www.vim.org/) 59 30. [ZSH](http://www.zsh.org/) 60 61 Thirteen languages, most of them functional. Five datastores of various 62 [NoSQL](https://en.wikipedia.org/wiki/NoSQL) flavors. Five web 63 frameworks, and seven "others," including a new version control system, 64 text editor, and shell. 65 66 Once I'd committed myself to this project, an hour a day for 30 days, it 67 was surprisingly easy to stick with it. The hour time slot was critical, 68 both as a minimum (no giving up when things get too hard or too easy) 69 and as a maximum (it's easier to sit down with an intimidating piece of 70 technology at 7 p.m. when you know you'll be done by 8). I did have some 71 ups and downs, though. High points included Redis, Scheme, Erlang, and 72 CoffeeScript. Lows included Cassandra and CouchDB, which I couldn't even 73 get running in the allotted hour. 74 75 I created a simple [Tumblr blog](https://techmonth.tumblr.com) and posted 76 to it after every new tech, which kept me accountable and 77 spurred discussion on Twitter and at the office. My talk went over 78 surprisingly well at DevNation ([here are my 79 slides](http://www.slideshare.net/deisinger/techmonth)), and I hope to 80 give it again at future events. 81 82 All in all, it was a great experience and proved that projects that are 83 intimidating when considered all at once are easily manageable when 84 broken down into small pieces. The biggest lesson I took away from the 85 whole thing was that it's fundamental to find a way to make programming 86 fun. Working my way through [The Little 87 Schemer](https://www.amazon.com/Little-Schemer-Daniel-P-Friedman/dp/0262560992) 88 or building a simple webapp with [Node.js](http://nodejs.org/), I felt 89 like a kid again, pecking out my first QBasic programs. Learning how to 90 keep programming exciting is far more beneficial than any concrete 91 technical knowhow I gained.