Most web developers know that the tech industry moves at an accelerated pace, with hundreds (thousands?) of new technologies to try out that all promise to make our jobs [easier|faster|more efficient|stronger|more shiny].
The problem is time.
How do you know which technology is worth your time to learn? Which ones will actually deliver and make actual improvements?
I've spent the last seven years (2005) working in Ruby and Ruby on Rails as my primary development environment. I've used a smattering of different technologies but my default stack has changed very little over the years (I'd like to think that I've grown into the stack and am using it better than when I started).
Occasionally I'd try out something new which would have a huge payoff for me, like jQuery or Sinatra. Many other times the "new thing" wouldn't work or would only pay off in specific cases that I don't encounter. Even if there isn't an immediate benefit, I still need to make sure to set aside time to learn new tech.
To formalize this a bit and prevent it from getting put off for "later", I've decided to follow what David Eisinger did. He picked 30 pieces of technology, spent one hour per day, and tried to actually use them. I'm going to do it a bit differently and do only one per week (maybe two) but I'd like to continue doing it over several months.
I've been asking around on Twitter and have a rough idea of the technologies I want to try out. If you have another, suggest it in the comments. I'm open to mostly anything; programming language, framework, library/plugin, etc.
- MongoDB
- Redis - Learning Redis
- Resque
- Datamapper
- Riak
- Cassandra
- CoffeeScript - Learning CoffeeScript (with a dash of Node.js)
- Knockout.js - Learning Knockout.js
- Angular.js AngularJS – Weekly Tech Learning
- Backbone.js - Learning (and Failing at) Backbone.js
- Ember.js
- riot.js - riot.js, minimal MVP - Weekly Tech Learning
- Spine.js
- batman.js
- phantom.js
- casper.js
- Web sockets
- pjax - Learning pjax
- Socket.io
- Canvas element
- HTML5 geolocation
- CSS3 animations
- fog gem for EC2 and Rackspace cloud servers - Fog – Automating Cloud Servers
- VIM
- Padrino
- Node.js - Learning Node.js
- express (framework for node.js)
- tower.js (framework for node and express)
- flatiron.js (framework for node)
- derby.js
- meteor.js
- Iridium (tutorial) (JavaScript toolchain)
- handlebars.js
- RSpec 2
- EventMachine - Learning EventMachine
- Goliath
- C
- Objective-C
- iOS development
- Phone Gap
- Lua
- Io
- Selenium
- Erlang
- spooky (Sinatra-like framework for Erlang)
- python
- django
- mongrel2
- Elastic Search
- Wordpress plugins
- Compass
- MiddleMan (Static site generator)
- Renee
- fallen (daemon library for Ruby )
- knockback
- fnordmetric (Railscast)
- tmux
- R
- Go - Go - Tech Learning
- QUnit – Tech Learning
I haven't completely thought out how this will work but at the very least I'll try to write up a summary of my experience with each technology here.