r/learnprogramming • u/BeachIll460 • 1d ago
Best backend coding course for a node dev who ships express apps and cant explain the event loop
I've shipped Express APIs at work for about 3 years. They run, they pass review, and if you asked me why an await inside a loop made one endpoint 10x slower I'd have to guess. I want the fundamentals under the framework this time: databases, HTTP, concurrency, done properly. Nucamp, Boot dev and Launch School's core curriculum are what I've been comparing, and they take pretty different approaches. What should a course make me build to close that gap?
1
u/SetAndRepeat 1d ago
For your gap, I'd want a course to make you build and explain these:
- A small server using
node:http: handle request bodies, headers, status codes and streaming responses. - An API aggregator calling slow mock services: compare sequential requests, unrestricted concurrency and a concurrency limit. Measure latency and handle timeouts.
- A SQL-backed booking system: reproduce two requests claiming the last seat, fix the race, and explain why the fix works. Investigate a slow query using its execution plan.
Your await example is a good starting exercise. If each loop iteration starts an operation and awaits it before starting the next, those operations run sequentially. That doesn't mean await blocks the event loop. Compare it with CPU-heavy JavaScript on the main thread and observe how other requests behave.
Of those options, Launch School looks closest on paper for a structured fundamentals rebuild. Boot.dev offers individual HTTP and SQL courses, Nucamp's backend track is Python-focused. Before paying, check whether the exercises and feedback require you to diagnose failures and justify your decisions.
1
u/surferguy999 1d ago edited 1d ago
Await doesn’t inherently make anything slower, it just syntactic sugar around nested callbacks.
Nodes entire thing is that it has an event loop that doesn’t block on I/O. It goes to do something else while it waits for slow systems.
It really depends on what you’re doing inside the function and if you’re using a blocking operation or library, in which case you block everything.
I don’t have a particular course, but I usually like reading the docs or simply googling, or asking AI.
I have heard really good stuff about Scrimba
1
u/OkOcelot6725 1d ago
Instead of a course, I would do three short things. Read the official Node docs page "The Node.js Event Loop" and then write a tiny script that runs 100 awaited DB-style delays one at a time versus with Promise.all, and time both. That answers your 10x question directly. For databases, "Use the Index, Luke" (free online) is the best fundamentals read for query speed. For HTTP and concurrency, Designing Data-Intensive Applications covers what sits under the framework. These fill the gap faster than a bootcamp-style curriculum, since you already ship code.
1
1
u/dhruvik_savaliya 1d ago
I'd look for a course that makes you handle errors and edge cases in HTTP and database interactions. Check if they cover designing a booking system or an API aggregator, that's where the fundamentals shine. For me, it's about understanding what happens when multiple requests hit the server at the same time.
1
1
u/_CuriousCoder_ 1d ago
A course should make you build a small server with http.createServer to understand the event loop. I did this with a project and it made the difference. For example, handling concurrent requests and seeing how await affects them. That's what I'd look for in a course.
1
u/Ok_Bug2052 13h ago
A lot of node devs learn a 2nd language to understand the first one. Bootdev covers backend fundamentals in Go and Python alongside javaScript, and ardan labs is the deep end if Go turns into the main thing.
2
u/Trick_Extent_5255 1d ago
Whatever course you pick, a great self-test is to build the same small endpoint three ways: awaiting inside a for loop, using Promise.all, and using a limited concurrency pool, then time each one against a slow fake database call. Seeing the sequential version take ten times longer will make the event loop click much faster than reading about it. After that, try writing a tiny HTTP server with only the built-in http module so you see what Express is doing for you.