Why you shouldn't teach NestJS to beginners
NicolasBrondinBernard
I have nothing against NestJS, but here's why it shouldn't be taught to beginner developers.

Article published on 28/09/2020, last updated on 10/08/2026
A little over a year ago, I was mentoring a class of web development students, and after taking one of them on as an intern, I noticed something:
Many of them struggled to understand the lifecycle of a piece of data as it moved through their stack's code. And sometimes they even had trouble telling where their back-end ended and their front-end began.
But it was only by diving into the technologies to help my student that I understood where their struggles were coming from!
The stack in question was this one: TypeScript, Angular, NestJS, MySQL
What's the problem with this stack?
Don't put words in my mouth, I have nothing against NestJS, nor Angular, but I sincerely believe that training beginner web developers on these technologies isn't a good idea.
NestJS (and Angular) are what are called "enterprise" frameworks, meaning frameworks designed above all to build large projects with complex architecture.
These tools are designed to save time, reduce the size of the codebase, and spare experienced developers as many problems as possible. And that's exactly where the problem lies.
As a developer, you truly grasp the scope of a problem only once you've already faced it.
When it comes to code abstraction, the same holds true, especially for beginner developers.
If you start teaching a developer TypeScript before they've even experienced a few problems caused by JavaScript's dynamic typing, they won't have all the keys needed to make good use of TypeScript, and will simply use it out of habit.
As for NestJS, using certain decorators like @Post implies so many things within a controller:
- Generating a new route
- Parsing the request body as JSON
- The HTTP response code will automatically be set to 200
- Any value returned by the function will be contained in the request's response
- The "Content-Type" header will be computed based on the type of the return value
- ...
All these concepts won't really be absorbed by the beginner developer, and even though they might become "operational" with this technology, they'll never truly understand all the consequences of what they're coding.
I know the purpose of training programs is to produce students who are directly employable, and with that in mind, they're sometimes trained on technologies used directly in companies.
But from my experience, a beginner developer's deep understanding matters far more than their ability to produce functional code whose ins and outs they don't understand.
My advice: if you're an instructor or training manager, first train your students on technologies with less abstraction.
Express is a good compromise compared to NestJS, because even though many features are handled by middleware, you at least have to add them and configure them correctly, which opens the door to discussing the topics mentioned above.
For front-end frameworks, please start with the DOM, and only then move on to libraries like Vue or React—but once the basics have been understood!
Complete courses, exercises and certificates to really learn programming!
4.8 average rating
No comments yet