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 Stable
- Introduction Stable
- Python Basics Stable
- Variable Scoping Stable
- Common Data Structures in Python Stable
- Loops, Control Structures, and Functions Stable
*argsand**kwargsStable- Standard Library Stable
- Pythonic Code Stable
- Object Oriented Programming (OOP) Stable
- Exception Handling Stable
- Context Manager Stable
- File Handling Stable
- Iterator and Generator Stable
- Multithreading Stable
- Multiprocessing, and Asyncio Stable
- Asyncio Stable
- Metaprogramming Stable
- Decorator Stable
- Unit Test Stable
- Pytest Stable
- Execution Flow Stable
- Memory Management Stable
- Reference Counting Stable
- Generational Garbage Collection Stable
- Package Managers Stable
- JavaScript Stable
- Introduction Stable
- Variables Stable
- Data Types Stable
- Mutation Stable
- Functions Stable
- Conditions and Loops Stable
- Asynchronous Programming Stable
- Execution Context Stable
- Call Stack Stable
- Queues Stable
- Event Loop Stable
- Closures and Lexical Scoping Stable
- Callbacks and Higher-Order Functions Stable
- Currying and IIFE Stable
- Prototypes and Inheritance Stable
- Object Oriented Programming Stable
- The
thisKeyword Stable - Type Coercion and Type Conversion Stable
use stringStable- Event Handling Stable
- ES6 and Beyond Stable
- Concurrency and Parallelism Stable
- Go Stable
- Introduction Stable
- Packages and Modules Stable
- Variable and Scope Stable
- Mutation Stable
fmtPackage Stable- Condition and Loops Stable
- Functions Stable
- Error Handling Stable
- File Handling Stable
- Pointers Stable
- Structs and Custom Types Stable
- Interfaces Stable
- Array, Slices, and Maps Stable
- Goroutines Stable
- Introduction Stable
- Wait Groups Stable
- Mutex Stable
- Channels Stable
- Tips & Tricks Stable
- Python Stable
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 Stable
- 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.