Joseph Jude

Technology, Psychology, and Story Telling

Why I'm Learning Nodejs

Posted: Tags: tech,nodejs


In software industry, if you are not updated you will be outdated[1]. So I continue to learn new stuff regularly. It has been a long, but interesting road from CLI to GUI, and FORTRAN to Objective-C.

This year(2014), I am learning nodejs. I got three reasons:

It's a challenge: So far, I have developed for desktop, mobile and (db and web) servers. I never had to deal with Javascript in any of these ventures, which resulted in a "don't care" attitude towards Javascript. Over the years, this turned into a vicious circle—I didn't know Javascript, so didn't dive into any web-front-end programming; I didn't do any web-front-end programming, so I didn't learn Javascript. With node.js that's all changing.

Learning new syntax with its gotchas has been a challenge. It took quite a lot of effort in understanding and revising my mental-model for async and callbacks. Thank god, the transition from Python to JavaScript (or Django to Sailsjs), isn't anything like going from programming to running a business.

It reduces cognitive load[2]: One of the reasons I didn't learn Javascript earlier was the required cognitive load to switch from Python or Objective-C to Javascript and back. Nodejs eliminates that barrier. Since Javascript can be used at both front-end and back-end, there is no context-switch needed. Not just that, even build and deploy tools are getting built with Javascript. So the entire development chain is on Javascript and it is a huge benefit.

It's an investment: When I say 'investment,' I don't mean only direct financial gains. It's too early to tell if I'll develop commercial apps or not in node.js. But I'm sure that the lessons learnt in developing, testing, deploying and maintaining node.js apps will have a broader application in my software career.

True to my consume-produce-engage learning framework, I've been watching videos and reading lots of articles on nodejs. As a next step, I'm thinking of building few apps to scratch-my-own-itch. It will either be a static blog engine or a URL shortener. I'm excited.

  1. This explains why lazy programmers aspire to become managers. Nothing has changed in management in 50 years. Wrap the concept in a different terminology and you are good to go for years without another effort from you.

  2. I was going to say, it gets me close to being a 'full-stack-developer', but as this O'reilly radar article says, there are no software unicorns, only T-Developers ("a developer with broad knowledge and interests, but who understands one area deeply").


comments powered by Disqus