Backend
- What is API
- REST API architecture
-
What is client-server architecture? What is HTTP? HTTP vs HTTPS
- Query Params, Pagination, Sorting, Limit, Offset
- What are tokens? What are API keys?
- Enviroment Variables
- What is JSON? What are JSON alternatives?
- What are middlewares?
- What are controllers?
- What is OAuth?
- What is CORS?
- What is MVC pattern?
- What is axios?
- What is JWT
- Authentication vs Authorization
- Blocking IO vs Non-blocking IO
- NodeJS architecture
- Status codes
- package.json vs package-lock.json
- Why Express?
- HTTP methods
- PUT vs PATCH
- SQL vs NoSQL
MongoDB and Mongoose
- NoSQL Basics (BASE)
- Basic MongoDB CRUD operations
- How to set up MongoDB, various ways
- Need for Mongoose
- MongoDB architecture: documents, collections
- Cap Theorem
Git and Github
- Why Git is needed
- Ways to set up Git
- Git vs GitHub
- GitHub commands
- Clone, fork, merge, contribute
React
- React: why, what, advantages, disadvantages
- SPA
- React vs Angular
- React Virtual DOM and Fiber, reconciliation
- React lifecycle with functional components
- All 7 fundamental hooks
- CSR, SSG, SSR, ISG
- Prop Drilling Issue
- React Router, Redux, and other libraries used
- useMemo vs useCallback
- React Memo
- Bundlers, JSX, Vite, Babel idea
- Context API
-
How to improve speed in React
- Lazy Loading (Suspense + Error Boundary), Intersection
- Higher Order Components (HOC)
- Event Delegation
- State Lifting (Child to Parent)
- Why TS?
Javascript
- let, const, var
- How JavaScript is single-threaded
- Execution context
- Placement of Script tag: async vs defer
-
How one thread handles many synchronous and asynchronous
operations
- Types of for loops
- Web API: Task and Microtask Queue
- Temporal Dead Zone (TDZ) and hoisting
- Closure and lexical scope
- Currying
- Every ES6 feature
- Higher-Order Functions (HOF)
- Exception Handling
- this keyword
- call, bind, apply
- Prototypes, Polyfills and Classes
- Callbacks, Promises and Async/Await
- Objects and Arrays: Methods
- DOM
- Shallow vs Deep Copy
Java
- Type of language
- JDK, JVM, JRE
- Stack and heap
- OOP pillars
- Immutability
- String Pool and Java String Interning mechanism
- Wrapper Classes, Autoboxing and Unboxing
- Upcast and Downcast
- Abstract classes and interfaces
- Method overloading and overriding
- Diamond Problem
- Enums
- Copy constructor
- Exception handling and hierarchy, propagation
- final, finally, and finalize
- throw vs throws
- equals vs ==
- static and static block
- Instance block
- Lambda expressions
- Comparator vs Comparable
- Collections
- Multithreading
- Stream API
- Map, Filter, Reduce
C++
- C vs C++
- Why C/C++ is between high and low level (mid-level)
- Pointers, References and Smart Pointers
- 1D and 2D array pointer initialisation
- Stack and heap
- OOPS
- Virtual classes, methods, destructor
- Abstract classes/Interface/Pure Virtual Classes
- Method overloading and overriding, Operator Overloading
- Friend function and class
- Diamond problem fix
- Copy constructor
- Exception handling
- Generics, Templates and STL
- Lambda, Const and Mutable
- Comparator
- Struct, enums, and unions
SQL
- Type of language
- DDL, DML, DCL, TCL, DQL
- Drop vs delete vs truncate
- Alter DDL
- Sequence of SQL commands
- Keys and Constraints
- Wildcard operators (pattern matching)
- Joins
- Subquery, Nested Subquery, Correlated Subquery
- Group by, having, order by
- Nth Highest Salary, Limit
- Window Functions
- Views, Stored Procedure, Triggers
- ACID properties