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.