Thanks to visit codestin.com
Credit goes to github.com

Skip to content

This repository is a comprehensive resource designed for individuals preparing for technical interviews, system design discussions, and coding challenges. It is particularly useful for roles such as Software Engineers, Site Reliability Engineers (SREs), and DevOps professionals.

License

Notifications You must be signed in to change notification settings

akshit7165/DSA-System-Design

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

DSA and System Design Repository

Overview

This repository is a comprehensive resource designed for individuals preparing for technical interviews, system design discussions, and coding challenges. It is particularly useful for roles such as Software Engineers, Site Reliability Engineers (SREs), and DevOps professionals.

Structure

The repository is organized into two main sections:

1. DSA (Data Structures and Algorithms)

  • Purpose: To build and strengthen problem-solving skills through coding challenges and algorithmic techniques.
  • Contents:
    • Algo-Techniques/: Techniques like Binary Search, Sliding Window, etc.
    • Basics/: Foundational concepts in data structures and algorithms.
    • Blind-75/: A curated list of 75 essential coding problems.
    • Building-Muscle-Memory/: Sets of problems to practice repeatedly.
    • LC150/: Problems categorized for LeetCode 150.
    • SRE-Questions/: DSA questions tailored for SRE roles.
    • Cheat Sheets: Quick reference guides for time-space complexity and Python data structures.

2. System-Design

  • Purpose: To prepare for system design interviews and understand architectural patterns.
  • Contents:
    • Basics/: Foundational concepts in system design.
    • CheatSheets/: Quick reference guides for system design topics.
    • DevOps-SRE/: Topics like Docker, Kubernetes, Terraform, and scripting.
    • Interview-Questions/: Common system design and DevOps interview questions.
    • Networking/: Topics like DNS, CORS, and TCP handshake.
    • RoadMap/: A structured roadmap for mastering system design.
    • System-Design-Layer-Template/: Templates and guides for designing scalable systems.
    • System_Design_Runbook_SRE.md: A runbook for SRE-specific system design.

How to Use

  1. For DSA Preparation:

    • Start with the Basics/ folder to build foundational knowledge.
    • Progress to Algo-Techniques/ and Blind-75/ for targeted problem-solving.
    • Use the cheat sheets for quick revision before interviews.
  2. For System Design Preparation:

    • Begin with the Basics/ folder to understand core concepts.
    • Explore RoadMap/ for a structured learning path.
    • Use System-Design-Layer-Template/ for hands-on practice with design templates.
    • Refer to DevOps-SRE/ for tools and technologies like Docker and Kubernetes.
  3. For SRE and DevOps Roles:

    • Focus on DevOps-SRE/ and SRE-Questions/ for role-specific preparation.
    • Use Networking/ and System_Design_Runbook_SRE.md for advanced topics.

Contribution

We welcome contributions from everyone! Follow these simple steps to get started:

  1. Fork the Repository:

    • Click the "Fork" button at the top-right corner of this repository to create your own copy.
  2. Clone Your Fork:

    • Use the following command to clone your forked repository to your local machine:
      git clone https://github.com/<your-username>/DSA-System-Design.git
  3. Create a New Branch:

    • Always create a new branch for your changes to keep your work organized:
      git checkout -b your-branch-name
  4. Make Your Changes:

    • Add new topics, improve existing content, or fix any issues.
  5. Commit Your Changes:

    • After making changes, commit them with a clear message:
      git add .
      git commit -m "Your descriptive commit message"
  6. Push Your Changes:

    • Push your changes to your forked repository:
      git push origin your-branch-name
  7. Create a Pull Request:

    • Go to the original repository and click on "Pull Requests".
    • Click "New Pull Request" and select your branch to submit your changes for review.
  8. Collaborate:

    • Work with the maintainers to review and refine your changes if needed.

Thank you for contributing and helping improve this repository!

About

This repository is a comprehensive resource designed for individuals preparing for technical interviews, system design discussions, and coding challenges. It is particularly useful for roles such as Software Engineers, Site Reliability Engineers (SREs), and DevOps professionals.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published