System Basics
Operating System Concepts
Processes and Threads
- Process vs thread
- Process scheduling
- Context switching
- Inter-process communication (IPC)
- Thread synchronization
Memory Management
- Virtual memory
- Paging and segmentation
- Memory allocation
- Garbage collection
- Memory leaks
File Systems
- File system organization
- File operations
- Directory structure
- Permissions and access control
Memory Management
Concepts
- Stack vs heap
- Static vs dynamic allocation
- Memory fragmentation
- Garbage collection algorithms
- Reference counting
- Mark and sweep
Python-Specific
- Python memory management
- Reference counting in Python
- Garbage collector
- Memory profiling
Networking Basics
Network Layers
- OSI model
- TCP/IP model
- Application layer protocols (HTTP, HTTPS)
- Transport layer (TCP, UDP)
- Network layer (IP)
Key Concepts
- IP addresses and ports
- DNS resolution
- HTTP methods (GET, POST, PUT, DELETE)
- RESTful APIs
- WebSockets
Databases Intro
Database Types
- Relational databases (SQL)
- NoSQL databases
- Key-value stores
- Document databases
- Graph databases
SQL Basics
- SELECT, INSERT, UPDATE, DELETE
- JOINs (INNER, LEFT, RIGHT, FULL)
- Aggregations (GROUP BY, HAVING)
- Indexes
- Transactions and ACID properties
Database Design
- Normalization
- Primary keys and foreign keys
- Relationships (one-to-one, one-to-many, many-to-many)
- Database indexing
Interview Questions
- What is the difference between a process and a thread?
- Explain virtual memory and why it's useful.
- What is the difference between TCP and UDP?
- Explain ACID properties in databases.
- When would you use SQL vs NoSQL databases?
Coding Practice
- Write code to demonstrate process/thread creation.
- Implement a simple HTTP client.
- Write SQL queries for common operations.
- Design a database schema for a given problem.
- Profile memory usage of a Python program.
Resources
- "Operating System Concepts" by Silberschatz, Galvin, and Gagne
- "Computer Networks" by Tanenbaum
- SQL Tutorial: https://www.w3schools.com/sql/
- Python Memory Management: https://docs.python.org/3/c-api/memory.html