Learning New Technologies

Learning New Technologies

2013, Feb 13    

For some people, it’s like pulling teeth.  I’ve spent all of this time learning Java (which most people still can’t use effectively) and now you want me to start over with something new?  Ludicrous!

One of my coworkers recently posted a great comment, which came from Zemanta:

I agree, I can't keep up, I just finished learning backbone.js and now I've found out on HN that it's old news, and I should use ember.js, cross that, it has opinions, I should use Meteor, no, AngularJS, no, Tower.js (on node.js), and for html templates I need handlebars, no mustache, wait, DoT.js is better, hang on, why do I need an HTML parser inside the browser? isn't that what the browser for? so no HTML templates? ok, DOM snippets, fine, Web Components you say? W3C are in the game too? you mean write REGULAR JavaScript like the Google guys? yuck, oh, I just should write it with CofeeScript and it will look ok, not Coffee? Coco? LiveScript? DART? GWT? ok, let me just go back to Ruby on Rails, oh it doesn't scale? Grails? Groovy? Roo? too "Springy?" ok, what about node.js? doesn't scale either?? but I can write client side, server side and mongodb side code in the same language? (but does it have to be JavaScript?) ok, what about PHP, you say it's not really thread safe? they lie?? ok, let me go back to server coding, it's still Java right? no? Lisp? oh it's called Clojure? well, it has a Bridge / protocol buffers / thrift implementation so we can be language agnostic, so we can support our Haskell developers. Or just go with Scala/Lift/Play it's the BEST framework (Foresquare use it, so it has to be good). of course we won't do SOAP and will use only JSON RESTful services cause it's only for banks and Walmart, and god forbid to use a SQL database it will never scale I've had it, I'm going to outsource this project... they will probably use a wordpress template and copy paste jQuery to get me the same exact result without the headache and in half quarter the price.

This is hilarious, and very true.  These are new technologies all of them.  You can’t keep up with everything.  But if you haven’t spent a week programming with one of them, my suggestion is to not shoot it down so fast.  These are all tools.  And although, as a craftsman, a builder may be able to do many things with a Power Miter Saw.  Heck, it might be your go-to tool for most things that you do.  Just know that it’s not the tool for every job.  And fighting anyone who offers you a reciprocating saw because you don’t want to learn how to use it is silly.  Same applies to programming.  Get the tool, whether that is Ruby, Clojure, NoSQL database libraries, or just a simple new (to you) JavaScript Library like Backbone (here, have a tutorial).  Play with it for a while.  Read about it’s suggested use.  You’ll find out really quickly that sometimes it’s really useful for some jobs, and not for others.

For example, here’s a great article about Functional Programming.  Does it apply to someone writing a single server solution?  Nope.  So now you know that this doesn’t apply, and that it might not be the best tool for you.  But if you are working on something that will horizontally scale, this is the stuff for you.  See what I mean?  Different tools for different people.  Once you get the hang of trying them out, it gets easier to evaluate others.  Which makes you a better programmer.