Embracing Javascript

Posted on Fri 28 June 2019 in programming

I have a confession to make; I don't know javascript all that well. As a developer whose strengths lie primarily in back-end work, I've always held the language at arms' length, relying on it only when absolutely necessary. All that is about to change, because I am finally embracing javascript. Initially, my plan is to write in Node.js, and then move on to more front-end work afterwards. As node is server-side javascript, this will allow me to leverage all my years as a back-end developer and allow me to anchor new concepts to my existing experience, hopefully providing a more fun way of learning, while simultaneously increasing my retention of new concepts.

What do I plan to learn about? All the things! I sketched out a list of topics I'm interested in learning, outlined below.

  • how to document node code?
  • can I type hint with node?
  • how does error handling work?
  • what tools exist for linting?
  • what's the standard way of debugging node code?
  • learning interactively with a REPL
  • what best practices and tools are there for logging?
  • how to structure larger node projects?
  • how does importing work?
  • when to use promises/async and when to use callbacks
  • how does testing work? Specifically, mocking and coverage?
  • what does node packaging look like, and what tools/commands are useful?
  • how do I package my own code?
  • what are the basic data types, functions, and objects common in node?
  • can node code be run in the browser?
  • how can I set up my environment to get autocompletion/suggestions?
  • what useful tools exist in the node ecosystem? node, npm, npx, etc..
  • how does parsing command line arguments work?

They're in no particular order, but in rough swaths, are all aimed at making me a better, more rounded developer. As is consistent with the way I tend to learn things, I probably will pick topics randomly as the mood strikes, as opposed to a more formal and concrete structuring of topics. If you're curious to follow along with me, or just check in every once in a while, I hope to make a series of posts here documenting the things that I've learned. Partly for self reference and partly to help others on a similar journey.