{"id":5768,"date":"2024-03-06T23:00:59","date_gmt":"2024-03-06T17:30:59","guid":{"rendered":"https:\/\/www.scaler.com\/blog\/?p=5768"},"modified":"2026-06-07T14:12:58","modified_gmt":"2026-06-07T08:42:58","slug":"dsa-roadmap","status":"publish","type":"post","link":"https:\/\/www.scaler.com\/blog\/dsa-roadmap\/","title":{"rendered":"DSA Roadmap: Learn Data Structures and Algorithms [2026]"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Master DSA in 2026 with our comprehensive Data Structures and Algorithms roadmap! Get step-by-step guidance, expert tips, and essential resources to elevate your coding skills.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you&#8217;re dreaming of becoming a software engineer, the first thing you&#8217;ll hear from every coder is:<strong> &#8220;Start with DSA.&#8221; <\/strong>The DSA roadmap is the key to excelling in problem-solving and building a strong foundation for coding interviews. Whether you&#8217;re aiming for FAANG, startups, or top service companies, a solid understanding of data structures and algorithms can open countless doors.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">According to<a href=\"https:\/\/www.glassdoor.co.in\/Community\/referral-and-opportunities\/is-dsa-important-for-a-job-switch-or-developing-a-skill-i-should-go-with-learning-dsa-or-improving-my-skills-as-a-java-full\" target=\"_blank\" rel=\"noopener\"> Glassdoor<\/a> reports, demand for data structures and algorithms (DSA) skills in tech jobs is significantly high, especially at product-based companies, where proficiency is considered a hallmark of a good software developer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This data structures and algorithms roadmap for beginners will help you learn DSA from scratch, understand concepts step-by-step, and prepare effectively for interviews in 2026.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We understand how tricky it gets to prepare. From coding basics to advanced algorithms, this DSA roadmap walks you through everything you need to know, including how to practice DSA daily and ace those tricky technical interviews.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"what-is-dsa-and-why-is-it-important\"><\/span><strong>What is DSA and Why is it Important?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before getting into the details of the DSA roadmap 2026, let&#8217;s quickly understand what DSA actually means. DSA stands for Data Structures and Algorithms.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Data structures focus on how data is stored and organized for efficient access and modification. Algorithms are step-by-step procedures for processing this data to solve specific problems.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Why is DSA so important?<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Because every time you use a search engine, scroll through social media, or even run an app on your phone, DSA is at work behind the scenes. Efficient data structures and algorithms make these systems fast, scalable, and optimized.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For coders, a strong grasp of DSA improves logical thinking, helps you write efficient code, and prepares you for real-world problem-solving. That&#8217;s why every top company tests DSA skills during coding interviews.<\/p>\n\n\n\n<!DOCTYPE html>\n<html>\n  <head>\n    <title>Hello World!<\/title>\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Lato:wght@400;600;700&#038;display=swap\" rel=\"stylesheet\">\n    <style>\n      .iitr_banner_container {\n        font-family: lato;\n        display: flex;\n        flex-direction: row;\n        justify-content: space-between;\n        border-radius: 16px;\n        background: linear-gradient(88deg, #19000F 24.45%, #66003F 83.33%);\n        position: relative;\n\n        @media (max-width: 768px) {\n          min-height: 450px;\n          overflow: hidden;\n          flex-direction: column;\n        }\n      }\n      .iitr_banner_content {\n        display: flex;\n        flex-direction: column;\n        align-items: flex-start;\n        justify-content: center;\n        padding: 20px;\n        max-width: 50%;\n\n        @media (max-width: 768px) {\n          max-width: 100%;\n        }\n      }\n      .iitr_banner_title {\n        font-size: 24px;\n        font-weight: bold;\n        color: #FFFFFF;\n\n        @media (max-width: 768px) {\n          font-size: 20px;\n        }\n      }\n      .iitr_banner_title_highlight {\n        color: #FF0071;\n      }\n      .iitr_banner_subtitle {\n        font-size: 14px;\n        color: #FFFFFF;\n        margin: 10px 0;\n      }\n      .iitr_banner_btn {\n        display: flex;\n        justify-content: center;\n        align-items: center;\n        padding: 8px 48px;\n        background-color: #F8F9F9;\n        border-radius: 8px;\n        border: 1px solid #E3E8E8;\n        font-size: 1.4rem;\n        font-weight: 600;\n        color: #0D3231;\n        text-decoration: none;\n        margin-top: 16px;\n\n        @media (max-width: 768px) {\n          padding: 8px 32px;\n        }\n      }\n      .iitr_banner_image {\n        position: absolute;\n        bottom: 0;\n        right: 0;\n\n        @media (max-width: 768px) {\n          right: auto;\n          object-fit: cover;\n          min-width: 100%\n        }\n      }\n      .iitr_banner_image_logo {\n        margin-bottom: 16px;\n        \n        @media (max-width: 768px) {\n          width: 240px;\n        }\n      }\n\n      \/* Responsive visibility utilities *\/\n      .show-in-mobile {\n        display: none;\n      }\n      .hide-in-mobile {\n        display: block;\n      }\n\n      \/* Mobile breakpoint (768px and below) *\/\n      @media (max-width: 768px) {\n        .show-in-mobile {\n          display: block;\n        }\n        .hide-in-mobile {\n          display: none;\n        }\n      }\n    <\/style>\n  <\/head>\n  <body>\n      <div class=\"iitr_banner_container\">\n        <div class=\"iitr_banner_content\">\n          <img decoding=\"async\" src=\"https:\/\/d2beiqkhq929f0.cloudfront.net\/public_assets\/assets\/000\/176\/281\/original\/Frame_1430102419.svg?1769058073\" class=\"iitr_banner_image_logo\" \/>\n          <div class=\"iitr_banner_title\">\n            AI Engineering Course Advanced Certification by \n            <span class=\"iitr_banner_title_highlight\">\n              IIT-Roorkee CEC\n            <\/span>\n          <\/div>\n          <div class=\"iitr_banner_subtitle\">\n            A hands on AI engineering program covering Machine Learning, Generative AI, and LLMs &#8211; designed for working professionals &#038; delivered by IIT Roorkee in collaboration with Scaler.\n          <\/div>\n          <a class=\"iitr_banner_btn\" href=\"#\" id=\"iitr_banner_btn\">Enrol Now<\/a>\n        <\/div>\n        <!-- Desktop Image -->\n        <img decoding=\"async\" class=\"iitr_banner_image hide-in-mobile\" src=\"https:\/\/d2beiqkhq929f0.cloudfront.net\/public_assets\/assets\/000\/176\/282\/original\/iitr_2.svg?1769058132\" \/>\n        <!-- Mobile Image -->\n        <img decoding=\"async\" class=\"iitr_banner_image show-in-mobile\" src=\"https:\/\/d2beiqkhq929f0.cloudfront.net\/public_assets\/assets\/000\/176\/283\/original\/iitr_2_%281%29.svg?1769059469\" \/>\n      <\/div>\n      <script>\n        document.addEventListener(\"DOMContentLoaded\", () => {\n          const pathParts = location.pathname.split(\"\/\").filter(Boolean);\n          const currentSlug = pathParts.length > 0 ? pathParts[pathParts.length - 1] : \"homepage\";\n          const url = `https:\/\/www.scaler.com\/iit-roorkee-advanced-ai-engineering-course?utm_source=blog&utm_medium=iit_roorkee&utm_content=${currentSlug}`;\n          const btns = document.querySelectorAll(\".iitr_banner_btn\");\n          btns.forEach(btn => {\n            btn.href = url;\n          });\n        });\n      <\/script>\n  <\/body>\n<\/html>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"step-by-step-dsa-roadmap\"><\/span><strong>Step-by-Step DSA Roadmap<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This data structures and algorithms roadmap is designed to help you learn DSA from scratch, one concept at a time, so you can move confidently from the basics to advanced problem-solving and interview preparation.<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1984\" style=\"aspect-ratio: 1120 \/ 1984;\" width=\"1120\" autoplay controls muted src=\"https:\/\/scaler-blog-prod-wp-content.s3.ap-south-1.amazonaws.com\/wp-content\/uploads\/2024\/03\/08104852\/DSA-Roadmap-Mar-19-1.mp4\" playsinline><\/video><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 1: Learn a Programming Language (Weeks 1-2)<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">To begin, pick one programming language: C++, Java, or Python. For beginners, Python is the most beginner-friendly, while C++ is preferred for competitive programming and Java is widely used in enterprise interviews.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Focus on mastering these basics:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Variables, data types, and operators<\/li>\n\n\n\n<li>Loops and conditionals<\/li>\n\n\n\n<li>Functions and recursion<\/li>\n\n\n\n<li>Arrays and strings<\/li>\n\n\n\n<li>Object-Oriented Programming (OOP) concepts<\/li>\n\n\n\n<li>Basic memory management<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Understanding your chosen programming language deeply will make your DSA journey much smoother.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Which language should you pick?<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>Python: Best for beginners, readable syntax, quick to write<\/em><\/li>\n\n\n\n<li><em>Java: Industry standard, strongly typed, great for FAANG interviews<\/em><\/li>\n\n\n\n<li><em>C++: Fastest execution, essential for competitive programming<\/em><br><\/li>\n<\/ul>\n\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\" \/>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n\n    <link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/swiper@11\/swiper-bundle.min.css\" \/>\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/swiper@11\/swiper-bundle.min.js\"><\/script>\n\n    <style>\n      :root {\n        --scaler-primary: #1a56db;\n        --scaler-primary-dark: #1e429f;\n        --scaler-primary-light: #e1effe;\n        --scaler-accent: #f97316;\n        --scaler-bg: #f8fafc;\n        --scaler-card-bg: #ffffff;\n        --scaler-text-primary: #0f172a;\n        --scaler-text-secondary: #64748b;\n        --scaler-text-muted: #94a3b8;\n        --scaler-border: #e2e8f0;\n        --scaler-shadow: 0 4px 6px -1px rgb(0 0 0 \/ 0.07), 0 2px 4px -2px rgb(0 0 0 \/ 0.07);\n        --scaler-shadow-lg: 0 20px 25px -5px rgb(0 0 0 \/ 0.08), 0 8px 10px -6px rgb(0 0 0 \/ 0.08);\n        --scaler-radius: 0;\n        --scaler-radius-sm: 0;\n      }\n\n      * { box-sizing: border-box; }\n\n      .scaler-events-carousel {\n        font-family: \"DM Sans\", system-ui, sans-serif;\n        padding: 60px 24px 80px;\n        position: relative;\n        overflow: hidden;\n        width: 100%; \/* Ensure container is full width *\/\n      }\n\n      .scaler-events-carousel::before {\n        content: \"\";\n        position: absolute;\n        top: 0; left: 0; right: 0; bottom: 0;\n        background-image: radial-gradient(circle at 1px 1px, var(--scaler-border) 1px, transparent 0);\n        background-size: 40px 40px;\n        opacity: 0.5;\n        pointer-events: none;\n      }\n\n      .scaler-events-carousel__inner {\n        max-width: 1280px;\n        margin: 0 auto;\n        position: relative;\n        z-index: 1;\n        width: 100%;\n      }\n\n      \/* Header Section *\/\n      .scaler-events-header {\n        text-align: center;\n        margin-bottom: 48px;\n      }\n\n      .scaler-events-header__badge {\n        display: inline-flex;\n        align-items: center;\n        gap: 6px;\n        background: var(--scaler-primary-light);\n        color: var(--scaler-primary);\n        font-size: 12px;\n        font-weight: 600;\n        text-transform: uppercase;\n        letter-spacing: 0.05em;\n        padding: 6px 14px;\n        border-radius: 100px;\n        margin-bottom: 16px;\n      }\n\n      .scaler-events-header__badge::before {\n        content: \"\";\n        width: 6px;\n        height: 6px;\n        background: var(--scaler-accent);\n        border-radius: 50%;\n        animation: pulse 2s ease-in-out infinite;\n      }\n\n      @keyframes pulse {\n        0%, 100% { opacity: 1; transform: scale(1); }\n        50% { opacity: 0.6; transform: scale(1.2); }\n      }\n\n      .scaler-events-header__title {\n        font-size: clamp(28px, 5vw, 42px);\n        font-weight: 700;\n        color: var(--scaler-text-primary);\n        margin: 0 0 12px;\n        line-height: 1.2;\n      }\n\n      .scaler-events-header__subtitle {\n        font-size: 16px;\n        color: var(--scaler-text-secondary);\n        margin: 0;\n        max-width: 500px;\n        margin-inline: auto;\n        line-height: 1.6;\n      }\n\n      \/* Swiper Container *\/\n      .scaler-events-carousel .swiper {\n        padding: 20px 4px 60px;\n        margin: 0 -4px;\n        width: 100%;\n      }\n\n      \/* FIX: FORCE WIDTH ON SLIDES *\/\n      .scaler-events-carousel .swiper-slide {\n        height: auto;\n        width: 100%; \/* Fallback *\/\n        display: flex; \/* Ensure inner card stretches *\/\n      }\n\n      \/* Event Card *\/\n      .scaler-event-card {\n        background: var(--scaler-card-bg);\n        border-radius: var(--scaler-radius);\n        box-shadow: var(--scaler-shadow);\n        overflow: hidden;\n        display: flex;\n        flex-direction: column;\n        height: 100%;\n        width: 100%; \/* FIX: Ensure card fills the slide *\/\n        border: 1px solid var(--scaler-border);\n        transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n      }\n\n      .scaler-event-card:hover {\n        transform: translateY(-8px);\n        box-shadow: var(--scaler-shadow-lg);\n      }\n\n      .scaler-event-card__image-wrapper {\n        position: relative;\n        overflow: hidden;\n        padding: unset;\n        aspect-ratio: 3.15;\n        background: linear-gradient(135deg, var(--scaler-primary-light) 0%, var(--scaler-bg) 100%);\n        width: 100%;\n      }\n\n      .scaler-event-card__image {\n        position: absolute;\n        top: 0; left: 0;\n        width: 100%; height: 100%;\n        object-fit: cover;\n        transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);\n      }\n\n      .scaler-event-card:hover .scaler-event-card__image {\n        transform: scale(1.05);\n      }\n\n      .scaler-event-card__live-badge {\n        position: absolute;\n        top: 12px; left: 12px;\n        display: inline-flex;\n        align-items: center;\n        gap: 6px;\n        background: rgba(239, 68, 68, 0.95);\n        color: #fff;\n        font-size: 11px;\n        font-weight: 600;\n        text-transform: uppercase;\n        letter-spacing: 0.04em;\n        padding: 5px 10px;\n        border-radius: 6px;\n        backdrop-filter: blur(4px);\n        z-index: 2;\n      }\n\n      .scaler-event-card__live-badge::before {\n        content: \"\";\n        width: 6px; height: 6px;\n        background: #fff;\n        border-radius: 50%;\n        animation: pulse 1.5s ease-in-out infinite;\n      }\n\n      .scaler-event-card__content {\n        padding: 20px;\n        display: flex;\n        flex-direction: column;\n        flex-grow: 1;\n      }\n\n      .scaler-event-card__title {\n        font-size: 17px;\n        font-weight: 600;\n        min-height: 2.5rem;\n        color: var(--scaler-text-primary);\n        margin: 0 0 14px;\n        line-height: 1.4;\n        display: -webkit-box;\n        -webkit-line-clamp: 2;\n        -webkit-box-orient: vertical;\n        overflow: hidden;\n      }\n\n      .scaler-event-card__meta {\n        display: flex;\n        flex-direction: column;\n        gap: 8px;\n        margin-bottom: 20px;\n      }\n\n      .scaler-event-card__meta-item {\n        display: flex;\n        align-items: center;\n        gap: 10px;\n        font-size: 14px;\n        color: var(--scaler-text-secondary);\n      }\n\n      .scaler-event-card__meta-icon {\n        width: 32px; height: 32px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        background: var(--scaler-bg);\n        border-radius: var(--scaler-radius-sm);\n        color: var(--scaler-primary);\n        flex-shrink: 0;\n      }\n\n      .scaler-event-card__meta-icon svg {\n        width: 16px; height: 16px;\n      }\n\n      .scaler-event-card__meta-label {\n        font-weight: 500;\n        color: var(--scaler-text-primary);\n      }\n\n      .scaler-event-card__spacer {\n        flex-grow: 1;\n        min-height: 4px;\n      }\n\n      .scaler-event-card__cta {\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        gap: 8px;\n        width: 100%;\n        padding: 14px 20px;\n        background: var(--scaler-primary);\n        color: #fff;\n        font-style: normal;\n        font-size: 14px;\n        font-weight: 600;\n        text-decoration: none;\n        border: none;\n        border-radius: var(--scaler-radius-sm);\n        cursor: pointer;\n        transition: background 0.2s ease, transform 0.15s ease;\n      }\n\n      .scaler-event-card__cta:hover {\n        background: var(--scaler-primary-dark);\n      }\n\n      .scaler-event-card__cta:active {\n        transform: scale(0.98);\n      }\n\n      .scaler-event-card__cta svg {\n        width: 16px; height: 16px;\n        transition: transform 0.2s ease;\n      }\n\n      .scaler-event-card__cta:hover svg {\n        transform: translateX(3px);\n      }\n\n      \/* Navigation *\/\n      .scaler-events-nav {\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        gap: 16px;\n        margin-top: 32px;\n        padding: unset;\n      }\n\n      .scaler-events-nav__btn {\n        width: 48px; height: 48px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        background: var(--scaler-card-bg);\n        border: 1px solid var(--scaler-border);\n        cursor: pointer;\n        transition: all 0.2s ease;\n        color: var(--scaler-text-primary);\n        padding: unset;\n      }\n\n      .scaler-events-nav__btn:hover:not(.swiper-button-disabled) {\n        background: var(--scaler-primary);\n        border-color: var(--scaler-primary);\n        color: #fff;\n      }\n\n      .scaler-events-nav__btn.swiper-button-disabled {\n        opacity: 0.4;\n        cursor: not-allowed;\n      }\n\n      .scaler-events-nav__btn svg {\n        width: 20px; height: 20px;\n      }\n\n      \/* Pagination *\/\n      .scaler-events-pagination {\n        display: flex;\n        align-items: center;\n        gap: 8px;\n      }\n\n      .scaler-events-carousel .swiper-pagination-bullet {\n        width: 8px; height: 8px;\n        background: var(--scaler-border);\n        opacity: 1;\n        transition: all 0.3s ease;\n      }\n\n      .scaler-events-carousel .swiper-pagination-bullet-active {\n        width: 24px;\n        border-radius: 4px;\n        background: var(--scaler-primary);\n      }\n\n      .scaler-events-carousel .swiper-button-prev,\n      .scaler-events-carousel .swiper-button-next {\n        display: none;\n      }\n\n      \/* Skeleton & Empty States *\/\n      .scaler-event-card--skeleton { pointer-events: none; }\n      .scaler-event-card--skeleton .scaler-event-card__image-wrapper,\n      .scaler-event-card--skeleton .scaler-event-card__title,\n      .scaler-event-card--skeleton .scaler-event-card__meta-item,\n      .scaler-event-card--skeleton .scaler-event-card__cta {\n        background: linear-gradient(90deg, var(--scaler-border) 25%, var(--scaler-bg) 50%, var(--scaler-border) 75%);\n        background-size: 200% 100%;\n        animation: shimmer 1.5s infinite;\n        color: transparent !important;\n        border-radius: 4px;\n      }\n      .scaler-event-card--skeleton .scaler-event-card__image { display: none; }\n\n      @keyframes shimmer {\n        0% { background-position: 200% 0; }\n        100% { background-position: -200% 0; }\n      }\n\n      .scaler-events-empty {\n        text-align: center;\n        padding: 60px 20px;\n        color: var(--scaler-text-secondary);\n      }\n\n      .scaler-events-empty__icon {\n        width: 64px; height: 64px;\n        margin: 0 auto 16px;\n        color: var(--scaler-text-muted);\n      }\n\n      .scaler-events-empty__title {\n        font-size: 18px;\n        font-weight: 600;\n        color: var(--scaler-text-primary);\n        margin: 0 0 8px;\n      }\n\n      @media (max-width: 1024px) {\n        .scaler-events-carousel { padding: 48px 20px 60px; }\n      }\n\n      @media (max-width: 768px) {\n        .scaler-events-carousel { padding: 40px 16px 50px; }\n        .scaler-events-header { margin-bottom: 32px; }\n        .scaler-events-header__subtitle { font-size: 15px; }\n        .scaler-event-card__content { padding: 16px; }\n        .scaler-event-card__title { font-size: 16px; }\n        .scaler-events-nav__btn { width: 44px; height: 44px; }\n      }\n\n      @media (max-width: 480px) {\n        .scaler-events-carousel { padding: 32px 12px 40px; }\n        .scaler-events-header__badge { font-size: 11px; padding: 5px 12px; }\n        .scaler-event-card__meta-item { font-size: 13px; }\n        .scaler-event-card__meta-icon { width: 28px; height: 28px; }\n        .scaler-event-card__cta { padding: 12px 16px; font-size: 13px; }\n      }\n    <\/style>\n<\/head>\n\n<body>\n    <div class=\"scaler-events-carousel js-scaler-carousel\">\n      \n      <template class=\"js-event-card-template\">\n        <div class=\"swiper-slide\">\n          <article class=\"scaler-event-card\">\n            <div class=\"scaler-event-card__image-wrapper\">\n              <span class=\"scaler-event-card__live-badge\" style=\"display: none;\">Live Now<\/span>\n              <img decoding=\"async\" src=\"\" alt=\"\" class=\"scaler-event-card__image\" loading=\"lazy\" \/>\n            <\/div>\n            \n            <div class=\"scaler-event-card__content\">\n              <h3 class=\"scaler-event-card__title\"><\/h3>\n              \n              <div class=\"scaler-event-card__meta\">\n                <div class=\"scaler-event-card__meta-item\">\n                  <div class=\"scaler-event-card__meta-icon\">\n                    <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\"><\/path><\/svg>\n                  <\/div>\n                  <span class=\"scaler-event-card__meta-label js-event-date\"><\/span>\n                <\/div>\n                \n                <div class=\"scaler-event-card__meta-item\">\n                  <div class=\"scaler-event-card__meta-icon\">\n                    <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z\"><\/path><\/svg>\n                  <\/div>\n                  <span class=\"scaler-event-card__meta-label js-event-speaker\"><\/span>\n                <\/div>\n              <\/div>\n\n              <div class=\"scaler-event-card__spacer\"><\/div>\n\n              <a href=\"#\" class=\"scaler-event-card__cta\" style=\"color: white !important; font-style: normal\">\n                Register Now\n                <svg fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M17 8l4 4m0 0l-4 4m4-4H3\"><\/path><\/svg>\n              <\/a>\n            <\/div>\n          <\/article>\n        <\/div>\n      <\/template>\n\n      <div class=\"scaler-events-carousel__inner\">\n        <header class=\"scaler-events-header\">\n          <span class=\"scaler-events-header__badge\">Live &#038; Upcoming<\/span>\n          <h2 class=\"scaler-events-header__title\"><span class=\"ez-toc-section\" id=\"scaler-masterclasses\"><\/span>Scaler Masterclasses<span class=\"ez-toc-section-end\"><\/span><\/h2>\n          <p class=\"scaler-events-header__subtitle\">\n            Learn from industry experts and accelerate your career with hands-on, interactive sessions.\n          <\/p>\n        <\/header>\n\n        <div class=\"swiper scaler-event-swiper\">\n          <div class=\"swiper-wrapper scaler-events-wrapper\"><\/div>\n          <div class=\"swiper-pagination scaler-events-pagination\"><\/div>\n        <\/div>\n\n        <nav class=\"scaler-events-nav\">\n          <button class=\"scaler-events-nav__btn scaler-nav-prev\" aria-label=\"Previous slide\">\n            <svg fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n              <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 19l-7-7 7-7\" \/>\n            <\/svg>\n          <\/button>\n          <button class=\"scaler-events-nav__btn scaler-nav-next\" aria-label=\"Next slide\">\n            <svg fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n              <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5l7 7-7 7\" \/>\n            <\/svg>\n          <\/button>\n        <\/nav>\n      <\/div>\n    <\/div>\n\n    <script>\n    document.addEventListener(\"DOMContentLoaded\", () => {\n      \n      const carouselInstances = document.querySelectorAll('.js-scaler-carousel');\n\n      carouselInstances.forEach(container => {\n          \n          if(container.dataset.initialized === \"true\") return;\n          container.dataset.initialized = \"true\";\n\n          const swiperElement = container.querySelector(\".scaler-event-swiper\");\n          const swiperWrapper = container.querySelector(\".scaler-events-wrapper\");\n          const template = container.querySelector(\".js-event-card-template\");\n          const nextBtn = container.querySelector(\".scaler-nav-next\");\n          const prevBtn = container.querySelector(\".scaler-nav-prev\");\n          const paginationEl = container.querySelector(\".scaler-events-pagination\");\n\n          if (!swiperWrapper || !template) {\n             console.error(\"Scaler Carousel: Missing required elements inside container\");\n             return;\n          }\n\n          \/\/ FIX: Added 'observer' and 'observeParents' to ensure correct width calculation\n          const swiper = new Swiper(swiperElement, {\n            slidesPerView: 1,\n            spaceBetween: 24,\n            grabCursor: true,\n            observer: true, \/\/ IMPORTANT: Watch for DOM changes\n            observeParents: true, \/\/ IMPORTANT: Watch for parent container changes\n            pagination: { \n                el: paginationEl, \n                clickable: true, \n                dynamicBullets: true \n            },\n            navigation: { \n                nextEl: nextBtn, \n                prevEl: prevBtn \n            },\n            breakpoints: {\n              640: { slidesPerView: 2, spaceBetween: 20 },\n              1024: { slidesPerView: 2, spaceBetween: 24 },\n              1280: { slidesPerView: 2, spaceBetween: 32 },\n            },\n          });\n\n          function showSkeletons(count = 3) {\n            swiperWrapper.innerHTML = \"\";\n            for (let i = 0; i < count; i++) {\n              const clone = template.content.cloneNode(true);\n              const card = clone.querySelector(\".scaler-event-card\");\n              card.classList.add(\"scaler-event-card--skeleton\");\n              swiperWrapper.appendChild(clone);\n            }\n            swiper.update();\n          }\n\n          function renderEvents(events) {\n            swiperWrapper.innerHTML = \"\";\n       \n            if (events.length === 0) {\n              swiperWrapper.innerHTML = `<div class=\"scaler-events-empty\">No upcoming masterclasses found.<\/div>`;\n              return;\n            }\n\n            const pathParts = location.pathname.split(\"\/\").filter(Boolean);\n            const currentSlug = pathParts.length > 0 ? pathParts[pathParts.length - 1] : \"homepage\";\n       \n            events.forEach(event => {\n              const attr = event.attributes;\n              const clone = template.content.cloneNode(true);\n              \n              const img = clone.querySelector(\".scaler-event-card__image\");\n              const joinUrl = `\/event\/${attr.slug}\/?utm_source=blog&utm_medium=master_class&utm_content=${currentSlug}`;\n              \n              const eventImg =\n                attr.custom_data?.image ||\n                attr.custom_data?.banner_thumbnail ||\n                attr.image_url ||\n                \"https:\/\/images.unsplash.com\/photo-1540575467063-178a50c2df87?w=800&h=450&fit=crop\";\n              \n              img.src = eventImg;\n              img.alt = attr.title;\n              \n              const startDate = new Date(attr.start_time);\n              const formattedDate = startDate.toLocaleDateString(\"en-US\", {\n                weekday: \"short\",\n                month: \"short\",\n                day: \"numeric\",\n              });\n              const formattedTime = startDate.toLocaleTimeString(\"en-US\", {\n                hour: \"numeric\",\n                minute: \"2-digit\",\n                hour12: true,\n              });\n              \n              clone.querySelector(\".scaler-event-card__title\").textContent = attr.title;\n              clone.querySelector(\".js-event-date\").textContent = `${formattedDate} \u2022 ${formattedTime}`; \n              clone.querySelector(\".js-event-speaker\").textContent = attr.instructor_name;\n              clone.querySelector(\".scaler-event-card__cta\").href = joinUrl || \"#\";\n              \n              swiperWrapper.appendChild(clone);\n            });\n            \n            swiper.update();\n            swiper.slideTo(0);\n          }\n       \n          async function fetchEvents() {\n            try {\n              showSkeletons();\n              const res = await fetch(\n                \"https:\/\/www.scaler.com\/api\/v4\/events?event_type[]=company&distributor=scaler&type=upcoming&serializer_mode=L2&limit=8&program[]=software_development&program[]=data_science&program[]=devops&program[]=ai_ml\"\n              );\n              const json = await res.json();\n              const events = json.data || [];\n              renderEvents(events);\n            } catch (error) {\n              console.error(\"Failed to load events:\", error);\n              if(swiperWrapper) swiperWrapper.innerHTML = `<div class=\"scaler-events-empty\">Failed to load events.<\/div>`;\n            }\n          }\n       \n          fetchEvents();\n      });\n    });\n    <\/script>\n<\/body>\n<\/html>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 2: Master Time &amp; Space Complexity (Weeks 2-3)<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The next crucial step in this DSA roadmap is understanding Big O notation, which tells you how efficient your program is as input size grows.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Common Time Complexities (Best to Worst):<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><br>Notation<\/td><td>Name<\/td><td>Example<\/td><\/tr><tr><td>O(1)<\/td><td>Constant<\/td><td>Array access by index<\/td><\/tr><tr><td>O(log n)<\/td><td>Logarithmic<\/td><td>Binary search<\/td><\/tr><tr><td>O(n)<\/td><td>Linear<\/td><td>Finding max in array<\/td><\/tr><tr><td>O(n log n)<\/td><td>Log-linear<\/td><td>Merge sort, Quick sort<\/td><\/tr><tr><td>O(n\u00b2)<\/td><td>Quadratic<\/td><td>Bubble sort, nested loops<\/td><\/tr><tr><td>O(2^n)<\/td><td>Exponential<\/td><td>Recursive Fibonacci<\/td><\/tr><tr><td>O(n!)<\/td><td>Factorial<\/td><td>Permutations<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Understanding complexity helps you write optimized solutions \u2014 a skill highly valued in coding interviews. A solution that works on small inputs might fail completely on larger datasets if you ignore time and space complexity.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Learn more:<a href=\"https:\/\/www.scaler.com\/topics\/data-structures\/time-complexity-in-data-structure\/\"> Time Complexity in Data Structures<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 3: Core Data Structures (Weeks 4-7)<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Now we arrive at the heart of this DSA roadmap \u2014 the core data structures. Master each one thoroughly before moving ahead.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. Arrays &amp; Strings<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Arrays store elements in contiguous memory locations, allowing O(1) access by index. Strings are character arrays with special operations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Key Operations:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Access: O(1) | Search: O(n) | Insert\/Delete: O(n)<\/li>\n\n\n\n<li>Practice: Two Sum, Maximum Subarray, Reverse String, Valid Palindrome, Longest Common Prefix<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. Linked Lists<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Linked lists store elements as nodes connected by pointers, enabling efficient insertions and deletions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Types: Singly Linked, Doubly Linked, Circular Linked List<br>Key Operations: Insert\/Delete at head: O(1) | Search: O(n)<br>Practice: Reverse Linked List, Detect Cycle, Merge Two Sorted Lists, Remove Nth Node From End<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. Stacks &amp; Queues<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Stack (LIFO): Last In, First Out \u2014 used in recursion, undo operations, expression evaluation<\/li>\n\n\n\n<li>Queue (FIFO): First In, First Out \u2014 used in BFS, task scheduling, caching<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Practice: Valid Parentheses, Min Stack, Implement Queue Using Stacks, Sliding Window Maximum<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4. Hash Tables (HashMaps \/ HashSets)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hash tables provide O(1) average-time lookups, making them essential for frequency counting and fast data retrieval.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Practice: Two Sum, Group Anagrams, Longest Consecutive Sequence, Subarray Sum Equals K<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5. Trees &amp; Binary Trees<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Trees are hierarchical data structures. Binary trees have at most two children per node.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>Key Concepts:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Binary Search Trees (BST): Left &lt; Root &lt; Right<\/li>\n\n\n\n<li>Tree Traversals: Inorder, Preorder, Postorder, Level Order<\/li>\n\n\n\n<li>Height, Depth, Balance Factor<br>Practice: Maximum Depth, Validate BST, Lowest Common Ancestor, Binary Tree Level Order Traversal<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>6. Heaps &amp; Priority Queues<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Heaps are complete binary trees that maintain a specific ordering property.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Types: Min-Heap (smallest at root), Max-Heap (largest at root)<br>Practice: Kth Largest Element, Merge K Sorted Lists, Top K Frequent Elements, Median of Data Stream<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>7. Graphs<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Graphs model relationships between entities using nodes (vertices) and edges.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Key Algorithms: BFS, DFS, Dijkstra&#8217;s, Bellman-Ford, Floyd-Warshall, Topological Sort<br>Practice: Number of Islands, Course Schedule, Clone Graph, Word Ladder, Network Delay Time<\/p>\n\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\" \/>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n\n    <link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/swiper@11\/swiper-bundle.min.css\" \/>\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/swiper@11\/swiper-bundle.min.js\"><\/script>\n\n    <style>\n      :root {\n        --scaler-primary: #1a56db;\n        --scaler-primary-dark: #1e429f;\n        --scaler-primary-light: #e1effe;\n        --scaler-accent: #f97316;\n        --scaler-bg: #f8fafc;\n        --scaler-card-bg: #ffffff;\n        --scaler-text-primary: #0f172a;\n        --scaler-text-secondary: #64748b;\n        --scaler-text-muted: #94a3b8;\n        --scaler-border: #e2e8f0;\n        --scaler-shadow: 0 4px 6px -1px rgb(0 0 0 \/ 0.07), 0 2px 4px -2px rgb(0 0 0 \/ 0.07);\n        --scaler-shadow-lg: 0 20px 25px -5px rgb(0 0 0 \/ 0.08), 0 8px 10px -6px rgb(0 0 0 \/ 0.08);\n        --scaler-radius: 0;\n        --scaler-radius-sm: 0;\n      }\n\n      * { box-sizing: border-box; }\n\n      .scaler-events-carousel {\n        font-family: \"DM Sans\", system-ui, sans-serif;\n        padding: 60px 24px 80px;\n        position: relative;\n        overflow: hidden;\n        width: 100%; \/* Ensure container is full width *\/\n      }\n\n      .scaler-events-carousel::before {\n        content: \"\";\n        position: absolute;\n        top: 0; left: 0; right: 0; bottom: 0;\n        background-image: radial-gradient(circle at 1px 1px, var(--scaler-border) 1px, transparent 0);\n        background-size: 40px 40px;\n        opacity: 0.5;\n        pointer-events: none;\n      }\n\n      .scaler-events-carousel__inner {\n        max-width: 1280px;\n        margin: 0 auto;\n        position: relative;\n        z-index: 1;\n        width: 100%;\n      }\n\n      \/* Header Section *\/\n      .scaler-events-header {\n        text-align: center;\n        margin-bottom: 48px;\n      }\n\n      .scaler-events-header__badge {\n        display: inline-flex;\n        align-items: center;\n        gap: 6px;\n        background: var(--scaler-primary-light);\n        color: var(--scaler-primary);\n        font-size: 12px;\n        font-weight: 600;\n        text-transform: uppercase;\n        letter-spacing: 0.05em;\n        padding: 6px 14px;\n        border-radius: 100px;\n        margin-bottom: 16px;\n      }\n\n      .scaler-events-header__badge::before {\n        content: \"\";\n        width: 6px;\n        height: 6px;\n        background: var(--scaler-accent);\n        border-radius: 50%;\n        animation: pulse 2s ease-in-out infinite;\n      }\n\n      @keyframes pulse {\n        0%, 100% { opacity: 1; transform: scale(1); }\n        50% { opacity: 0.6; transform: scale(1.2); }\n      }\n\n      .scaler-events-header__title {\n        font-size: clamp(28px, 5vw, 42px);\n        font-weight: 700;\n        color: var(--scaler-text-primary);\n        margin: 0 0 12px;\n        line-height: 1.2;\n      }\n\n      .scaler-events-header__subtitle {\n        font-size: 16px;\n        color: var(--scaler-text-secondary);\n        margin: 0;\n        max-width: 500px;\n        margin-inline: auto;\n        line-height: 1.6;\n      }\n\n      \/* Swiper Container *\/\n      .scaler-events-carousel .swiper {\n        padding: 20px 4px 60px;\n        margin: 0 -4px;\n        width: 100%;\n      }\n\n      \/* FIX: FORCE WIDTH ON SLIDES *\/\n      .scaler-events-carousel .swiper-slide {\n        height: auto;\n        width: 100%; \/* Fallback *\/\n        display: flex; \/* Ensure inner card stretches *\/\n      }\n\n      \/* Event Card *\/\n      .scaler-event-card {\n        background: var(--scaler-card-bg);\n        border-radius: var(--scaler-radius);\n        box-shadow: var(--scaler-shadow);\n        overflow: hidden;\n        display: flex;\n        flex-direction: column;\n        height: 100%;\n        width: 100%; \/* FIX: Ensure card fills the slide *\/\n        border: 1px solid var(--scaler-border);\n        transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n      }\n\n      .scaler-event-card:hover {\n        transform: translateY(-8px);\n        box-shadow: var(--scaler-shadow-lg);\n      }\n\n      .scaler-event-card__image-wrapper {\n        position: relative;\n        overflow: hidden;\n        padding: unset;\n        aspect-ratio: 3.15;\n        background: linear-gradient(135deg, var(--scaler-primary-light) 0%, var(--scaler-bg) 100%);\n        width: 100%;\n      }\n\n      .scaler-event-card__image {\n        position: absolute;\n        top: 0; left: 0;\n        width: 100%; height: 100%;\n        object-fit: cover;\n        transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);\n      }\n\n      .scaler-event-card:hover .scaler-event-card__image {\n        transform: scale(1.05);\n      }\n\n      .scaler-event-card__live-badge {\n        position: absolute;\n        top: 12px; left: 12px;\n        display: inline-flex;\n        align-items: center;\n        gap: 6px;\n        background: rgba(239, 68, 68, 0.95);\n        color: #fff;\n        font-size: 11px;\n        font-weight: 600;\n        text-transform: uppercase;\n        letter-spacing: 0.04em;\n        padding: 5px 10px;\n        border-radius: 6px;\n        backdrop-filter: blur(4px);\n        z-index: 2;\n      }\n\n      .scaler-event-card__live-badge::before {\n        content: \"\";\n        width: 6px; height: 6px;\n        background: #fff;\n        border-radius: 50%;\n        animation: pulse 1.5s ease-in-out infinite;\n      }\n\n      .scaler-event-card__content {\n        padding: 20px;\n        display: flex;\n        flex-direction: column;\n        flex-grow: 1;\n      }\n\n      .scaler-event-card__title {\n        font-size: 17px;\n        font-weight: 600;\n        min-height: 2.5rem;\n        color: var(--scaler-text-primary);\n        margin: 0 0 14px;\n        line-height: 1.4;\n        display: -webkit-box;\n        -webkit-line-clamp: 2;\n        -webkit-box-orient: vertical;\n        overflow: hidden;\n      }\n\n      .scaler-event-card__meta {\n        display: flex;\n        flex-direction: column;\n        gap: 8px;\n        margin-bottom: 20px;\n      }\n\n      .scaler-event-card__meta-item {\n        display: flex;\n        align-items: center;\n        gap: 10px;\n        font-size: 14px;\n        color: var(--scaler-text-secondary);\n      }\n\n      .scaler-event-card__meta-icon {\n        width: 32px; height: 32px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        background: var(--scaler-bg);\n        border-radius: var(--scaler-radius-sm);\n        color: var(--scaler-primary);\n        flex-shrink: 0;\n      }\n\n      .scaler-event-card__meta-icon svg {\n        width: 16px; height: 16px;\n      }\n\n      .scaler-event-card__meta-label {\n        font-weight: 500;\n        color: var(--scaler-text-primary);\n      }\n\n      .scaler-event-card__spacer {\n        flex-grow: 1;\n        min-height: 4px;\n      }\n\n      .scaler-event-card__cta {\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        gap: 8px;\n        width: 100%;\n        padding: 14px 20px;\n        background: var(--scaler-primary);\n        color: #fff;\n        font-style: normal;\n        font-size: 14px;\n        font-weight: 600;\n        text-decoration: none;\n        border: none;\n        border-radius: var(--scaler-radius-sm);\n        cursor: pointer;\n        transition: background 0.2s ease, transform 0.15s ease;\n      }\n\n      .scaler-event-card__cta:hover {\n        background: var(--scaler-primary-dark);\n      }\n\n      .scaler-event-card__cta:active {\n        transform: scale(0.98);\n      }\n\n      .scaler-event-card__cta svg {\n        width: 16px; height: 16px;\n        transition: transform 0.2s ease;\n      }\n\n      .scaler-event-card__cta:hover svg {\n        transform: translateX(3px);\n      }\n\n      \/* Navigation *\/\n      .scaler-events-nav {\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        gap: 16px;\n        margin-top: 32px;\n        padding: unset;\n      }\n\n      .scaler-events-nav__btn {\n        width: 48px; height: 48px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        background: var(--scaler-card-bg);\n        border: 1px solid var(--scaler-border);\n        cursor: pointer;\n        transition: all 0.2s ease;\n        color: var(--scaler-text-primary);\n        padding: unset;\n      }\n\n      .scaler-events-nav__btn:hover:not(.swiper-button-disabled) {\n        background: var(--scaler-primary);\n        border-color: var(--scaler-primary);\n        color: #fff;\n      }\n\n      .scaler-events-nav__btn.swiper-button-disabled {\n        opacity: 0.4;\n        cursor: not-allowed;\n      }\n\n      .scaler-events-nav__btn svg {\n        width: 20px; height: 20px;\n      }\n\n      \/* Pagination *\/\n      .scaler-events-pagination {\n        display: flex;\n        align-items: center;\n        gap: 8px;\n      }\n\n      .scaler-events-carousel .swiper-pagination-bullet {\n        width: 8px; height: 8px;\n        background: var(--scaler-border);\n        opacity: 1;\n        transition: all 0.3s ease;\n      }\n\n      .scaler-events-carousel .swiper-pagination-bullet-active {\n        width: 24px;\n        border-radius: 4px;\n        background: var(--scaler-primary);\n      }\n\n      .scaler-events-carousel .swiper-button-prev,\n      .scaler-events-carousel .swiper-button-next {\n        display: none;\n      }\n\n      \/* Skeleton & Empty States *\/\n      .scaler-event-card--skeleton { pointer-events: none; }\n      .scaler-event-card--skeleton .scaler-event-card__image-wrapper,\n      .scaler-event-card--skeleton .scaler-event-card__title,\n      .scaler-event-card--skeleton .scaler-event-card__meta-item,\n      .scaler-event-card--skeleton .scaler-event-card__cta {\n        background: linear-gradient(90deg, var(--scaler-border) 25%, var(--scaler-bg) 50%, var(--scaler-border) 75%);\n        background-size: 200% 100%;\n        animation: shimmer 1.5s infinite;\n        color: transparent !important;\n        border-radius: 4px;\n      }\n      .scaler-event-card--skeleton .scaler-event-card__image { display: none; }\n\n      @keyframes shimmer {\n        0% { background-position: 200% 0; }\n        100% { background-position: -200% 0; }\n      }\n\n      .scaler-events-empty {\n        text-align: center;\n        padding: 60px 20px;\n        color: var(--scaler-text-secondary);\n      }\n\n      .scaler-events-empty__icon {\n        width: 64px; height: 64px;\n        margin: 0 auto 16px;\n        color: var(--scaler-text-muted);\n      }\n\n      .scaler-events-empty__title {\n        font-size: 18px;\n        font-weight: 600;\n        color: var(--scaler-text-primary);\n        margin: 0 0 8px;\n      }\n\n      @media (max-width: 1024px) {\n        .scaler-events-carousel { padding: 48px 20px 60px; }\n      }\n\n      @media (max-width: 768px) {\n        .scaler-events-carousel { padding: 40px 16px 50px; }\n        .scaler-events-header { margin-bottom: 32px; }\n        .scaler-events-header__subtitle { font-size: 15px; }\n        .scaler-event-card__content { padding: 16px; }\n        .scaler-event-card__title { font-size: 16px; }\n        .scaler-events-nav__btn { width: 44px; height: 44px; }\n      }\n\n      @media (max-width: 480px) {\n        .scaler-events-carousel { padding: 32px 12px 40px; }\n        .scaler-events-header__badge { font-size: 11px; padding: 5px 12px; }\n        .scaler-event-card__meta-item { font-size: 13px; }\n        .scaler-event-card__meta-icon { width: 28px; height: 28px; }\n        .scaler-event-card__cta { padding: 12px 16px; font-size: 13px; }\n      }\n    <\/style>\n<\/head>\n\n<body>\n    <div class=\"scaler-events-carousel js-scaler-carousel\">\n      \n      <template class=\"js-event-card-template\">\n        <div class=\"swiper-slide\">\n          <article class=\"scaler-event-card\">\n            <div class=\"scaler-event-card__image-wrapper\">\n              <span class=\"scaler-event-card__live-badge\" style=\"display: none;\">Live Now<\/span>\n              <img decoding=\"async\" src=\"\" alt=\"\" class=\"scaler-event-card__image\" loading=\"lazy\" \/>\n            <\/div>\n            \n            <div class=\"scaler-event-card__content\">\n              <h3 class=\"scaler-event-card__title\"><\/h3>\n              \n              <div class=\"scaler-event-card__meta\">\n                <div class=\"scaler-event-card__meta-item\">\n                  <div class=\"scaler-event-card__meta-icon\">\n                    <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\"><\/path><\/svg>\n                  <\/div>\n                  <span class=\"scaler-event-card__meta-label js-event-date\"><\/span>\n                <\/div>\n                \n                <div class=\"scaler-event-card__meta-item\">\n                  <div class=\"scaler-event-card__meta-icon\">\n                    <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z\"><\/path><\/svg>\n                  <\/div>\n                  <span class=\"scaler-event-card__meta-label js-event-speaker\"><\/span>\n                <\/div>\n              <\/div>\n\n              <div class=\"scaler-event-card__spacer\"><\/div>\n\n              <a href=\"#\" class=\"scaler-event-card__cta\" style=\"color: white !important; font-style: normal\">\n                Register Now\n                <svg fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M17 8l4 4m0 0l-4 4m4-4H3\"><\/path><\/svg>\n              <\/a>\n            <\/div>\n          <\/article>\n        <\/div>\n      <\/template>\n\n      <div class=\"scaler-events-carousel__inner\">\n        <header class=\"scaler-events-header\">\n          <span class=\"scaler-events-header__badge\">Live &#038; Upcoming<\/span>\n          <h2 class=\"scaler-events-header__title\"><span class=\"ez-toc-section\" id=\"scaler-masterclasses-2\"><\/span>Scaler Masterclasses<span class=\"ez-toc-section-end\"><\/span><\/h2>\n          <p class=\"scaler-events-header__subtitle\">\n            Learn from industry experts and accelerate your career with hands-on, interactive sessions.\n          <\/p>\n        <\/header>\n\n        <div class=\"swiper scaler-event-swiper\">\n          <div class=\"swiper-wrapper scaler-events-wrapper\"><\/div>\n          <div class=\"swiper-pagination scaler-events-pagination\"><\/div>\n        <\/div>\n\n        <nav class=\"scaler-events-nav\">\n          <button class=\"scaler-events-nav__btn scaler-nav-prev\" aria-label=\"Previous slide\">\n            <svg fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n              <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 19l-7-7 7-7\" \/>\n            <\/svg>\n          <\/button>\n          <button class=\"scaler-events-nav__btn scaler-nav-next\" aria-label=\"Next slide\">\n            <svg fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n              <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5l7 7-7 7\" \/>\n            <\/svg>\n          <\/button>\n        <\/nav>\n      <\/div>\n    <\/div>\n\n    <script>\n    document.addEventListener(\"DOMContentLoaded\", () => {\n      \n      const carouselInstances = document.querySelectorAll('.js-scaler-carousel');\n\n      carouselInstances.forEach(container => {\n          \n          if(container.dataset.initialized === \"true\") return;\n          container.dataset.initialized = \"true\";\n\n          const swiperElement = container.querySelector(\".scaler-event-swiper\");\n          const swiperWrapper = container.querySelector(\".scaler-events-wrapper\");\n          const template = container.querySelector(\".js-event-card-template\");\n          const nextBtn = container.querySelector(\".scaler-nav-next\");\n          const prevBtn = container.querySelector(\".scaler-nav-prev\");\n          const paginationEl = container.querySelector(\".scaler-events-pagination\");\n\n          if (!swiperWrapper || !template) {\n             console.error(\"Scaler Carousel: Missing required elements inside container\");\n             return;\n          }\n\n          \/\/ FIX: Added 'observer' and 'observeParents' to ensure correct width calculation\n          const swiper = new Swiper(swiperElement, {\n            slidesPerView: 1,\n            spaceBetween: 24,\n            grabCursor: true,\n            observer: true, \/\/ IMPORTANT: Watch for DOM changes\n            observeParents: true, \/\/ IMPORTANT: Watch for parent container changes\n            pagination: { \n                el: paginationEl, \n                clickable: true, \n                dynamicBullets: true \n            },\n            navigation: { \n                nextEl: nextBtn, \n                prevEl: prevBtn \n            },\n            breakpoints: {\n              640: { slidesPerView: 2, spaceBetween: 20 },\n              1024: { slidesPerView: 2, spaceBetween: 24 },\n              1280: { slidesPerView: 2, spaceBetween: 32 },\n            },\n          });\n\n          function showSkeletons(count = 3) {\n            swiperWrapper.innerHTML = \"\";\n            for (let i = 0; i < count; i++) {\n              const clone = template.content.cloneNode(true);\n              const card = clone.querySelector(\".scaler-event-card\");\n              card.classList.add(\"scaler-event-card--skeleton\");\n              swiperWrapper.appendChild(clone);\n            }\n            swiper.update();\n          }\n\n          function renderEvents(events) {\n            swiperWrapper.innerHTML = \"\";\n       \n            if (events.length === 0) {\n              swiperWrapper.innerHTML = `<div class=\"scaler-events-empty\">No upcoming masterclasses found.<\/div>`;\n              return;\n            }\n\n            const pathParts = location.pathname.split(\"\/\").filter(Boolean);\n            const currentSlug = pathParts.length > 0 ? pathParts[pathParts.length - 1] : \"homepage\";\n       \n            events.forEach(event => {\n              const attr = event.attributes;\n              const clone = template.content.cloneNode(true);\n              \n              const img = clone.querySelector(\".scaler-event-card__image\");\n              const joinUrl = `\/event\/${attr.slug}\/?utm_source=blog&utm_medium=master_class&utm_content=${currentSlug}`;\n              \n              const eventImg =\n                attr.custom_data?.image ||\n                attr.custom_data?.banner_thumbnail ||\n                attr.image_url ||\n                \"https:\/\/images.unsplash.com\/photo-1540575467063-178a50c2df87?w=800&h=450&fit=crop\";\n              \n              img.src = eventImg;\n              img.alt = attr.title;\n              \n              const startDate = new Date(attr.start_time);\n              const formattedDate = startDate.toLocaleDateString(\"en-US\", {\n                weekday: \"short\",\n                month: \"short\",\n                day: \"numeric\",\n              });\n              const formattedTime = startDate.toLocaleTimeString(\"en-US\", {\n                hour: \"numeric\",\n                minute: \"2-digit\",\n                hour12: true,\n              });\n              \n              clone.querySelector(\".scaler-event-card__title\").textContent = attr.title;\n              clone.querySelector(\".js-event-date\").textContent = `${formattedDate} \u2022 ${formattedTime}`; \n              clone.querySelector(\".js-event-speaker\").textContent = attr.instructor_name;\n              clone.querySelector(\".scaler-event-card__cta\").href = joinUrl || \"#\";\n              \n              swiperWrapper.appendChild(clone);\n            });\n            \n            swiper.update();\n            swiper.slideTo(0);\n          }\n       \n          async function fetchEvents() {\n            try {\n              showSkeletons();\n              const res = await fetch(\n                \"https:\/\/www.scaler.com\/api\/v4\/events?event_type[]=company&distributor=scaler&type=upcoming&serializer_mode=L2&limit=8&program[]=software_development&program[]=data_science&program[]=devops&program[]=ai_ml\"\n              );\n              const json = await res.json();\n              const events = json.data || [];\n              renderEvents(events);\n            } catch (error) {\n              console.error(\"Failed to load events:\", error);\n              if(swiperWrapper) swiperWrapper.innerHTML = `<div class=\"scaler-events-empty\">Failed to load events.<\/div>`;\n            }\n          }\n       \n          fetchEvents();\n      });\n    });\n    <\/script>\n<\/body>\n<\/html>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"dsa-cheat-sheet-%e2%80%94-quick-reference\"><\/span><strong>DSA Cheat Sheet \u2014 Quick Reference<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Data Structure<\/td><td>Insert<\/td><td>Delete<\/td><td>Search<\/td><td>Space<\/td><td>Best Use Case<\/td><\/tr><tr><td>Array<\/td><td>O(n)<\/td><td>O(n)<\/td><td>O(1) access, O(n) search<\/td><td>O(n)<\/td><td>Fixed-size data, random access<\/td><\/tr><tr><td>Linked List<\/td><td>O(1) at head<\/td><td>O(1) at head<\/td><td>O(n)<\/td><td>O(n)<\/td><td>Frequent insertions\/deletions<\/td><\/tr><tr><td>Stack<\/td><td>O(1)<\/td><td>O(1)<\/td><td>O(n)<\/td><td>O(n)<\/td><td>Undo, DFS, expression parsing<\/td><\/tr><tr><td>Queue<\/td><td>O(1)<\/td><td>O(1)<\/td><td>O(n)<\/td><td>O(n)<\/td><td>BFS, task scheduling<\/td><\/tr><tr><td>Hash Map<\/td><td>O(1) avg<\/td><td>O(1) avg<\/td><td>O(1) avg<\/td><td>O(n)<\/td><td>Fast lookup, frequency count<\/td><\/tr><tr><td>BST<\/td><td>O(log n) avg<\/td><td>O(log n) avg<\/td><td>O(log n) avg<\/td><td>O(n)<\/td><td>Sorted data, range queries<\/td><\/tr><tr><td>Heap<\/td><td>O(log n)<\/td><td>O(log n)<\/td><td>O(1) peek<\/td><td>O(n)<\/td><td>Top-K, priority scheduling<\/td><\/tr><tr><td>Graph<\/td><td>O(1)<\/td><td>O(V+E)<\/td><td>O(V+E)<\/td><td>O(V+E)<\/td><td>Networks, pathfinding<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Algorithm<\/td><td>Best Case<\/td><td>Average Case<\/td><td>Worst Case<\/td><td>Space<\/td><\/tr><tr><td>Binary Search<\/td><td>O(1)<\/td><td>O(log n)<\/td><td>O(log n)<\/td><td>O(1)<\/td><\/tr><tr><td>Bubble Sort<\/td><td>O(n)<\/td><td>O(n\u00b2)<\/td><td>O(n\u00b2)<\/td><td>O(1)<\/td><\/tr><tr><td>Merge Sort<\/td><td>O(n log n)<\/td><td>O(n log n)<\/td><td>O(n log n)<\/td><td>O(n)<\/td><\/tr><tr><td>Quick Sort<\/td><td>O(n log n)<\/td><td>O(n log n)<\/td><td>O(n\u00b2)<\/td><td>O(log n)<\/td><\/tr><tr><td>BFS<\/td><td>O(V+E)<\/td><td>O(V+E)<\/td><td>O(V+E)<\/td><td>O(V)<\/td><\/tr><tr><td>DFS<\/td><td>O(V+E)<\/td><td>O(V+E)<\/td><td>O(V+E)<\/td><td>O(V)<\/td><\/tr><tr><td>Dijkstra&#8217;s<\/td><td>O(E log V)<\/td><td>O(E log V)<\/td><td>O(E log V)<\/td><td>O(V)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 4: Core Algorithms (Weeks 8-10)<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Once you understand data structures, it&#8217;s time to master the algorithms that operate on them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. Searching Algorithms<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Linear Search: O(n) \u2014 check each element sequentially<\/li>\n\n\n\n<li>Binary Search: O(log n) \u2014 divide and conquer on sorted data<\/li>\n\n\n\n<li>Practice: Search in Rotated Sorted Array, Find Peak Element, First and Last Position<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. Sorting Algorithms<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Bubble Sort: O(n\u00b2) \u2014 simple but inefficient<\/li>\n\n\n\n<li>Merge Sort: O(n log n) \u2014 divide and conquer, stable<\/li>\n\n\n\n<li>Quick Sort: O(n log n) average \u2014 in-place, widely used<\/li>\n\n\n\n<li>Heap Sort: O(n log n) \u2014 uses heap data structure<\/li>\n\n\n\n<li>Practice: Sort an array of 0s, 1s, and 2s; Merge Intervals; Kth Largest Element<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. Recursion &amp; Backtracking<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Recursion: Function calling itself with a base case<\/li>\n\n\n\n<li>Backtracking: Explore all possibilities, prune invalid paths<\/li>\n\n\n\n<li>Practice: Permutations, N-Queens, Sudoku Solver, Combination Sum, Word Search<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4. Greedy Algorithms<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Make the locally optimal choice at each step, hoping for a global optimum.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>Practice:<\/strong> Activity Selection, Huffman Coding, Fractional Knapsack, Jump Game<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5. Divide &amp; Conquer<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Break problems into smaller subproblems, solve independently, combine results.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>Practice:<\/strong> Merge Sort, Quick Sort, Strassen&#8217;s Matrix Multiplication<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>6. Dynamic Programming (DP) \u2014 The Interview Game Changer<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DP is the most feared DSA topic and often the deciding factor in FAANG interviews. It solves complex problems by breaking them into overlapping subproblems and storing results to avoid redundant computation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>DP Patterns You Must Know:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Pattern<\/td><td>Classic Problems<\/td><td>Key Idea<\/td><\/tr><tr><td>1D DP<\/td><td>Climbing Stairs, House Robber, Jump Game<\/td><td>dp[i] depends on previous states<\/td><\/tr><tr><td>2D DP<\/td><td>Unique Paths, Minimum Path Sum, Edit Distance<\/td><td>dp[i][j] based on grid neighbors<\/td><\/tr><tr><td>0\/1 Knapsack<\/td><td>Knapsack, Partition Equal Subset Sum<\/td><td>Include or exclude each item<\/td><\/tr><tr><td>Unbounded Knapsack<\/td><td>Coin Change, Rod Cutting<\/td><td>Items can be reused<\/td><\/tr><tr><td>LCS<\/td><td>Longest Common Subsequence, Palindrome<\/td><td>Match or skip characters<\/td><\/tr><tr><td>Interval DP<\/td><td>Matrix Chain Multiplication, Burst Balloons<\/td><td>Try all split points<\/td><\/tr><tr><td>Tree DP<\/td><td>Tree Diameter, House Robber III<\/td><td>Bottom-up on trees<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">How to Approach Any DP Problem:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Identify if the problem has overlapping subproblems and optimal substructure<\/li>\n\n\n\n<li>Define the state (what variables change?)<\/li>\n\n\n\n<li>Write the recurrence relation<\/li>\n\n\n\n<li>Determine base cases<\/li>\n\n\n\n<li>Choose: Memoization (top-down) or Tabulation (bottom-up)<\/li>\n\n\n\n<li>Optimize space if possible<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Must-Practice DP Problems: Fibonacci, Climbing Stairs, House Robber, Coin Change, 0\/1 Knapsack, Longest Common Subsequence, Edit Distance, Longest Increasing Subsequence, Matrix Chain Multiplication, Unique Paths<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 5: Advanced Topics (Weeks 11-12)<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Once you&#8217;ve mastered the basics, these advanced topics will give you a competitive edge:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Advanced Graph Algorithms<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dijkstra&#8217;s Algorithm: Shortest path in weighted graphs (O(E log V))<\/li>\n\n\n\n<li>Floyd-Warshall: All-pairs shortest path (O(V\u00b3))<\/li>\n\n\n\n<li>Kruskal&#8217;s &amp; Prim&#8217;s: Minimum Spanning Tree<\/li>\n\n\n\n<li>Bellman-Ford: Shortest path with negative weights<\/li>\n\n\n\n<li>Topological Sort: Ordering for DAGs (Kahn&#8217;s Algorithm)<\/li>\n\n\n\n<li>Union-Find (DSU): Efficient cycle detection and connectivity<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Advanced Dynamic Programming<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Matrix Chain Multiplication<\/li>\n\n\n\n<li>Longest Increasing Subsequence (O(n log n))<\/li>\n\n\n\n<li>DP with Bitmasking<\/li>\n\n\n\n<li>Digit DP<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Advanced Data Structures<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Segment Trees: Range queries in O(log n)<\/li>\n\n\n\n<li>Fenwick Trees (BIT): Prefix sum queries<\/li>\n\n\n\n<li>Tries (Prefix Trees): String searching and autocomplete<\/li>\n\n\n\n<li>Disjoint Set Union (DSU): Efficient set operations<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 6: Practice &amp; Problem-Solving (Ongoing)<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Theory alone won&#8217;t cut it \u2014 you need consistent practice!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Best Platforms for DSA Practice:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/leetcode.com\/\" target=\"_blank\" rel=\"noopener\">LeetCode<\/a> \u2014 Industry standard for interview prep<\/li>\n\n\n\n<li><a href=\"https:\/\/codeforces.com\/\" target=\"_blank\" rel=\"noopener\">Codeforces<\/a> \u2014 Competitive programming<\/li>\n\n\n\n<li><a href=\"https:\/\/www.hackerrank.com\/\" target=\"_blank\" rel=\"noopener\">HackerRank<\/a> \u2014 Beginner-friendly<\/li>\n\n\n\n<li><a href=\"https:\/\/www.scaler.com\/topics\/challenges\/\">Scaler Problems<\/a> \u2014 Curated challenges<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Daily Practice Routine:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Difficulty<\/td><td>Time Per Problem<\/td><td>Problems Per Week<\/td><td>Focus<\/td><\/tr><tr><td>Easy<\/td><td>20-30 mins<\/td><td>10-15<\/td><td>Build fundamentals<\/td><\/tr><tr><td>Medium<\/td><td>45-60 mins<\/td><td>7-10<\/td><td>Interview-level<\/td><\/tr><tr><td>Hard<\/td><td>60-90 mins<\/td><td>3-5<\/td><td>Advanced problem-solving<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Popular Structured Problem Sheets:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Striver&#8217;s A2Z DSA Sheet \u2014 Comprehensive, highly recommended for Indian placements<\/li>\n\n\n\n<li>NeetCode 150 \u2014 Curated by patterns, great for FAANG prep<\/li>\n\n\n\n<li>Blind 75 \u2014 Essential 75 problems covering all patterns<\/li>\n\n\n\n<li>Scaler DSA Problem Sets \u2014 Topic-wise practice with solutions<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Focus on patterns, not random problems: Arrays &amp; Strings \u2192 Two Pointers \u2192 Sliding Window \u2192 Binary Search \u2192 Trees \u2192 Graphs \u2192 Dynamic Programming \u2192 Backtracking.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"dsa-roadmap-for-placements-3-month-vs-6-month-plan\"><\/span><strong>DSA Roadmap for Placements: 3-Month vs 6-Month Plan<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3-Month Intensive Plan (For Campus Placements)<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Month<\/td><td>Focus Areas<\/td><td><br>Daily Hours<\/td><td>Target Problems<\/td><\/tr><tr><td>Month 1<\/td><td>Arrays, Strings, Linked Lists, Stacks, Queues<\/td><td>3-4 hrs<\/td><td>60-80 (Easy-Medium)<\/td><\/tr><tr><td>Month 2<\/td><td>Trees, Graphs, Binary Search, Hashing<\/td><td>3-4 hrs<\/td><td>50-60 (Medium)<\/td><\/tr><tr><td>Month 3<\/td><td>Dynamic Programming, Greedy, Advanced Topics + Mock Interviews<\/td><td>4-5 hrs<\/td><td>40-50 (Medium-Hard) + 5 mocks<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>6-Month Comprehensive Plan (For Deep Mastery)<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Phase<\/td><td>Duration<\/td><td>Focus<\/td><td>Target<\/td><\/tr><tr><td>Foundation<\/td><td>Weeks 1-4<\/td><td>Language basics, Arrays, Strings, Complexity<\/td><td>40 Easy problems<\/td><\/tr><tr><td>Core DS<\/td><td>Weeks 5-10<\/td><td>Linked Lists, Stacks, Queues, Trees, Hash Maps<\/td><td>60 Medium problems<\/td><\/tr><tr><td>Algorithms<\/td><td>Weeks 11-16<\/td><td>Sorting, Searching, Recursion, Backtracking, Greedy<\/td><td>50 Medium problems<\/td><\/tr><tr><td>Advanced<\/td><td>Weeks 17-22<\/td><td>Graphs, DP, Tries, Segment Trees<\/td><td>40 Hard problems<\/td><\/tr><tr><td>Interview Prep<\/td><td>Weeks 23-26<\/td><td>Mock interviews, Company-specific questions, System Design basics<\/td><td>20+ mocks<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"dsa-interview-questions-%e2%80%94-pattern-wise-breakdown\"><\/span><strong>DSA Interview Questions \u2014 Pattern-Wise Breakdown<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Understanding concepts is one thing, but applying them under interview pressure is what truly matters. Here are the most commonly asked DSA interview questions organized by pattern:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"arrays-strings\"><\/span><strong>Arrays &amp; Strings<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Two Pointers<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Two Sum II (Input Array is Sorted)<\/li>\n\n\n\n<li>3Sum (Find all triplets that sum to zero)<\/li>\n\n\n\n<li>Container With Most Water<\/li>\n\n\n\n<li>Trapping Rain Water<\/li>\n\n\n\n<li>Valid Palindrome II<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Sliding Window<\/strong><\/h3>\n\n\n\n<ol start=\"6\" class=\"wp-block-list\">\n<li>Longest Substring Without Repeating Characters<\/li>\n\n\n\n<li>Minimum Window Substring<\/li>\n\n\n\n<li>Sliding Window Maximum<\/li>\n\n\n\n<li>Longest Repeating Character Replacement<\/li>\n\n\n\n<li>Find All Anagrams in a String<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"binary-search\"><\/span><strong>Binary Search<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol start=\"11\" class=\"wp-block-list\">\n<li>Binary Search (Basic)<\/li>\n\n\n\n<li>Search in Rotated Sorted Array<\/li>\n\n\n\n<li>Find First and Last Position of Element in Sorted Array<\/li>\n\n\n\n<li>Koko Eating Bananas<\/li>\n\n\n\n<li>Median of Two Sorted Arrays<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"linked-list\"><\/span><strong>Linked List<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol start=\"16\" class=\"wp-block-list\">\n<li>Reverse a Linked List<\/li>\n\n\n\n<li>Detect Cycle in Linked List<\/li>\n\n\n\n<li>Merge Two Sorted Lists<\/li>\n\n\n\n<li>Remove Nth Node From End<\/li>\n\n\n\n<li>Add Two Numbers<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"trees-binary-search-trees-bst\"><\/span><strong>Trees &amp; Binary Search Trees (BST)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol start=\"21\" class=\"wp-block-list\">\n<li>Maximum Depth of Binary Tree<\/li>\n\n\n\n<li>Validate Binary Search Tree<\/li>\n\n\n\n<li>Lowest Common Ancestor<\/li>\n\n\n\n<li>Binary Tree Level Order Traversal<\/li>\n\n\n\n<li>Serialize and Deserialize Binary Tree<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"graphs\"><\/span><strong>Graphs<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol start=\"26\" class=\"wp-block-list\">\n<li>Number of Islands<\/li>\n\n\n\n<li>Course Schedule (Topological Sort)<\/li>\n\n\n\n<li>Clone Graph<\/li>\n\n\n\n<li>Word Ladder<\/li>\n\n\n\n<li>Network Delay Time (Dijkstra\u2019s Algorithm)<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"dynamic-programming\"><\/span><strong>Dynamic Programming<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol start=\"31\" class=\"wp-block-list\">\n<li>Climbing Stairs<\/li>\n\n\n\n<li>House Robber I &amp; II<\/li>\n\n\n\n<li>Coin Change<\/li>\n\n\n\n<li>Longest Common Subsequence<\/li>\n\n\n\n<li>0\/1 Knapsack Problem<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"tips-to-master-dsa-faster\"><\/span><strong>Tips to Master DSA Faster<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Learning DSA is not a sprint; it&#8217;s a marathon. Here are proven tips to accelerate your journey:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Don&#8217;t rush fundamentals \u2014 Understanding why an algorithm works is more important than memorizing it<\/li>\n\n\n\n<li>Maintain a problem journal \u2014 Log every problem you solve with approach, complexity, and key learnings<\/li>\n\n\n\n<li>Learn by teaching \u2014 Explain concepts to peers or write blog posts; teaching reveals gaps in your understanding<\/li>\n\n\n\n<li>Mix theory and practice daily \u2014 Study concepts in the morning, solve problems in the evening<\/li>\n\n\n\n<li>Follow the 30-minute rule \u2014 Try solving a problem for 30 minutes before checking the solution<\/li>\n\n\n\n<li>Track your patterns \u2014 Note which problem types trip you up and revisit them weekly<\/li>\n\n\n\n<li>Participate in contests \u2014 Weekly LeetCode contests simulate real interview pressure<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"career-opportunities-after-learning-dsa\"><\/span><strong>Career Opportunities After Learning DSA<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Mastering DSA opens doors to high-paying roles across the tech industry. Here&#8217;s why companies invest heavily in DSA assessments:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DSA skills are the foundation for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Technical interview rounds at FAANG and top product companies<\/li>\n\n\n\n<li>Competitive programming and coding contests<\/li>\n\n\n\n<li>System design thinking for large-scale applications<\/li>\n\n\n\n<li>Real-world problem-solving in production environments<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Roles Where DSA is Essential<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Role<\/td><td>DSA Topics Tested<\/td><td>Companies<\/td><\/tr><tr><td>Software Engineer<\/td><td>Arrays, Trees, Graphs, DP, System Design<\/td><td>Google, Amazon, Microsoft, Meta<\/td><\/tr><tr><td>Data Engineer<\/td><td>SQL, Arrays, Hashing, Optimization<\/td><td>Uber, Airbnb, Netflix<\/td><\/tr><tr><td>Backend Developer<\/td><td>Trees, Graphs, Hash Maps, Caching<\/td><td>Stripe, Shopify, Zomato<\/td><\/tr><tr><td>AI\/ML Engineer<\/td><td>Graphs, Optimization, Matrix Operations<\/td><td>OpenAI, DeepMind, Tesla<\/td><\/tr><tr><td>SDE Intern<\/td><td>Arrays, Strings, Basic Trees\/Graphs<\/td><td>All top tech firms<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Salary Insights (India, 2026)<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Experience Level<\/td><td>Salary Range (LPA)<\/td><td>Top Companies<\/td><\/tr><tr><td>Entry Level (0-2 yrs)<\/td><td>\u20b95-12 LPA<\/td><td>Startups, Service companies<\/td><\/tr><tr><td>Mid Level (2-5 yrs)<\/td><td>\u20b912-25 LPA<\/td><td>Product companies, Unicorns<\/td><\/tr><tr><td>Senior Level (5+ yrs)<\/td><td>\u20b925-50+ LPA<\/td><td>FAANG, Top product firms<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Source:<a href=\"https:\/\/www.glassdoor.co.in\/Salaries\/india-software-developer-salary-SRCH_IL.0,5_IN115_KO6,24.htm\" target=\"_blank\" rel=\"noopener\"> Glassdoor India<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Pro Tip: Bangalore, Hyderabad, and Pune typically offer 15-25% higher salaries for DSA-skilled developers compared to other Indian tech hubs.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"system-design-roadmap-%e2%80%94-what-comes-after-dsa\"><\/span><strong>System Design Roadmap \u2014 What Comes After DSA?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Once you&#8217;ve mastered DSA, the natural next step is system design. This is crucial for senior roles and FAANG interviews.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>When to Start System Design:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>After completing 100+ DSA problems comfortably<\/li>\n\n\n\n<li>When you can solve Medium-level problems in 30-40 minutes<\/li>\n\n\n\n<li>Typically in your 2nd year of preparation or before senior-level interviews<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Key System Design Topics:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Load Balancing &amp; Caching (Redis, Memcached)<\/li>\n\n\n\n<li>Database Design (SQL vs NoSQL, Sharding, Replication)<\/li>\n\n\n\n<li>Microservices Architecture<\/li>\n\n\n\n<li>Message Queues (Kafka, RabbitMQ)<\/li>\n\n\n\n<li>CDN &amp; Content Delivery<\/li>\n\n\n\n<li>Rate Limiting &amp; Consistent Hashing<\/li>\n\n\n\n<li>CAP Theorem &amp; Distributed Systems<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Resources:<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\" target=\"_blank\" rel=\"noopener\"> System Design Primer (GitHub)<\/a>, Grokking System Design, Alex Xu&#8217;s books<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"conclusion\"><\/span><strong>Conclusion<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Your complete DSA roadmap for 2026:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Learn a programming language (C++\/Java\/Python)<\/strong> \u2014 Weeks 1-2<\/li>\n\n\n\n<li><strong>Master time &amp; space complexity<\/strong> \u2014 Weeks 2-3<\/li>\n\n\n\n<li><strong>Core data structures (Arrays \u2192 Linked Lists \u2192 Trees \u2192 Graphs) <\/strong>\u2014 Weeks 4-7<\/li>\n\n\n\n<li><strong>Core algorithms (Searching \u2192 Sorting \u2192 Recursion \u2192 DP)<\/strong> \u2014 Weeks 8-10<\/li>\n\n\n\n<li><strong>Advanced topics (Advanced Graphs, Tries, Segment Trees) <\/strong>\u2014 Weeks 11-12<\/li>\n\n\n\n<li><strong>Practice &amp; interview prep \u2014 Ongoing<\/strong><\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Start small, stay consistent, and remember: every expert was once a beginner. DSA isn&#8217;t inherently difficult \u2014 it just requires structured learning and daily practice.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ready to accelerate your DSA journey? Explore<a href=\"https:\/\/www.scaler.com\/courses\/data-structures-and-algorithms\/\"> Scaler&#8217;s Data Structures &amp; Algorithms Program<\/a> for mentorship-led learning and real-world problem-solving.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"faqs\"><\/span><strong>FAQs<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1.What should I learn first: data structures or algorithms?<\/strong><br>Start with data structures \u2014 specifically arrays, strings, linked lists, stacks, queues, and hash maps. Once comfortable with how data is organized, move to algorithms like searching, sorting, recursion, and dynamic programming. Data structures are the building blocks; algorithms are the techniques that process them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2.How long will it take to master DSA?<\/strong><br>With consistent daily practice of 2-3 hours, you can build strong DSA fundamentals in 3-4 months. However, &#8220;mastery&#8221; is ongoing \u2014 even experienced engineers continue learning. Focus on solving 150-200 quality problems across all major topics rather than rushing through concepts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3.Can I learn DSA without a CS degree?<\/strong><br>Absolutely! Many self-taught developers have cracked top tech jobs by following a structured DSA roadmap. The key is consistent practice, understanding patterns (not memorizing solutions), and building projects that demonstrate your skills. Platforms like Scaler offer structured courses with mentorship support.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4.Which programming language is best for DSA?<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>C++: Best for competitive programming (fast execution, rich STL)<\/li>\n\n\n\n<li>Java: Ideal for interviews (strongly typed, widely accepted at FAANG)<\/li>\n\n\n\n<li>Python: Perfect for beginners (readable syntax, quick implementation)<br>Choose based on your comfort level and career goals. Don&#8217;t switch languages mid-preparation.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5.How many problems should I solve before interviews?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aim for 150-200 quality problems covering all major patterns: Arrays, Strings, Two Pointers, Sliding Window, Binary Search, Trees, Graphs, Dynamic Programming, and Backtracking. Focus on understanding patterns deeply rather than solving hundreds of similar problems.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>6.What is the best DSA sheet for placements in India?<\/strong><br>Popular choices include Striver&#8217;s A2Z DSA Sheet (comprehensive, free), NeetCode 150 (pattern-based, excellent for FAANG), and the Blind 75 (essential problems). Choose one sheet and complete it thoroughly rather than jumping between multiple resources.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>7.How do I approach dynamic programming problems?<\/strong><br>Follow this 5-step framework:&nbsp;<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Identify if it has overlapping subproblems and optimal substructure,<\/li>\n\n\n\n<li>Define the state,\u00a0<\/li>\n\n\n\n<li>Write the recurrence relation,\u00a0<\/li>\n\n\n\n<li>Determine base cases,<\/li>\n\n\n\n<li>Choose memoization or tabulation.\u00a0<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Practice recognizing common DP patterns \u2014 most interview DP problems fall into 5-6 categories.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>8.When should I start system design after DSA?<\/strong><br>Begin system design preparation after solving 100+ quality DSA problems and feeling comfortable with medium-difficulty questions. For freshers, DSA takes priority. For experienced professionals (3+ years), start system design alongside advanced DSA topics.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>9.Is DSA required for data science or AI careers?<\/strong><br>Yes! DSA builds the logical thinking and efficiency skills needed for handling large datasets, optimizing algorithms, and writing production-grade code. While data science roles may emphasize statistics and ML more, strong DSA fundamentals give you a significant edge in technical interviews and real-world problem-solving.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Master DSA in 2026 with our comprehensive Data Structures and Algorithms roadmap! Get step-by-step guidance, expert tips, and essential resources to elevate your coding skills. If you&#8217;re dreaming of becoming a software engineer, the first thing you&#8217;ll hear from every coder is: &#8220;Start with DSA.&#8221; The DSA roadmap is the key to excelling in problem-solving [&hellip;]<\/p>\n","protected":false},"author":210,"featured_media":5772,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[35],"tags":[283,282,240],"class_list":["post-5768","post","type-post","status-publish","format-standard","has-post-thumbnail","category-software-development","tag-data-structures-and-algorithms","tag-dsa-roadmap","tag-roadmap"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.scaler.com\/blog\/wp-json\/wp\/v2\/posts\/5768","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.scaler.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.scaler.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.scaler.com\/blog\/wp-json\/wp\/v2\/users\/210"}],"replies":[{"embeddable":true,"href":"https:\/\/www.scaler.com\/blog\/wp-json\/wp\/v2\/comments?post=5768"}],"version-history":[{"count":39,"href":"https:\/\/www.scaler.com\/blog\/wp-json\/wp\/v2\/posts\/5768\/revisions"}],"predecessor-version":[{"id":12708,"href":"https:\/\/www.scaler.com\/blog\/wp-json\/wp\/v2\/posts\/5768\/revisions\/12708"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.scaler.com\/blog\/wp-json\/wp\/v2\/media\/5772"}],"wp:attachment":[{"href":"https:\/\/www.scaler.com\/blog\/wp-json\/wp\/v2\/media?parent=5768"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.scaler.com\/blog\/wp-json\/wp\/v2\/categories?post=5768"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.scaler.com\/blog\/wp-json\/wp\/v2\/tags?post=5768"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}