Introduction
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
*argsand**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
thisKeyword - Type Coercion and Type Conversion
use string- Event Handling
- ES6 and Beyond
- Concurrency and Parallelism
- Go
- Python
Framework and Libraries
Data Structure and Algorithms
- Data Structure and Algorithms Stable
- Data Structures Stable
- Introduction Stable
- Arrays Stable
- Hash Table Stable
- Stack Stable
- Queue Stable
- Tree Stable
- Introduction Stable
- Binary Tree Stable
- Strict Binary Tree Stable
- N-ary Tree Stable
- Tree Representation Stable
- Full vs Complete Binary Tree Stable
- Strict vs Complete Binary Tree Stable
- Binary Tree Travarsals Stable
- Common Tree Algorithms Stable
- Search Tree Stable
- Introduction Stable
- Binary Search Tree Stable
- Introduction Stable
- Common BST Algorithms Stable
- Self-Balancing Tree Stable
- Introduction Stable
- AVL Tree Stable
- Red-Black Tree Stable
- Prefix Search Tree Stable
- Introduction Stable
- Trie Stable
- Algorithms Stable
- Introduction Stable
- Recursion Stable
- Sliding Window Stable
- Two Pointers Stable
- Sorting Stable
- Time and Space Complexity
- Data Structures Stable
Operating Systems
System Design and Databases
-
- Protocols
- Client-Server Architecture Stable
- OSI Model Stable
- Layer 7: Application Stable
- Layer 6: Presentation
- Layer 5: Session
- Layer 4: Transport
- Layer 3: Network
- Layer 2: Data Link
- Extra
- Communication Design Patterns
- Protocols
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.