This repository contains my personal collection of notes, primarily focused on Computer Science, Software Engineering, and Backend Development. As I explore various topics in these areas, I document my learnings and publish them on this website.
If you come across any issues or errors in the notes, feel free to open an issue in the GitHub repository.
Content Table
Programming Fundamentals
- Programming Languages
- Python
- Introduction
- Python Basics
- Variable Scoping
- Common Data Structures in Python
- Loops, Control Structures, and Functions
*args and **kwargs
- Standard Library
- Pythonic Code
- Object Oriented Programming (OOP)
- Exception Handling
- Context Manager
- File Handling
- Iterator and Generator
- Multithreading
- Multiprocessing, and Asyncio
- Asyncio
- Metaprogramming
- Decorator
- Unit Test
- Pytest
- Execution Flow
- Memory Management
- Reference Counting
- Generational Garbage Collection
- Package Managers
- JavaScript
- Introduction
- Variables
- Data Types
- Mutation
- Functions
- Conditions and Loops
- Asynchronous Programming
- Execution Context
- Call Stack
- Queues
- Event Loop
- Closures and Lexical Scoping
- Callbacks and Higher-Order Functions
- Currying and IIFE
- Prototypes and Inheritance
- Object Oriented Programming
- The
this Keyword
- Type Coercion and Type Conversion
use string
- Event Handling
- ES6 and Beyond
- Concurrency and Parallelism
- Go
- Introduction
- Packages and Modules
- Variable and Scope
- Mutation
fmt Package
- Condition and Loops
- Functions
- Error Handling
- File Handling
- Pointers
- Structs and Custom Types
- Interfaces
- Array, Slices, and Maps
- Goroutines
- Introduction
- Wait Groups
- Mutex
- Channels
- Tips & Tricks
Framework and Libraries
- Frameworks and Libraries
- Backend
- Django
- Introduction
- Django Rest Framework
- Project Setup
- File Structure
- Project Structure
- Model and ORM
- Serializers
- Views
- Authentication
- Permissions, Access Control, Throttling
- Querying and Filtering
- Nested Relationships and Hyperlinks
- Error Handling
- Testing
- Documentation
- Advanced Topics
- Deployment
- Flask
- Introduction
- WSGI
- Flask App and
app.run
- Routes
- Templates and Jinja2
- Static Files
- Middlewares
- Request and Response
- Blueprints
- Error Handling
- Database Integration and FlaskSQLAlchemy
- Async in Flask
- Deployment and Scaling
- Thread Safety
- FastAPI
- Introduction
- Routes
- Serialization & Validation
- Dependency Injection
- Authentication & Security
- ORMs
- Advanced FastAPI Features
- Performance & Optimization
- Testing & Debugging
- Deployment & Production Setup
- Frotnend
- React
- Introduction
- JSX
- Props
- Event-Driven Programming
- Components
- State Management
- React Hooks
- Refs
- Imperative React
- Performance Optimization
- Styling
- Routing
- Server Side Rendering (SSR)
- Portals
- Error Handling and Error Boundaries
- React Under the Hood
Data Structure and Algorithms
- Data Structure and Algorithms
- Algorithms
- Introduction
- Recursion
- Arrays and Hashing
- Time and Space Complexity
Operating Systems
- Operating Systems
System Design and Databases
-
Networking
- Protocols
- Communication Design Patterns
-
Database
- SQL
- Introduction
- SELECT Queries
- Aggregations Queries
- GROUP BY Queries
- String, Date, and Time Operations
- Join Queries
- Subqueries and Nested Queries
- Common Table Expressions (CTEs)
- Window Functions
- Database Engineering
- Introduction
- Connection Pooling
- Transactions
- ACID
- Database Locking
- Indexes
- Query Optimization
- Partitioning
- Sharding
- Replication
- Cursors
- Database Systems
- Introduction
- Relational Algebra
- Database Storage
- Tuple Oriented Storage
- Index Organized Storage
- Log-Structured Merge Tree
- Hash Tables
- Buffer Pool Manager
- B-Trees
- Bloom Filter
- Skip List
- Trie and Radix Tree
- Inverted Indexes
- Vector Index
Sources
The notes are primarily created by me or with the assistance of ChatGPT. Occasionally, they include content adapted from other sources, though I typically rework the material rather than copying it verbatim.