My First Month with Node.js

First off, I’ve been biased for years when it comes to JavaScript.  I remember the early days of writing code that was specific to browsers, multiple implementations of accessing the DOM and then just the general lack of tooling and libraries that existed out there.  For years, I wanted everything to be server side because writing front-end code was just not what I was in to (not that I learned Flash or Silverlight either).  Needless to say when I joined up at my new company I wanted to start fresh and to give their stack a chance and it is a far cry from the C#, ASP.NET that I’ve been doing for years.  I actually haven’t been coding much for the past few years and was planning on continuing along the same path here but once I got into the problem domain and the stack, I just dove in all giddy like the first day that I opened VI in CSCI 101

So one month in … you can call me pleasantly surprised and thoroughly excited to learn more and sharpen my skills.  A few quick things I’ve enjoyed (some Node specific and some just developer enjoyment)

  • Modularity – simple and easy to add external sources, modularize your code and share/extend with other projects
  • Simplicity – I find myself focusing less on frameworks, dependencies and more on just writing the logic that is important to our projects
  • Testability – code is easy to test.  Mocha/Chai combined together have been a breeze to work with
  • VSCode – I know, not Node related but wow I love this editor and its extensions
  • MongoDB – ease of working with Mongo whether it be the ODM (Mongoose) or writing queries with the native lib.

Things I’m getting used to

  • Working again with a scripted language.  I’m using a Linter but it is still taking some time to get used to that.  Also, working more with hashes vs strongly typed objects (this again is probably more related to my understanding, learning and skill at the moment)
  • Callbacks and thenables.  Async workflows are taking me some time to get used to but I do like it.  Spinning up threads while problematic were how I was taught and a pattern I’ve used so not a bad thing, just taking time to really get used to it.

I’m going to be sharing more about my journey from C# and .NET to Node.js and the other exciting things I’m going to be up to over the next few months.  Would love feedback and dialogue along the way!