MERN Stack Developer Roadmap
A step-by-step MERN Stack Developer roadmap: the full stack, the skills to learn in order and the best places to learn each step.
The stack, end to end
- Frontend: JavaScript, DOM and events, Promises and async/await, ES modules, Fetch API, React, Components and props, State and hooks, React Router, Data fetching
- Fundamentals: Git, GitHub, Branching and merging, Pull requests
- Backend: Node.js, npm, Asynchronous programming, Environment variables, Express.js, Routing and middleware, Validation, Error handling, REST API design, JSON, HTTP methods and status codes, API documentation, Authentication, JWT and sessions, Password hashing, OWASP Top 10, Input validation
- Database: MongoDB, Mongoose, Aggregation pipeline, Indexes, Data modelling
- DevOps: nginx, Reverse proxy, HTTPS and certificates, Process managers
- Get hired: Portfolio projects, Technical resume, Interview preparation
JavaScript
JavaScript makes pages interactive and also runs on servers. Learn the language properly: types, functions, scope, objects and arrays, the DOM, events, promises and async/await, and modules.
Skills
- JavaScript
- DOM and events
- Promises and async/await
- ES modules
- Fetch API
Tips
- Build small things (a to-do list, a quiz, a weather widget) before jumping to a framework.
Where to learn
- javascript.info (course, free)
- MDN: JavaScript (docs, free)
- The Odin Project: JavaScript (course, free)
Version control with Git and GitHub
Git records the history of your code and lets teams work on the same project. Learn to commit, branch, merge, resolve conflicts and open a pull request on GitHub. Almost every software job expects it.
Skills
- Git
- GitHub
- Branching and merging
- Pull requests
Tips
- Put every practice project on GitHub. It doubles as your portfolio.
Where to learn
- Pro Git book (book, free)
- GitHub Skills (practice, free)
React
React builds interfaces from reusable components. Learn components, props, state, hooks, forms, routing and how to fetch and show data from an API.
Skills
- React
- Components and props
- State and hooks
- React Router
- Data fetching
Tips
- Build one project with real data and several pages, for example a job board or a recipe finder.
Where to learn
- React documentation: Learn (docs, free)
- freeCodeCamp (course, free)
Node.js
Node.js runs JavaScript on the server. Learn modules, the file system, environment variables, asynchronous code, and building a server that talks to a database.
Skills
- Node.js
- npm
- Asynchronous programming
- Environment variables
Tips
- Keep secrets such as API keys in environment variables, never in code you commit.
Where to learn
- Node.js: Learn (docs, free)
- The Odin Project: NodeJS (course, free)
Express and building a web server
Express is the most common Node.js web framework. Learn routing, middleware, request validation, error handling and serving JSON to a frontend.
Skills
- Express.js
- Routing and middleware
- Validation
- Error handling
Tips
- Return the right HTTP status codes. Clear errors save hours of debugging.
Where to learn
- Express documentation (docs, free)
MongoDB and document databases
MongoDB stores flexible JSON-like documents. Learn collections, queries, indexes, the aggregation pipeline and how to model data when relations are not enforced for you.
Skills
- MongoDB
- Mongoose
- Aggregation pipeline
- Indexes
- Data modelling
Tips
- Design documents around how the app reads them, and remember that indexes matter just as much as in SQL.
Where to learn
- MongoDB University (course, free)
- MongoDB documentation (docs, free)
REST APIs
An API lets a frontend, a phone app or another system talk to your backend. Learn resources and HTTP methods, status codes, pagination, versioning and how to document an API. Add GraphQL later if you need it.
Skills
- REST API design
- JSON
- HTTP methods and status codes
- API documentation
Tips
- Test every endpoint with a tool such as Postman before building a frontend on it.
Where to learn
- Postman Learning Center (course, free)
- RESTful API tutorial (docs, free)
- GraphQL: Learn (docs, free)
Authentication and web security
Learn how logins work (hashed passwords, sessions, tokens), how to restrict who can see what, and the common web attacks: injection, cross-site scripting and broken access control.
Skills
- Authentication
- JWT and sessions
- Password hashing
- OWASP Top 10
- Input validation
Tips
- Never store plain-text passwords, and never trust data coming from the browser.
Where to learn
- OWASP Top Ten (docs, free)
- PortSwigger Web Security Academy (practice, free)
Web servers and deployment
Learn to put an app on a real server: a web server or reverse proxy such as nginx, HTTPS certificates, process managers and zero-downtime restarts.
Skills
- nginx
- Reverse proxy
- HTTPS and certificates
- Process managers
Tips
- Deploy one project to a small server of your own and keep it running for a month.
Where to learn
- nginx beginner guide (docs, free)
Build your portfolio, resume and interview skills
Employers want proof. Finish two or three projects you can show and explain, put them on GitHub, write a clear resume that matches the jobs you apply for, and practise the interview questions for the role.
Skills
- Portfolio projects
- Technical resume
- Interview preparation
Tips
- Describe what you built, why, and what you would improve. That is what interviewers ask about.
Build your resume · Check your resume (ATS) · Interview questions · Salaries · Browse jobs
Frequently asked questions
Where should I start with MERN Stack Developer?
Start at step 1 and work down in order, because later steps build on earlier ones. If you are signed in, the roadmap compares your resume with each step and marks where you could start.
Do I need a degree to work as a MERN Stack Developer?
It depends on the employer and the country. Many employers accept proven skills and projects, while others ask for a degree. Read the adverts for the roles you want and ask the employer if it is unclear.
How do I know I am ready to apply?
When you can build a small project from start to finish without copying a tutorial, and explain why you made your choices. Apply while you keep learning; you do not need to know everything.