+
+
+
+ Fundamental
+ Object-Oriented Programming
+ Learn the principles of OOP: encapsulation, inheritance, polymorphism, and abstraction.
+ Key Concepts: Classes/ObjectsDifficulty: BeginnerTime: 2-3 weeks
+
+ Read more »
+
+ Object-Oriented Programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The four main principles are:
+
+ - Encapsulation: Bundling data and methods that operate on that data within one unit
+ - Inheritance: Mechanism where one class acquires the properties of another class
+ - Polymorphism: Ability of an object to take on many forms
+ - Abstraction: Hiding complex implementation details and showing only essential features
+
+ Practice: Implement a simple class hierarchy with inheritance and polymorphism.
+
+
+
+
+
+ Essential
+ Database Management Systems
+ Learn about database design, SQL, normalization, transactions, and more.
+ Key Concepts: SQL, NormalizationDifficulty: IntermediateTime: 3-4 weeks
+
+ Read more »
+
+ A Database Management System (DBMS) is software for storing and retrieving users' data while considering appropriate security measures. Key concepts include:
+
+ - Relational Model: Data organized into tables (relations) with rows and columns
+ - SQL: Standard language for relational database management systems
+ - Normalization: Process of organizing data to reduce redundancy
+ - ACID Properties: Atomicity, Consistency, Isolation, Durability for transactions
+ - Indexing: Technique to improve the speed of data retrieval operations
+
+ Practice: Design a normalized database schema for a library management system.
+
+
+
+
+
+ Core
+ Operating Systems
+ Understand processes, threads, memory management, file systems, and more.
+ Key Concepts: Processes, MemoryDifficulty: IntermediateTime: 4-5 weeks
+
+ Read more »
+
+ An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Key topics include:
+
+ - Process Management: Process scheduling, synchronization, and communication
+ - Memory Management: Paging, segmentation, virtual memory
+ - File Systems: Organization and management of data on storage devices
+ - Deadlocks: Detection, prevention, and avoidance strategies
+ - I/O Systems: Management of input/output devices
+
+ Practice: Implement a simple CPU scheduling algorithm simulator (e.g., Round Robin, SJF).
+
+
+
+
+
+ Core
+ Computer Networks
+ Learn about network protocols, OSI model, TCP/IP, routing, and network security.
+ Key Concepts: TCP/IP, ProtocolsDifficulty: IntermediateTime: 4-5 weeks
+
+ Read more »
+
+ Computer networking refers to interconnected computing devices that can exchange data and share resources with each other. Key concepts include:
+
+ - OSI Model: 7-layer architecture for understanding network interactions
+ - TCP/IP Protocol Suite: Foundation of modern internet communication
+ - Routing Algorithms: How data finds its path across networks
+ - Network Security: Encryption, firewalls, VPNs, and security protocols
+ - Wireless Networks: WiFi, Bluetooth, and mobile networks
+
+ Practice: Use Wireshark to analyze network packets and understand protocols in action.
+
+
+
+
+
+ Advanced
+ System Design
+ Learn to design scalable, reliable, and efficient systems.
+ Key Concepts: Scalability, APIsDifficulty: AdvancedTime: 5-6 weeks
+
+ Read more »
+
+ System design is the process of defining the architecture, components, modules, interfaces, and data for a system to satisfy specified requirements. Key concepts include:
+
+ - Load Balancing: Distributing network traffic across multiple servers
+ - Caching: Storing frequently accessed data in memory for faster retrieval
+ - Database Scaling: Vertical and horizontal scaling strategies
+ - Microservices Architecture: Designing systems as independently deployable services
+ - CAP Theorem: Consistency, Availability, Partition tolerance trade-offs
+
+ Practice: Design a URL shortening service like TinyURL considering scalability and reliability.
+
+
+
+
+
+ Professional
+ Software Engineering
+ Learn about software development methodologies, testing, and project management.
+ Key Concepts: Agile, TestingDifficulty: IntermediateTime: 3-4 weeks
+
+ Read more »
+
+ Software engineering is the systematic application of engineering approaches to the development of software. Key concepts include:
+
+ - Development Lifecycle: Waterfall, Agile, Scrum, and other methodologies
+ - Requirements Engineering: Eliciting, analyzing, and validating software requirements
+ - Software Testing: Unit testing, integration testing, system testing
+ - Version Control: Git and other tools for managing code changes
+ - CI/CD: Continuous Integration and Continuous Deployment practices
+
+ Practice: Set up a CI/CD pipeline for a simple web application using GitHub Actions.
+
+
+
+
+
+
+