FullStack - MERN

Get Started. It's Free
or sign up with your email address
FullStack - MERN by Mind Map: FullStack - MERN

1. Basic

1.1. JavaScript

1.1.1. Context/This

1.1.2. Closure/Scope

1.1.3. Global object

1.1.4. Hoisting

1.1.5. Reference

1.1.5.1. Immutability

1.1.5.2. Pass by reference

1.1.6. Class

1.1.6.1. Constructor

1.1.6.2. Chaining

1.1.6.3. Inheritance

1.1.6.4. Getters/Setters

1.1.7. Object

1.1.8. Events

1.1.8.1. Event listener

1.1.8.2. Event bubbling

1.1.9. Truthy/Falsy

1.1.10. Prototypes

1.1.11. Promise

1.1.11.1. Promise chaining

1.1.11.2. Async/Await

1.1.11.3. Microtask

1.1.11.4. Promise All

1.1.11.4.1. When to avoid it?

1.1.11.4.2. Handling errors

1.1.11.5. Promisify

1.1.12. IFFE

1.1.13. Currying

1.1.14. Spread operator

1.1.15. Destructuring

1.1.16. Garbage collection

1.1.17. Functions

1.1.17.1. Function declaration

1.1.17.2. Function Invocation

1.1.17.3. Pure Function

1.1.17.3.1. Side effect

1.2. TypeScript

1.2.1. Transpiler

1.2.2. Interface

1.2.3. Type

1.2.4. Generics

1.2.5. Enum

1.2.6. Is it even required?

1.2.7. Decorators

1.2.8. Partial

1.3. Linux

1.3.1. Why linux?

1.3.2. Tops Distributions

1.3.2.1. Ubuntu

1.3.2.1.1. Why ubuntu?

1.3.2.1.2. Difference between server and desktop?

1.3.2.2. Fedora

1.3.2.3. Redhat

1.3.2.4. OpenSUSE

1.3.3. CLI

1.3.3.1. Why CLI?

1.3.3.2. How to make your CLI look more beautiful ?

1.3.3.3. BASH/ZSH

1.3.4. File Structure

1.3.5. whoami

1.3.6. Root user

1.4. HTML

1.5. DOM

1.6. CSS

1.7. HTTP/HTTPS

1.7.1. Status code

1.7.2. Request header

1.7.3. Response header

1.7.4. CORS

1.7.4.1. What is CORS?

1.7.4.2. When it occurs?

1.7.4.3. How to fix CORS problem?

1.7.5. Host

1.7.6. Port

1.7.7. Query params

1.7.8. Methods

1.7.8.1. Get

1.7.8.2. Post

1.7.8.3. Put

1.7.8.4. Patch

1.7.8.5. Delete

1.7.8.6. Head

1.7.8.7. Options

1.7.9. TLS/SSL

1.7.9.1. Why is it necessary

1.7.9.2. How to generate one for free?

1.7.9.3. How it works?

1.8. DNS

1.9. Client - Server

1.10. Web Application

1.11. AJAX

1.12. APIs

1.12.1. What exactly is an API

1.12.2. API Reference

1.12.3. Web APIs

1.12.4. REST API

1.12.4.1. What is Specification?

1.12.4.2. What is protocal?

1.12.4.3. How to design better REST APIs

1.12.4.4. REST APIs Constraint

1.12.5. GraphQL

1.12.5.1. Why GraphQL?

1.12.5.2. What problem it solves?

1.12.6. Difference between REST and GraphQL

1.12.7. Which one to choose?

1.13. GIT

1.13.1. What exactly is GIT?

1.13.2. What is version control

1.13.3. Branch

1.13.4. What is local?

1.13.5. What is remote?

1.13.6. What is pull request or merge request?

1.13.7. What is fork?

1.13.8. What is branch tracking?

1.13.9. How to fix merge conflicts?

1.13.10. What is stashing?

1.13.11. Writing a commit message?

1.13.12. What is cherry picking?

1.13.13. What are git hooks?

1.13.14. What happens when you run "git push -u origin master"

1.13.15. What is difference between http and ssh

1.13.16. How to handle mutliple github accounts on same machine?

1.13.17. What is origin and upstream?

1.13.18. .gitignore

1.13.19. .gitattributes

1.14. Microservice/Monolith

1.15. Serverless

1.16. Package Manager

1.17. Linting

1.17.1. eslint

1.18. JSON

1.18.1. Difference between JSON and JavaScript Object

1.18.2. JSON parse/stringify

1.18.3. GeoJSON

1.19. Style Guide/Best Practices

1.19.1. Design patterns

1.19.2. Is it even required?

1.19.3. 12 factor app

1.19.4. How and where to find out resources for this?

1.20. Finding Answer

1.20.1. Stack overflow

1.20.2. Github issues

1.20.3. Awesome

1.20.3.1. JavaScript

1.20.3.2. Node

1.20.3.3. React

1.20.3.4. Express

2. Frontend

2.1. Framework/Library

2.1.1. ReactJs

2.1.2. VueJs

2.1.3. Anugular

2.1.4. JQuery

2.2. Static/Dynamic Sites

2.2.1. Static content

2.2.2. GatbyJs

2.3. ReactJs

2.3.1. Virtual DOM

2.3.2. Diff Algorithm

2.3.3. Components

2.3.3.1. Class

2.3.3.2. Component lifecycle

2.3.3.3. Functional

2.3.4. State and Props

2.3.5. Hooks

2.3.5.1. Lifecycle

2.3.5.2. Custom hooks

2.3.6. Render props

2.3.7. State management

2.3.8. Error boundaries

2.3.9. Styled Components

2.4. Rendering

2.4.1. What exactly is rendering

2.4.2. Server side rendering

2.4.2.1. NextJs

2.4.3. Client side rendering

2.5. Routing

2.5.1. What exactly is routing

2.5.2. Static routing

2.5.3. Dynamic routing

2.5.4. Client side routing

2.5.5. Server sider routing

2.5.6. Query/Query params

2.5.7. next/forward

2.5.8. Private/Protected routes

2.6. Refs

2.7. State management

2.7.1. Context

2.7.1.1. hooks

2.7.1.2. Provider

2.7.1.3. Consumer

2.7.2. Redux

2.7.2.1. Redux architecture

2.7.2.2. State/Store

2.7.2.3. Action

2.7.2.4. Action creator

2.7.2.5. Reducer

2.7.2.6. Redux persist

2.7.2.7. Middlewares

2.7.2.7.1. thunk

2.7.2.7.2. dev tool

2.7.2.8. Async operations

2.7.2.9. hooks

2.8. Code Splitting

2.9. React router

2.10. Axios

2.11. Apollo Client

2.12. Lazy Loading

2.13. Forms

2.14. Material UI

3. Backend

3.1. Web server

3.2. NodeJs

3.2.1. Runtime

3.2.2. Eventloop

3.2.2.1. epoll

3.2.2.2. Phases in eventloop

3.2.2.3. Events

3.2.3. Callback

3.2.3.1. What exactly is callback?

3.2.3.2. How to write callback?

3.2.3.3. Callback hell

3.2.3.4. Error first callback

3.2.4. Promise

3.2.5. nexttick

3.2.6. Child process

3.2.7. Stream

3.3. ExpressJs

3.3.1. Web framework

3.3.2. TCP Server

3.3.3. Middleware

3.3.3.1. Next()

3.4. Apollo GraphQL

3.4.1. Apollo Server

3.4.2. Resolver

3.4.3. Context

3.4.4. Apollo Federation

3.4.5. API Gateway

3.4.6. N+1 Problem

3.5. Process

3.5.1. What exactly is process

3.5.2. What is node process?

3.5.3. Daemons

3.6. Thread

3.6.1. Thread pool

3.6.2. Is it even required?

3.6.3. Multithreading

3.7. Memory Management

3.7.1. Default memory

3.7.2. How to manage it?

3.8. IO

3.8.1. What exactly is IO

3.8.2. Types of IO

3.9. Encryption

3.10. Encoding

3.11. Blocking/Non-blocking

3.11.1. What exactly get blocked?

3.11.2. How to avoid blocking code?

3.12. Synchronous/Asynchronous

3.12.1. What all things are synchronous and asynchronous

3.12.2. How to make a code asynchronous

3.13. API Gateway

3.14. Authentication/Authorization

3.14.1. Basic Auth

3.14.2. JWT

3.14.2.1. Symmetric

3.14.2.2. Asymmetric

3.14.2.3. Payload

3.14.2.4. Header

3.14.2.4.1. JOSE

3.14.2.5. Algorithms

3.14.3. JWK

3.14.4. JWS

3.14.5. JWE

3.14.6. SSO

3.14.7. Third party authenticaion

3.14.8. OAuth

3.14.8.1. What exactly is Oauth

3.14.8.2. OpenId connect

3.14.8.3. Identiry token

3.14.8.4. Access token

3.14.8.5. Refresh token

3.14.8.6. Grant types

3.14.8.6.1. Explicit

3.14.8.6.2. Implicit

3.14.9. Firebase/Auth0/Cognito

3.15. Session Management

3.15.1. Cookie

3.15.2. Token

3.16. Message Queue

3.16.1. Push based

3.16.1.1. RabbitMQ

3.16.2. Pull based

3.16.2.1. Kafka

3.16.3. What exactly is message queue

3.16.4. When is it required?

3.16.5. Pub/Sub

3.16.6. Producer/Consumer

3.17. Websockets

3.17.1. Socket.io

3.18. Validations

3.18.1. JOI

3.18.2. ValidatorJs

3.19. Error Handling

3.19.1. Global

3.19.1.1. unhandled promise rejection

3.19.1.2. unhandledRejection

3.19.2. Custom Error

3.20. Logging

3.20.1. Winston

3.20.2. Morgan

3.21. Inter Service Communication

3.21.1. When is it required?

3.21.2. Synchronous

3.21.2.1. http

3.21.2.2. grpc

3.21.3. Asynchronous

3.21.3.1. pub/sub

3.22. Template engine

3.23. Environment Variables

3.23.1. Why environment variable?

3.23.2. OS level env

3.23.3. Process level env

3.24. ACL

3.25. Testing

3.25.1. Mocha

3.25.2. Chai/Should

3.26. Security

3.26.1. Validation/Sanitization

3.26.2. Headers

3.26.3. Reverse Proxy

3.26.4. NPM Audit

3.26.5. Rate limiting

3.27. Regex

3.28. CRON

4. Database

4.1. Database server

4.2. MongoDB

4.2.1. Mongoose

4.2.2. ODM

4.2.3. Aggregation

4.2.4. Map-reduce

4.2.5. Search

4.3. SQL/NoSQL

4.3.1. What the difference SQL/NoSQL?

4.3.2. Which one is faster?

4.3.3. Which to choose when?

4.4. Redis

4.4.1. Data storage

4.4.2. Caching

4.5. MySQL

4.5.1. ORM

4.6. Indexing

4.7. Data Modelling

4.7.1. Transactional Data

4.7.2. Operational Data

4.8. Replication

4.9. Connection pool

4.10. Connection retry

4.11. Sharding

4.12. Migration

4.13. ACID

4.14. Transaction

4.15. Scaling

4.16. N+1 Problem

4.17. Table Partitioning

4.18. Data Type

4.18.1. String

4.18.1.1. ISO

4.18.2. Number

4.18.3. Array

4.19. Can we have multiple database in an app?

4.20. Administration

4.20.1. Reporting

4.20.2. Backup

4.20.3. Logging and Monitoring

4.21. Security

4.21.1. RBAC

4.21.2. Authentication

4.21.3. TLS/SSL

4.21.4. Encryption

5. Deployment/DevOps

5.1. Datacenter

5.1.1. What all the things are there in datacenter?

5.1.2. Availability Zone

5.2. Networking

5.2.1. DNS

5.2.2. IP

5.2.2.1. CIDR

5.2.3. Private/Public IP

5.2.4. Firewall

5.2.5. Network

5.2.6. VPC/VPN

5.3. Cloud

5.3.1. IaaS

5.3.2. PaaS

5.3.2.1. Heroku

5.3.3. SaaS

5.3.4. Private/Public Cloud

5.4. Containerisation

5.4.1. Docker

5.4.1.1. Docker engine

5.4.1.2. Docker image

5.4.1.3. Docker container

5.4.1.4. Networking

5.4.1.4.1. Modes

5.4.1.4.2. Port mapping

5.4.1.5. Volume

5.4.2. Docker compose

5.5. Orchestration

5.5.1. Kubernetes

5.6. Virtualisation

5.6.1. VM

5.7. Build

5.7.1. Webpack

5.7.2. Grunt

5.7.3. Gulp

5.8. Scaling

5.8.1. Virtical

5.8.2. Horizontal

5.9. Process Manager

5.10. Task Manager

5.11. Monitoring

5.12. SSH

5.12.1. Private vs Public Key

5.12.2. Handling multiple keys

5.12.3. How SSH Works?

5.13. SCP

5.14. AWS

5.14.1. EC2

5.14.2. VPC

5.14.3. Security Groups

5.14.4. Load Balancer

5.14.5. Subnets

5.14.5.1. Private

5.14.5.1.1. NAT

5.14.5.2. Public

5.14.6. ECS

5.14.7. EKS

5.14.8. ECR

5.14.9. Amplify

5.14.10. Cognito

5.14.11. IAM

5.14.12. KMS

5.14.13. SES

5.14.14. SNS

5.14.15. S3

5.14.16. Lambda

5.14.17. Cloudfront

5.14.18. Route 53

5.14.18.1. Hosted Zones

5.14.19. Cloudwatch

5.14.20. Cloudformation

5.14.21. Secret Manager

5.14.22. Console

5.14.23. CLI

5.15. GCP

5.15.1. Compute Engine

5.16. Infrastructure as code

5.16.1. Terraform

5.16.2. CDK

6. Product And Architecture

6.1. Requirement

6.2. Planning

6.3. Product Design

6.3.1. UI

6.3.2. UX

6.4. System design

6.4.1. Identifying stack

6.4.2. Thinking in terms of data

6.5. Execution

7. General Questions

7.1. What is machine and it's building blocks?

7.1.1. Disk

7.1.2. Processor

7.1.3. RAM

7.2. What is internet and how it works

7.3. What happens behind the scene when you type google.com in your browser?

7.4. What is programming?

7.5. Is there a difference between programming and coding?

7.6. What is web development?

7.7. What is DevOps?

7.8. Is it so hard to learn coding?

7.9. What is programming language?

7.10. What is difference between a language,library or framework?

7.11. What are different designations in software industry?

7.12. Who is full-stack engineer?

7.13. How much money is there in web development?

7.14. How to identify a good startup?

7.15. Why companies are prefering someone who has worked in startup?

7.16. I am stuck in maintenance job, how to get out of it?

7.17. How to become front-end engineer?

7.18. How to become backend engineer?

7.19. How to stay motivated?

7.20. I spend too much of time but still not able to deliver. How do i improve myself?

8. Mobile

8.1. Webview

8.1.1. Ionic

8.2. Native

8.2.1. React Native

8.3. Which one to choose?