This is syllabus taken from Harikirat Singh Youtube channel and , I have kept here and used it for refrence/guidance purpose. Learn the MERN Stack from beginner to advanced, covering the basics of DevOps, open-source contributions, and project development.
- git add .
- git commit -m "message"
- Github account setup
- git push origin main
- git branch
- git switch branch_name
- git checkout branch_name
- Conflict Resolution between files
- Forking and Cloning Repositories
- Basics of JavaScript syntax
- Variables
- Data types
- Operators
- Expressions
- Control flow
- if statements
- Ternary operator
- For loops
- While loops
- Do While loop
- Functions and scope
- ES6 Features
- Arrow Functions
- Template Literals
- Destructuring
- Let and Const
- Classes and Modules
- Understanding asynchronous nature
- Callback functions
- Promises
- Chaining
- Async/await syntax
- Introduction to Node.js
- Installation and setup
- Node.js modules and npm
- Event-driven architecture
- Basics of NoSQL and SQL databases
- Differences between NoSQL and SQL
- MongoDB basics and CRUD operations
- Creating and querying documents
- Indexing and optimization
- PostgreSQL fundamentals
- Tables, queries, and data types
- Joins and transactions
- TypeScript syntax and types
- Variables and data types
- Functions and classes
- Interfaces and type aliases
- Advanced TypeScript features and best practices
- Generics and conditional types
- Decorators and modules
- Using TypeScript with JavaScript
- Backend communication protocols
- Express basic to advance
- ORMs
- Middlewares, routes, status codes, global catches
- Zod
- MonoRepos, turborepo
- Serverless Backends
- OpenAPI Spec
- Autogenerated clients
- Authentication using external libraries
- Scaling Node.js, performance benchmarks
- Deploying npm packages
- React beginner to advance
- Internals of state, Context API
- State management using recoil
- CSS you need to know of, Flexbox, basic styling
- Frontend UI frameworks, Deep dive into Tailwind
- Containerization, Docker
- Next.js
- Custom hooks
- In house auth using next auth
- Building and managing Docker containers
- Docker CLI and commands
- Container networking and storage
- Docker networking and data management
- Connecting containers and data volumes
- Docker network modes
- Setting up and deploying applications on AWS servers
- EC2 instances and server configurations
- Managing deployments with AWS services
- Configuring AWS services for scalability
- Load balancing with ELB
- Utilizing AWS Auto Scaling for dynamic workloads
- Exploring alternative cloud platforms like Fly or Remix
- Understanding the architecture of Fly.io
- Deployment and hosting with Remix
- Understanding Nginx and configuring reverse proxies
- Nginx as a web server and reverse proxy
- Configuring Nginx for load balancing
- Setting up a GSoC project environment
- Clone and configure the project repository
- Install dependencies and build the project
- Resolving issues and contributing to the project
- Identifying and solving project issues
- Collaborating with the project community
- Developing a complete Paytm/Wallet application
- Designing and implementing features
- Testing and debugging the application
- Addressing end-to-end functionality and challenges
- Payment processing, security, and user experience
- Deploying the application to a production environment
This syllabus is taken from Harikirat Singh Paid Cohort, I've kept here and used it for refrence/guidance purpose. In the 1-100 journey, learn advanced Backend communication, Advanced Devops, System design, and set up real-world open-source projects. Also, build 2 capstone projects: a trading app and a Zapier clone.
- Advanced backend communication
- Message queues and PubSubs
- Proxies, Load balancers
- Redis Deep dive
- Kafka Deep dive
- Common Design Patterns in JS
- Advanced DB concepts (Indexing, normalization)
- Rate limiting
- Captchas and DDoS protection
- Sharding, Replication, Resiliency
- Horizontal and vertical scaling
- Polling and websockets
- Grpc
- Capacity Estimation
- Load Balancers
- CAP Theorem
- Testing Node.js Apps in 2023
- Real-time communication, basics of WebRTC
- Container Orchestration, Docker Swarm
- Kubernetes
- CI/CD
- Monitoring systems basics to advance
- Prometheus, Grafana
- Newrelic as a paid service
- Serverless Deep dive
- AWS Constructs (EC2, S3, CDNs, LB, EKS)
- Zerodha end to end
- Zapier end to end
- Real-world open-source projects
- Basics of JavaScript syntax
- Variables and data types
- Operators and expressions
- Control flow (if statements, loops)
- Functions and scope
- Understanding asynchronous nature
- Callback functions
- Promises and chaining
- Async/await syntax
- Introduction to Node.js
- Installation and setup
- Node.js modules and npm
- Event-driven architecture
- Basics of NoSQL and SQL databases
- Differences between NoSQL and SQL
- MongoDB basics and CRUD operations
- Creating and querying documents
- Indexing and optimization
- PostgreSQL fundamentals
- Tables, queries, and data types
- Joins and transactions
- TypeScript syntax and types
- Variables and data types
- Functions and classes
- Interfaces and type aliases
- Advanced TypeScript features and best practices
- Generics and conditional types
- Decorators and modules
- Using TypeScript with JavaScript
- Understanding HTTP/HTTPS protocols
- Request methods (GET, POST, etc.)
- Status codes and headers
- Exploring RESTful APIs and GraphQL
- Designing RESTful APIs
- GraphQL queries and mutations
- Setting up Express.js
- Installation and basic configuration
- Creating routes and handling requests
- Routing, middleware, and error handling
- Express middleware functions
- Route parameters and error handling
- Introduction to Object-Relational Mapping
- Understanding ORM concepts
- Popular ORM libraries (Sequelize, TypeORM)
- Working with popular ORMs like Sequelize or TypeORM
- Defining models and associations
- Querying and updating data using ORMs
- Implementing middleware functions
- Custom middleware and third-party middleware
- Handling authentication middleware
- Defining routes, handling status codes, and global error catching
- Structuring Express routes
- Utilizing HTTP status codes and global error handling
- Understanding and implementing data validation with Zod
- Defining schemas with Zod
- Validating data using Zod
- Overview of monorepos
- Benefits and challenges of monorepos
- Implementing with tools like TurboRepo
- Setting up a monorepo with TurboRepo
- Managing shared dependencies
- Concepts of serverless architecture
- Serverless functions and FaaS
- Pros and cons of serverless
- Serverless deployment using platforms like AWS Lambda
- Configuring serverless functions
- Connecting serverless functions with other services
- Creating APIs using OpenAPI Specification
- Documenting RESTful APIs with OpenAPI
- Using Swagger for API documentation
- Generating client code automatically
- Tools for autogenerating API clients
- Consuming APIs with autogenerated clients
- Implementing authentication with Passport.js or Auth0
- Setting up authentication strategies
- Integrating third-party authentication providers
- Understanding OAuth and JWT
- Implementing OAuth authentication
- Using JSON Web Tokens for secure authentication
- Techniques for scaling Node.js applications
- Horizontal scaling with load balancing
- Vertical scaling with optimized server configurations
- Performing performance benchmarks
- Tools for benchmarking Node.js applications
- Analyzing benchmark results and optimizing performance
- Publishing npm packages
- Creating a package.json file
- Publishing packages to npm registry
- Deployment strategies for npm packages
- Versioning and updating npm packages
- Handling dependencies and package security
- Understanding the role of reconcilers
- Virtual DOM and its significance
- Overview of popular frontend frameworks
- React, Angular, and Vue.js
- Building components and managing state
- Functional and class components
- State and props in React
- Advanced concepts like hooks and context
- useEffect, useState, useContext
- Custom hooks and state management libraries
- In-depth understanding of React state
- Local state vs global state
- Immutability and updating state
- Utilizing the React Context API
- Creating and consuming context
- Context for state management
- Implementing state management with Recoil
- Atom and selector concepts
- Managing complex state with Recoil
- Essential CSS concepts
- Selectors, specificity, and cascade
- [ ]
Box model and layout
- Mastering Flexbox and basic styling techniques
- Flex containers and items
- Styling using Flexbox and CSS Grid
- Exploring UI frameworks like Bootstrap or Material-UI
- Components and styling in UI frameworks
- Responsive design and grid systems
- Deep dive into Tailwind CSS
- Utility-first CSS approach
- Customization and theming in Tailwind
- Understanding containerization concepts
- Docker containers and images
- Dockerfile and containerization best practices
- Docker basics and container orchestration
- Running and managing Docker containers
- Docker Compose for multi-container applications
- Building applications with Next.js
- Installation and setup of Next.js
- Pages, routing, and data fetching in Next.js
- Creating custom React hooks
- Building and using custom hooks
- Managing state and side effects with custom hooks
- Implementing in-house authentication using NextAuth.js
- Configuring NextAuth.js
- Customizing authentication flows
- Building and managing Docker containers
- Docker CLI and commands
- Container networking and storage
- Docker networking and data management
- Connecting containers and data volumes
- Docker network modes
- Setting up and deploying applications on AWS servers
- EC2 instances and server configurations
- Managing deployments with AWS services
- Configuring AWS services for scalability
- Load balancing with ELB
- Utilizing AWS Auto Scaling for dynamic workloads
- Exploring alternative cloud platforms like Fly or Remix
- Understanding the architecture of Fly.io
- Deployment and hosting with Remix
- Understanding Nginx and configuring reverse proxies
- Nginx as a web server and reverse proxy
- Configuring Nginx for load balancing
- Setting up a GSoC project environment
- Clone and configure the project repository
- Install dependencies and build the project
- Resolving issues and contributing to the project
- Identifying and solving project issues
- Collaborating with the project community
- Developing a complete Paytm/Wallet application
- Designing and implementing features
- Testing and debugging the application
- Addressing end-to-end functionality and challenges
- Payment processing, security, and user experience
- Deploying the application to a production environment