0% found this document useful (0 votes)
9 views13 pages

Basics of Js

The document outlines a comprehensive curriculum covering various topics in JavaScript, TypeScript, Node.js, Go, databases, and system design. It includes concepts such as asynchronous programming, RESTful APIs, authentication, cloud integration, and DevOps practices. Additionally, it addresses advanced topics like microservices, message queues, and containerization with Docker, providing a structured approach to backend development and deployment.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views13 pages

Basics of Js

The document outlines a comprehensive curriculum covering various topics in JavaScript, TypeScript, Node.js, Go, databases, and system design. It includes concepts such as asynchronous programming, RESTful APIs, authentication, cloud integration, and DevOps practices. Additionally, it addresses advanced topics like microservices, message queues, and containerization with Docker, providing a structured approach to backend development and deployment.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 13

 Basics of Js

1) Introduction to JS
2) Variables and Data Types
3) Operator and Expressions
4) Control Flow and Loops
5) Functions

 Coercion in JS
1. Understand the concept for coercion in Js , which involves the
automatic
2. Type conversion performance by the language
3. Explore explicit coercion which involves manually converting values
from one type to another using built-in functions such as parseInt() ,
parseFloat() String() and Number()
4. Study potential pitfalls and best practices related to coercion in
order to write more predictable and maintainable code
5. Practice with examples and exercise to solidify understanding of
how coercion works in JS

 Scope in JS

1. Understand the concept of scope in JS including global scope and local
scope
2. Learn about closure and how they are created in JS
3. Explore practical examples of using closure to manage data
privacy and encapsulation in JS code
4. Practice creating and using closures to maintain state in JS function
5. Study common issues and best practices related to scopes and
closures in JS development

 Callbacks and Hot

1)Understand the basics of JS and its role in backend development

2)Learn about callbacks and higher order functions in JS

3)Explore how callbacks and HOF are used in asynchronous


programming

4)Practice implementing callbacks and HOF in real world scenarios


5)Familiarize yourself with popular libraries and framework that

leverage callbacks For backend development

 Promises
1. 1) learn the basics of asynchronous programming in JS
2. Understand how callbacks work and the potential issues with callback
hell
3. Study the concepts of Promises and how they can simplify
asynchronous code
4. Learn about promises chaining and error handling with Promises
5. Explore async/await syntax as alternative to working with
Promises for asynchronous code
6. Practice creating and using Promises in real world projects to
solidify your understanding

 Iterator and Generator

1. Understand the concept of iterator in JS which allow you to


define custom iteration behavior for objects
2. Learn about generator which are a special type of iterator that can
pause and resume their execution
3. Explore how to use iterator and generator to work with collections of
data in an efficient and controlled manner
4. Practice implementing iterator and generator in your own code to
enhance the functionality of your backend application

 Classes and Objects:

1) Introduction to classes and objects in JS


2) Creating a class in JS
3) Defining properties and method within a class
4) Instantiating objects from a class
5) Using constructor and prototype for object creation
6) Inheritance and polymorphism with classes in JS
 Node JS

1. V8 engine, LibUV and internals of NodeJS


2. Event Loop | Timer, Close, I/O Queue | I/O poll
3. Module pattern in NodeJS, ES6 and CommonJS modules
4. Streams in NodeJS and application of Streams | Read and Write
streams | Piping Streams
5. How the C++ layer of Node interacts with JS layer
6. How to do network interactions in NodeJS
7. How to write a raw HTTP server without any 3rd party framework in Node
8. Writing an HTTP Client in NodeJS

TypeScript

1. Understanding typescript and type interfacing


2. Generics and interfaces in TS --> Key patterns in Typescript ,
Utility types and mapped types
3. Advanced Advanced type features such as conditional types and
mapped types
4. Using TypeScript with Node.js for backend development
5. Integrating TypeScript with popular backend frameworks like Express.js or
NestJS

ExpressJs + TS

1. Making http servers in ExpressJS


2. Handling dynamic data with URL parameters and query strings
3. Middleware in Express: Most important aspect of Express -- > Routing in
ExpressJS
4. Using Using TypeScript to add static typing to Express applications
5. Error handling and validation in ExpressJS with TypeScript
6. Building RESTful APIs with Express and TypeScript
7. Authentication and authorization in backend development using
ExpressJS + TS

APIs in Node JS (REST APIs) Make a Twitter APP Backend

1. What are APIs? Why do you need them?


2. REST APIs C REST standards. Status Codes.
3. Designing API Operations C endpoints. Handling HTTP methods (GET,
POST, PUT DELETE).
4. Headers, Request Body, Response Body best practices.
5. API Versioning and its
importance 6.

Modern communication standard with gRPC s graphQL

1. Making industry ready project structure with MVC and modified MVC
2. Service layer, Schema layer and repository layer
3. Config layer, Seeders and Controllers
4. Routing layer, Config layer
5. Jobs and consumers
6. Authentication
7. Authentication and authorization layers
8. Database design and management
9. API development and integration
10. Testing and debugging strategies
11. Performance optimization techniques

Writing Validations using Zod

1. Using Zod to add validation layers


2. Validating request body with zod
3. Writing Zod schema
4. Writing validations manually without zod

Writing Typesafe backends with tRPC

1. Understanding what is RPC and why it is useful


2. Understanding different RPC frameworks
3. Making backends with tRPC , a typescript first framework.
4. Making URL Shortener with tRPC

Microservices | Monolith and Monorepo

1. Creating projects as monolith


2. Understanding microservices and interservice communication
3. Sync and Async microservice communication
4. Making monorepo and understanding turbo repo
5. Transactions in microservices

File uploads using AWS S3 s Multe

1. Handling file uploads using AWS S3


2. Presigned URL and optimising uploads
3. Integrating multer for managing uploads in Nod

Websockets and Socket.IO

1. Need of websockets and implementing sockets using Socket.io


2. Events in socket.io with acknowledgments
3. Rooms and namespaces in sockets
4. WS library for sockets
5. Real time communication using websockets
6. Server sent events and polling, How are they different from sockets
Basics of Go

1. Learn the fundamentals of Go programming language, including syntax,


data types, and control structures.
2. Understand how to work with functions, packages, and error handling in
Go.
3. Explore concurrent programming in Go using goroutines and channels.
4. Master working with databases in Go using SQL or NoSQL
databases like PostgreSQL or MongoDB.
5. Learn about RESTful API development in Go using frameworks like
Gorilla Mux or Gin.
6. Gain knowledge about authentication and authorization techniques
for securing backend applications in Go.
7. Explore testing and debugging of backend applications written in Go
8. . Understand deployment strategies for deploying backend apps
developed with Go on cloud platforms like AWS or GCP.

Writing servers with Go

1. Learn the basics of Go programming language


2. Understand concurrency and parallelism in Go
3. Master error handling and logging in Go
4. Explore database integration with Go
5. Gain proficiency in writing RESTful APIs with Go
6. Implement authentication and authorization in backend apps using Go
7. Utilize third-party packages and libraries for efficient backend
development with Go

Auth with Go

1. Learn the basics of Go programming language


2. Understand HTTP and web servers in Go
3. Explore database management with Go (e.g., SQL, NoSQL)
4. Implement authentication and authorization with Go
5. Utilize middleware for handling requests and responses
6. Dive into building RESTful APIs using Go
7. Master error handling and logging in backend applications
8. Learn about testing and debugging techniques in Go backend
development

AWS integration with Go

1. Learn the basics of Go programming language


2. Understand data structures and concurrency in Go
3. Explore web development with Go using frameworks like Gin or Echo
4. Learn about APIs and RESTful services with Go
5. Study database integration with Go, including SQL and NoSQL
databases
6. Gain knowledge of AWS services such as EC2, S3, RDS, and Lambda
7. Integrate AWS SDK for Go into your applications for AWS service
interaction

Connecting to dynamodb and aws api gateway with go

1. Learn the basics of Go programming language


2. Understand how to create backend applications with Go
3. Explore how to connect to DynamoDB using the AWS SDK for Go
4. Learn about setting up and integrating with AWS API Gateway using Go
5. Practice building and deploying backend applications with Go,
DynamoDB, and AWS API Gateway

Basic Databases - MySQL s MongoDB

1. Why databases are requires ? Introduction to MySql


2. Basic CRUD Queries in MySQL, Pagination, Limit, Offsets, Where, Having,
etc.
3. Introduction to MongoDB
4. Basic CRUD Queries in MongoDB
5. MongoDB Atlas
6. Normalisation and Different normal forms

Indexing in Databases
1. Creating indexes in databases
2. Types of indexes
3. Checking query performance with and without indexes
4. Internals of Indexes - B-Trees

Scaling DBs - Partitioning , Replication s Sharding

1. Partitioning DBs and why do you need partitioning


2. Scaling DBs further with practically sharding your DBs
3. Controlling DB shards in express
4. Replication In DBs and its needs

Replication in Distributed DB - Master slave s Multi Master

1. Need of replication for scaling databases


2. Replication in a write/read heavy system
3. Master slave and multi master architecture
4. leader less architecture and quorums

Schema Designing - Twitter s Airbnb

1. Designing Complex DB schema - Designing Social Media DB C Airbnb


DB
2. Normalising the DBs 1nf, 2nf, 3nf
3. Optimising for different edge Cases

Advanced Transaction in databases

1. ACID properties in databases


2. Understanding atomicity and how DBs implement atomicity
3. Isolation levels and serialisation
4. Consistent and consistency patterns
5. Strong vs eventual consistency
6. Durability in DBs, Pessimistic C Optimistic Concurrency control

Advanced MongoDB
1. backing up mongodb databases
2. Sharding and replicating mongodb databases
3. Transactions in MongoDB and ACID in mongo
4. Indexing and performance in Mongo along with Security in mongoDB
5. Aggregation framework in Mongo

ORMs and ODMs

1. Integrating ORMs and ODMs in Express


2. Mongoose ODM for MongoDB
3. Prisma ORM and TS Support

Authentication and Authorization

1. Token and Session based Auth


2. JWT-based authentication
3. Role-based access control
4. OAuth2.0 and third-party authentication
5. Secure session management

REDIS

1. Understanding redis infrastructure


2. Using redis as a cache and how redis helps in scaling your applications
3. Redis as a queue and integrating redis with Node using BullMQ
4. Redis Geospatial indexing and it’s use cases in applications like Uber

Scaling apps with AWS Cloud

1. AWS EC2 and deploying applications using AWS EC2


2. Amazon machine image and configuring images for EC2 instances
3. Elastic load balancer in AWS
4. Auto scaling and horizontal scaling with EC2 instances and Scaling
groups
5. Vertical scaling in EC2 instances
6. AWS Key vault service
Scaling NodeJS and Deploying Node Apps

1. Deploying node apps on Render


2. Deploying node apps on AWS
3. Scaling node apps by running on multiple cores
4. Using PM2 for managing multiple node daemons
5. Auto-restarting Node.js apps on crashes

Databases in AWS Cloud

1. AWS RDS for relational databases in AWS


2. AWS Document store and MongoDB Atlas
3. Amazon dynamoDB
4. Amazon S3 (Simple storage service) for blob storage
5. Amazon redshift

AWS Lambda s IAM

1. Creating serverless function in AWS Lambda


2. Setting up permissions using IAM
3. Integrating lambda with ELB

Basics Of System Design

1. Horizontal and vertical Scaling


2. Load balancers and their usecases
3. L4 and L7 load balancers
4. Improving system performance with Caching
5. Redis cache and setting up redis
6. Scaling databases with sharding and replication
7. System design of twitter, codesandbox, leetcode, netflix and uber.
8. Microservices and scaling microservices
9. CAP Theorem
10. Consistent hashing
11. SQL vs NoSQL

Containers and Docker

1. Virtual machines and Docker containers


2. Images and containers, Creating your own Docker images
3. Publishing images to docker hub
4. Understanding docker CLI
5. Docker volumes and networking in docker
6. Applications of docker containers in real life systems like
leetcode and codesandbox

Devops for backend engineers

1. What is devops and why you need to know devops ?


2. Writing CICD pipelines with Github actions and Jenkins
3. Understanding artifacts
4. Preparing steps and jobs in pipelines
5. Storing and managing secrets in CI CD Pipelines
6. Setting up jenkins on AWS for scaling pipelines
7. Understanding containerisation and container orchestration with
Docker and Kubernetes
8. Infrastructure as Code (IaC) using Terraform and AWS CloudFormation
9. Monitoring and logging practices using tools like Prometheus,
Grafana, and ELK stack
10. Implementing blue-green deployments and canary releases
11. Setting up automated testing environments in CI/CD pipelines
12. Performance monitoring and optimisation in production environments
13. Setting up automated alerts and incident response systems

Kafka and RabbitMQ

1. Understanding message queues and their importance in distributed


systems
2. Apache Kafka architecture - Topics, Partitions, and Brokers
3. Kafka Producer and Consumer APIs in NodeJS
4. Kafka Stream processing and real-time data pipelines
5. RabbitMQ architecture and message exchange patterns
6. Implementing publish-subscribe patterns with RabbitMQ
7. Message acknowledgments and delivery guarantees
8. Dead letter queues and message retry mechanisms
9. Scaling message queues and handling high throughput
10. Comparing Kafka vs RabbitMQ - use cases and trade-offs

Idempotent API, API Gateways and Proxies

1. Understanding idempotency and it’s use cases


2. Implementing an Idempotent API
3. NGINX as a reverse proxy and load balancer
4. API Gateway patterns and implementation using Kong and AWS API
Gateway
5. Rate limiting and throttling in API Gateways
6. Request/Response transformation and routing
7. API versioning and documentation
8. Authentication and authorization at gateway level
9. Circuit breaking and fallback mechanisms
10. Caching strategies at the proxy layer
11. Cross-origin resource sharing (CORS) configurations
a. Idempotent API
b. API Gateways and Proxies
c. Cross-origin resource sharing (CORS) configuration

Fastify - Boost up your node servers 100x

1. Understanding Fastify's architecture and performance benefits over


Express
2. Schema validation and serialization using JSON Schema
3. Plugins and hooks in Fastify for extending functionality
4. Request-response lifecycle and middleware system
5. Building high-performance REST APIs with Fastify
6. Type support and TypeScript integration
7. Performance benchmarking against other Node.js frameworks

Monitoring and Observability

1. Prothemus and Grafana

Testing - Unit and Performance testing


1. Writing unit tests using Jest framework
2. Test driven development (TDD) approach in Node.js
3. Mocking dependencies and API calls using libraries like Sinon
4. Integration testing of REST APIs using Supertest
5. Testing asynchronous code and handling promises in tests
6. Setting up continuous testing in CI/CD pipelines
7. Stress and performance testing using K6
8. Performance testing and monitoring using Postman

Misc Topics

1. Dumping logs in mongoDB


2. Dumping application logs in Azure Cosmos
3. LinkedIn Optimisation and Resume preparation
4. Writing CRON Jobs in NodeJS Integrating payment gateways like razorpay
5. Integrating mailers in a node app

You might also like