MERN stack roadmap
- 2. Python Foundation
Course
OVERVIEW
Become a full stack web developer using the best tools and
technologies out there - MERN. By the end of this course you will
gain the mastery over nodejs, reactjs and advanced HTML &
CSS which will enable you to create effective and responsive
web applications for all intents and purposes.
FEATURES
GET AN INDUSTRY
RECOGNISED
CERTIFICATE
BE A PART OF
THE INDUSTRY
COMMUNITY SLACK
LIVE MENTOR
SUPPORT & STUDENT
EXPERIENCE TEAM
WANT A BREAK?
PAUSE YOUR
COURSE
60
DAYS
PAUSE
- 5. COURSE OFFERINGS
BASIC
STANDARD
Introduction to Programming
Data structures and algorithms
Front end web development with React
Backend web development with Node.js
PRO
Front end web development with React
Backend web development with Node.js
Front end web development with React
Backend web development with Node.js
- 10 industry mentor sessions
- Resume Building Workshops
- Help in profile building
- 100+ curated interview problems
- DSA mock test series to crack
product companies
- 6. Introduction to Programming
Data structures and Algorithms
Front end web development with React
Backend web development with Node.js
- 10 industry mentor sessions
- Resume Building Workshops
- Help in profile building
- 100+ curated interview problems
- DSA mock test series to crack
product companies
PREMIUM
- 7. INTRODUCTION TO PROGRAMMING
Learn the basics of the most popular programming languages (C++
/Java / Python) and become an expert in the core fundamentals
of programming.
DATA STRUCTURES AND ALGORITHMS
Data structures and algorithms is all about organizing the
information and finding the most efficient approach to solve a
problem. Learning these concepts will in turn help you to improve
your problem-solving skills and solve any real-world problems
using technology.
FRONT END WEB DEVELOPMENT WITH REACT
Learn the best practices of converting data to a graphical inter-
face, through the use of HTML, CSS, and JavaScript. Build amazing
user interfaces or UI components using React library.
BACKEND WEB DEVELOPMENT WITH NODE.JS
Learn the basics of adding server-side logic to any web application
using Node.js.
- 8. INTRODUCTION TO PROGRAMMING
TOPIC SUB-TOPICS DETAILS
BASICS
OF
PROGRAMMING
Flowcharts
Introduction to flow-
charts, Decision making
using flowcharts, Loops,
Example problems
Variables and Data types
First program, Variables
and data types, Taking
input, How data is
stored in memory, Arith-
metic Operators
Conditional statements
Introduction to If else,
Relational and logical
operators, Nested
conditionals
LOOPS
AND
FUNCTIONS
While loops
While loops, Flow of
execution of statements
in while loop, Example
problems using while
loop
Patterns
Introduction to patterns,
Basic Patterns, Square
Patterns, Triangular
Patterns, Character
Patterns, Reverse
Triangle, Inverted
patterns, Isosceles
triangles
- 9. TOPIC SUB-TOPICS DETAILS
LOOPS
AND
FUNCTIONS
For loops
For loops, Break and
Continue, increment -
decrement operators
Functions
Introduction to
functions, Working of
function calling, Vari-
ables and its scope,
Pass by value
ARRAYS
Introduction to arrays
Introduction to arrays,
How arrays are stored in
memory, Passing arrays
to functions
Searching and Sorting
Understanding Binary
Search, Selection sort,
Bubble sort, Insertion
sort, Merging two
sorted arrays
STRINGS
AND
2D
ARRAYS
Strings
Introduction to strings,
storage of strings and
their inbuilt functions
2D Arrays
2D arrays, Storage of
2D arrays, Example
problems using 2D
Arrays
- 10. DATA STRUCTURES AND ALGORITHMS
TOPIC SUB-TOPICS DETAILS
PROBLEM
SOLVING
TECHNIQUES
Recursion
Introduction to recursion,
Principle of mathematical
induction, Fibonacci num-
bers, Recursion using arrays,
Recursion using strings,
Recursion using 2D arrays
Time and space complexity
Order complexity
analysis, Theoretical
complexity analysis,
Time complexity
analysis of searching
and recursive
algrithms, Theoretical
space complexity,
Space complexity
analysis of merge sort
OBJECT-ORIENTED
PROGRAMMING
Basics of OOP
Introduction to oops,
Creating objects, Getters,
and setters, Constructors
and related concepts,
Inbuilt constructor and
destructor, Example
classes
Advance concepts of OOP
Static members,
Function overloading
and related concepts,
Abstraction, Encapsula-
tion, Inheritance, Poly-
morphism, Virtual func-
tions, Abstract classes,
Exception handling
- 11. TOPIC SUB-TOPICS DETAILS
LINEAR
DATA
STRUCTURES
Linkedlists
Introduction to linked
list, Inserting node in
linked list, Deleting node
from linked list, Midpoint
of linked list, Merge two
sorted linked lists, merge
sort of a linked list,
Reversing a linked list
Functions
Introduction to stacks,
Stack using arrays,
Dynamic Stack class,
Stack using linked list,
Inbuilt stack, Queue
using arrays, Dynamic
queue class, Queue
using linked list, Inbuilt
queue
TREES
Generic Trees
Introduction to Trees,
Making a tree node
class, Taking a tree as
input and printing, Tree
traversals, Destructor
for tree node class
Binary Trees
Stacks and Queues
Introduction to Binary
Trees, Taking a binary
tree as input and
printing, Binary Tree
traversals, Diameter
of binary tree
- 12. TOPIC SUB-TOPICS DETAILS
TREES
Binary Search Trees
Introduction to Binary
Search Trees, Searching
a node in BST, BST class,
Inserting and Deleting
nodes in BST, Types of
balanced BSTs
ADVANCED
DATA
STRUCTURES
Priority Queues
Tries
Introduction to Priority
Queues, Ways to
implement priority
queues, Introduction to
heaps, Introduction to
Complete Binary Trees
and its implementation,
Insert and Delete
operations in heaps,
Implementing priority
queues, Heap sort,
Inbuilt Priority Queue
Introduction to Tries,
Making a Trie Node
class, Insert, Search and
Remove operation
implementation in Tries,
Types of Tries, Huffman
Coding
Hashmaps
Introduction to Hash-
maps, Inbuilt Hashmap,
Hash functions, Collision
handling, Insert and
Delete operation
implementation in
hashmap, Load factor,
Rehashing
- 13. TOPIC SUB-TOPICS DETAILS
ADVANCED
DATA
STRUCTURES
Graphs
Introduction to Graphs,
Graph Terminology,
Graph implementation,
Graph Traversals (DFS
and BFS), Weighted and
Directed Graphs,Mini-
mum Spanning Trees,
Cycle Detection in
Graphs, Kruskal's algo-
rithm, Prim's Algorithm,
Dijkstra's algorithm
DYNAMIC
PROGRAMMING
Introduction to
Dynamic Programming
Introduction to Mem-
oization, Introduction to
Dynamic Programming,
Fibonacci numbers
using recursion,
memoization and
dynamic programming
Applications of
Dynamic Programming
Longest Common
Subsequence (LCS)
using recursion,
memoization and
dynamic programming,
Edit distance using
recursion, memoization
and dynamic program-
ming, Knapsack problem
using recursion,
memoization and
dynamic programming
- 14. FRONTEND MODULE:
TOPIC SUB-TOPICS DETAILS
GETTING
STARTED
WITH
BASICS
INTRODUCTION
TO
HTML
History of Web
Understanding how
and who built the web
Client server architecture
General architecture
used by websites
What happens when
you visit a website
Tags in HTML
Learning what happens
behind the scenes while
opening a website
Learning about various
tags in HTML like <a>, <ul>
etc
HTML structure
How to create the
structure of a web
page
- 15. TOPIC SUB-TOPICS DETAILS
More tags
Practice creating HTML
with more tags
Learn to create tables
in HTML
Building and styling the
blog project
Block v/s Inline elements
CSS Introduction What is CSS and
how to use it in
HTML
MORE
ON
HTML
INTRO
TO
CSS
Understand the difference
between inline and block
HTML elements
Table
Discussing various form
elements like <input>,
<textarea> etc
Form What is an HTML form
FORMS
Form fields
Blog page
- 16. TOPIC SUB-TOPICS DETAILS
Intro to Flex
Learning what flex is and
how it works
Utilising flex to style the
Resume project
Flex properties
FLEX
Discovering various flex
properties used to style
HTML elements
Using flex in Resume
Starting the project
Start building the Resume
project by creating the
HTML structure
STARTING
WITH
RESUME
PROJECT
Finish building the
Resume project
What are pseudo ele-
ments and where to use
them
COMPLETING
RESUME
Finishing up
Pseudo elements
- 17. TOPIC SUB-TOPICS DETAILS
Animation properties
Basics of CSS animation
and how to animate
HTML elements using
animate.css
Media queries
What is responsive
design and how to use
media queries to build
a responsive web app
that works with multiple
devices
RESPONSIVE
DESIGNS
ANIMATIONS
AND
3D
SPACE
Frontend frameworks
What are frontend
frameworks and how to
use one
Using various other boot-
strap elements like
Navbar, Jumbotron etc
Grid system
BOOTSTRAP
Learning about grid
system of bootstrap
Bootstrap components
- 18. TOPIC SUB-TOPICS DETAILS
Learning the basics of the
language
What is JS and history
of JS
STARTING
WITH
JAVASCRIPT
Variables, operators, loops
Intro to JS
Assignment
Build a music player
project with your newly
gained skill set
MAJOR
PROJECT
Scope
Understanding
scope in JS
Difference between
function expression and
declaration
Hoisting
JAVASCRIPT:
FUNCTIONS
AND
ARRAYS
What are arrays and using
array functions like splice,
slice etc.
What is hoisting and its
application.
Functions expressions
v/s Function declaration
Arrays and its usage
- 19. TOPIC SUB-TOPICS DETAILS
Learn to iterate over
objects, delete object
properties, creating
nested objects
What are objects, how to
create them and using dif-
ferent notations to access
object’s data
OBJECTS
AND
TIMING
EVENTS
Object functions
Intro to Objects
How to manipulate DOM
events in JS
Understanding DOM, what
it is, how to access
elements from the DOM
UNDERSTANDING
DOM
Events
DOM
Build a game using vanilla
Javascript
Learning different ways to
create variable
MINI
PROJECTS
USING
JAVASCRIPT
Catch me if you can
let v/s var
Assignment
Creating a mini
calculator with basic
functionality
CALCULATOR
PROJECT
- 20. TOPIC SUB-TOPICS DETAILS
Discussing what are
prototypes in JS, why do
we use them and its
application
How does the “this”
keyword works in JS
Learning about using
classes in JS and how to
deal with class inheritance
in JS
CONSTRUCTORS
AND
PROTOTYPES
Prototypes
“this” keyword
Class
Revision
Revising some old
concepts like Scope,
window object etc
What are closures and its
application
IIFE
CLOSURES
Learning about arrow
functions and bindings in
arrow functions
What are immediately
invoked function
expressions
Closures
Arrow functions
- 21. Handling various JS events
with jQuery and exploring
the library
What is jQuery and what is
the need for it
JQUERY
Event handling in jQuery
Intro to jQuery
Making ajax requests
with jQuery and handling
errors
What are async requests,
what is API and JSON
AJAX
Ajax requests with jQuery
Intro to AJAX
TOPIC SUB-TOPICS DETAILS
Assignment
Building the famous ping
pong game with
Javascript
PROJECT:
PING
PONG
GAME
- 22. Discussing what are
prototypes in JS, why do
we use them and its
application
What is git and why
it's helpful
Understanding push,
commits, pull requests
and using git for teams
and individual
Branches
Intro to Git
Git workflow
TOPIC SUB-TOPICS DETAILS
Intro to promises What is a promise,
how do we use promises
and chaining promises
PROMISES
GIT
- 23. REACT MODULE
TOPIC SUB-TOPICS DETAILS
INTRO
TO
REACT
SPAs v/s MPAs
Difference between Single
page apps and Multi page
apps
React philosophy
What is React’s
philosophy?
React v/s others
Why React stands out
from other JS libraries
and frameworks
CODING
NINJAS
HELLO
WORLD
Using React
Ways to start using
React in a project
Conditional rendering
Rendering different
components based on
different conditions
Adding CSS Styling the cart using
CSS
Babel
Using babel and under-
standing how it works
with React
MINI
PROJECT:
STARTING
THE
PROJECT
Introduction to Cart and
its working
Introduction to the project
Adding state to Cart
Using state
- 24. TOPIC SUB-TOPICS DETAILS
MINI
PROJECT:
MANAGING
STATE
More on React state React state in depth
Props
What are props and how
do we work with them
MINI
PROJECT:
FINISHING
UP
Rendering lists
How to render list of
items
Delete, adding Navbar,
total products count
Building more
functionalities of cart
Component lifecycle
Learning about lifecycle
of a React component
FIREBASE:
MINI
PROJECT
EXTENDED
I
Introduction to Firebase
Understanding what is
firebase and how it
actually works
Firebase setup Setting up firebase and
adding it to the project
CODING
NINJAS
- 25. TOPIC SUB-TOPICS DETAILS
FIREBASE:
MINI
PROJECT
EXTENDED
II
CRUD with Firebase
Learning how to create,
read, update and delete
data from firebase
Querying data
Querying data from
firebase
INTRO
TO
REDUX
All about Redux
What is redux, why and
when do we use it
Adding UI
Start adding components
to the project
Setting up the project Setting up the Movie
search project
MINI
PROJECT
Assignment project,
building a vintage iPod
CODING
NINJAS
iPod
- 26. TOPIC SUB-TOPICS DETAILS
REDUX:
ACTIONS,
REDUCERS,
STORE
Reducers
What are reducers and
creating reducers for the
app
Actions
What are actions,
dispatching actions,
creating actions for the
app
Store
What is store, subscribing
to the store and adding
store to the project
REDUX
CONTINUED
Currying
Understanding the
currying concept in
Javascript
Middleware
Learning about middle-
wares and using some
with Redux
Combining Reducers
How to combine reducers
to make the app more
efficient
Thunk
Using thunk to make
async calls to an API
CODING
NINJAS
- 27. TOPIC SUB-TOPICS DETAILS
REACT
AND
REDUX
Context API
What is the context API
and how to use it
HOC
Learning about Higher
order components in
React
Connect() with Redux
Diving deep into how
connect() works in Redux
and using react and
redux together
MAJOR
PROJECT:
SETUP
AND
INTRO
Project setup
Setting up the social
media project
PropTypes
Using PropTypes for
props validation
MAJOR
PROJECT:
ROUTING
AND
AUTH
React router
Adding react router to
the project to handle
different routes
Auth in SPA
Understanding how
auth works for SPAs
User login Building the user login
functionality
Form handling Ways to handle form in
React
CODING
NINJAS
- 28. TOPIC SUB-TOPICS DETAILS
MAJOR
PROJECT:
USER
PROFILE
Settings page, editing a
user, add user as a friend
Building various
functionalities of the
social media app
MAJOR
PROJECT:
SEARCH
AND
CHAT
Searching users
Adding functionality to
search users
Building the chat box Creating the chat using
sockets
REACT
HOOKS
useEffect, useState and
other hooks
What are hooks, why
do we use them and
various React hooks out
there
CODING
NINJAS
- 29. BACKEND MODULE:
TOPIC SUB-TOPICS DETAILS
CODING
NINJAS
NODE.JS
:
THE
BEGINNING
Intro to Node
Introduction to the
course, hello world with
nodejs
Setting up Setting up tools and the
project
NODE.JS
:
WRITING
OUR
FIRST
SERVER
Intro to servers
What are servers and
how one can use them
Setting up node server
Beginning the project by
setting up the very first
node server
Nodemon
Introducing nodemon to
monitor changes made
to the server
MY
FIRST
EXPRESS
APP
::
A
LIST
OF
CONTACTS
MVC
MVC architecture for our
server
Express What are frameworks,
using express with node
What are template
engines, setting up and
working with Ejs
Ejs
- 30. TOPIC SUB-TOPICS DETAILS
CODING
NINJAS
MY
FIRST
EXPRESS
APP
::
CONTINUED
Creating the contact list
Building the contact list,
sending data to server,
parsing the data
Middleware What is a middleware
and how to use one
MY
FIRST
EXPRESS
APP
::
INTRO
TO
DATABASES
Query parameters
Using query parameters
in our app for deleting
contact
Intro to Databases
What are databases,
SQL and NoSQL data-
bases
MongoDB
What is MongoDB, how
to use it and setting up
MongoDB for the project
BEGINNING
THE
MAJOR
PROJECT
1
DB operations
CRUD operations for
MongoDB
Creating controllers and
router for handling
incoming requests to the
server
Controllers
Setting up the MVC
directory structure,
router and ejs setup
Directory structure
and setup
- 31. TOPIC SUB-TOPICS DETAILS
CODING
NINJAS
MAJOR
PROJECT
-
1
Assignment
Build a Todo list app
using Nodejs and Mon-
goDB
Partials, Layouts
Understanding and
creating Partials and
layouts in views
BEGINNING
THE
MAJOR
PROJECT
-
2
Static files
Setting up static file
access
Mongoose
Linking MongoDB using
Mongoose
User schema
Setting up user schema
for out app
MANUAL
AUTHENTICATION
Cookies
What are cookies and
how to use them in the
app
Build user sign in and
sign up flow and learn
how to authenticate
users manually
User sign up and sign in
- 32. TOPIC SUB-TOPICS DETAILS
CODING
NINJAS
AUTHENTICATION
USING
PASSPORT
JS
Intro to passportjs
What is passportjs, set-
ting up passportjs for
the project
MongoStore setup Setting up MongoStore
for session cookies
DATABASE
RELATIONS
(POSTS,
COMMENTS)
Intro to SASS
Introducing SASS, setting
up SASS for our project
DB relations Explaining 1:1, 1:M and
M:M DB relations
Relationship for
Post and Comments
Understanding the rela-
tionship between Post
and Comments, creating
schemas for both
SASS
SQL storage
Learning storage in SQL
databases
- 33. TOPIC SUB-TOPICS DETAILS
CODING
NINJAS
DELETING
AND
UPDATING
OBJECTS
IN
DATABASE
+
DISTRIBUTING
VIEWS
User profile
Working on user profile
and updating SCSS for
other pages
Understanding how de-
letion works with Posts
and Comments
Deleting
Posts/Comments/Users
ASYNC
AWAIT
+
ERROR
HANDLING
Flash messages
How to create flash
messages, using Noty to
show flash messages
What is async await and
converting our code to
async await
Async await
CONVERTING
TO
AJAX
Learn how to use AJAX
for post creation, delet-
ing post etc
Using AJAX
- 34. TOPIC SUB-TOPICS DETAILS
CODING
NINJAS
FILE
UPLOAD
Multer
Using multer to handle
profile picture upload in
the project
Learning how to handle
file uploads
Intro to file upload
APIS
(MAKING
APIS
AND
JWT
AUTHENTICATION)
JWT
Understand what is JWT,
how does authentication
and authorization works,
build some APIs for the
same
What are APIs and why
do we use them
Intro to APIs
SOCIAL
AUTHENTICATION
(MINI
LECTURE)
Using passport for
Google auth
Setting up passport for
google social auth
What is social authenti-
cation and how does it
actually works
Social auth with Google
- 35. TOPIC SUB-TOPICS DETAILS
CODING
NINJAS
PARALLEL
JOBS
+
MAILER
Sending mails
Learn how to setup and
send emails for your
project
Intro to mailers, setting
up Nodemailer for
sending emails
Nodemailer
FRIENDS
+
LIKES
Polymorphic relation
Intro to a new DB
relationship i.e. Polymor-
phic relations
Understand what are
delayed jobs and how
they can be helpful
using the Kue library
Delayed jobs
CHATTING
ENGINE
Sockets What are sockets and
how to use them
Using Polymorphic rela-
tionship to create add a
friend functionality
Making friends
Setting up Socket.io and
using it to send
messages
Socket.io
- 36. TOPIC SUB-TOPICS DETAILS
CODING
NINJAS
GULP
::
GETTING
DEPLOYMENT
READY
Gulp
What is gulp, using gulp
to automate certain
tasks
Learn how to create a
production environment
for the project using en-
vironment variables
Introduction to
production environments
DEPLOYMENT
BEGINNING
THE
MAJOR
PROJECT
-
2
Starting to build a
new project
Setting up to build the
major project
assignment
Learning how to deploy
apps on AWS, SSH to set
up the server, under-
stand and setup Nginx
AWS
MAJOR
PROJECT
Build the major project
Assignment
- 37. TOPIC SUB-TOPICS DETAILS
CODING
NINJAS
ANGULAR
All about React
Intro to React and build-
ing basic components
Intro to frontend frame-
works, creating a basic
app
REACT
All about Angular
VUE
Intro to React and build-
ing basic components
All about Vue
- 38. PROJECTS
Mini Calculator
Ping Pong Game
Build a vintage game, ping pong,
using vanilla Javascript
Build a calculator web app with
Javascript as the core and style
it with CSS
Static Blog
Build the UI of a basic blog using HTML
- 39. Social Media Website
Chatting Engine
Build a basic chat engine using sockets,
which enables the users to chat with
each other on the website
Create a social media website with
popular features like a post, comment
etc using Node.js, Mongo DB and more
Music Player
Build and style a music player like
Spotify/Youtube Music using
HTML and CSS
HTML
C++
- 40. Shopping Cart
Todo List App
Build a todo list app using Node.js
and express.js
Build the basic functionality of the
shopping cart as you see in Amazon
and Flipkart
Mini Contact List
Understand how the backend works and
create a contact list by storing the
data in a DB
- 43. TESTIMONIALS
”
”
NAMAN MITTAL
”
I took the Full Stack Web Development course that
helped me a lot during interviews. We were asked to
make many projects that proved to be fruitful.
My experience at Coding Ninjas was exceptional. The
outstanding course content helped me to enhance my
logic and made me aware about how to approach a
hard coding problem
I liked Coding Ninjas' course structure as it covered
all topics. The faculty helped me in building a strong base.
I would recommend all to connect with CN.
VAIBHAV MEHRA
DHARNEESH GUPTA