Public Learning

project-centric learning for becoming a software engineer

Week minus 2: Node Express

Almost done! With just four work days left in my old job and Christmas right around the corner, I’m getting quite anxious at the prospect of launching myself towards a completely new career. But there is no better way to quell that anxiety than by submitting to a rigorous learning process and that’s what I did this week.

After completing the first 9 Advent of Code exercises (repo here), I have stopped doing them, because the problems got more complex towards the halfway point. Instead of being able to complete a majority of the day’s problem in my lunch break, I now need at least an hour, possibly two, to finish it. This took away too much time from my free evening hours that are better spent learning new material. Still, practicing algorithmic thinking and honing my PEDAC problem solving skills was a nice way of spending the early December again.

Having freed up my evenings, I turned towards Node.js again. Since Express.js is the most popular framework for Node by a huge margin, I started reading Evan M. Hahn’s excellent book Express in Action, published by Manning. It’s three years old, so some advice has to be taken with a grain salt and a healthy dose of google-fu to find out about recent developments, but overall it’s a very nice introduction to Express. The glaring similarities to Ruby’s Sinatra framework make it easy to get into the backend mindset after a long absence.
There is something to be said, though, about unopinionated frameworks like Express. They are slim and easy to learn, that’s for sure. But the vast ecosystem of third-party middleware makes it hard to get a good overview of current best practices. If one doesn’t want to reinvent every single wheel in a backend system, packages need to be found for virtually every piece of advanced functionality. As a practice project I chose to write a simple guestbook, and even for that my node_modules folder has grown far bigger than I anticipated.
Still, I enjoy writing a backend way more than writing HTML/CSS for a frontend. Bulma was a godsend as I only needed to throw it on top of a few slim HTML templates to make everything look passable enough.

I am also very happy about my current learning process and I came to realize that it mirrors the Launch School experience quite well. I’m relying almost exclusively on books and official documentation right now, which results in absorbing the same amount of well-written, dense information I’m used to from Launch School’s courses. After each chapter (or sometimes sub-chapter), I try to write some piece of code to gain practical experience with the concept covered. After that I take pretty extensive markdown notes peppered with examples from my code. After a day or two, I come back and re-read through my notes, making corrections and essentially doing circular learning.

For the next two weeks, until my actual Mini-Capstone is starting, I would love to complete one bigger project with Node/Express, a database, some authentication and maybe a few quality-of-life deployment/build processes. More on how that goes will follow next week.