<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Md Sala Uddin</title>
    <description>The latest articles on Forem by Md Sala Uddin (@uddin-dev).</description>
    <link>https://forem.com/uddin-dev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3616117%2F8f76bb58-a85b-4f2a-a5f0-6a5099698118.jpg</url>
      <title>Forem: Md Sala Uddin</title>
      <link>https://forem.com/uddin-dev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/uddin-dev"/>
    <language>en</language>
    <item>
      <title>The DSA Illusion: Why Most Data Structures Don’t Actually Exist</title>
      <dc:creator>Md Sala Uddin</dc:creator>
      <pubDate>Sun, 29 Mar 2026 22:41:16 +0000</pubDate>
      <link>https://forem.com/uddin-dev/the-dsa-illusion-why-most-data-structures-dont-actually-exist-4oah</link>
      <guid>https://forem.com/uddin-dev/the-dsa-illusion-why-most-data-structures-dont-actually-exist-4oah</guid>
      <description>&lt;h2&gt;
  
  
  Beginner DSA Lesson #2
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Overview
&lt;/h3&gt;

&lt;p&gt;If you’re just starting out in C++ and DSA, you’ve probably seen a long list that looks like this:&lt;/p&gt;

&lt;p&gt;Arrays, Linked Lists, Stacks, Queues, Trees, Graphs, Hash Tables, Sorting, Recursion…&lt;/p&gt;

&lt;p&gt;When I first saw that, I thought:&lt;/p&gt;

&lt;p&gt;“I have to learn and memorize all of these completely different things?”&lt;/p&gt;

&lt;p&gt;It felt impossible.&lt;br&gt;
But as I started planning my DSA study, I realized something that changed everything:&lt;/p&gt;

&lt;p&gt;Most of these data structures aren’t new “things” at all….they’re just different ways of using the same two building blocks.&lt;/p&gt;

&lt;p&gt;If you can see that clearly, DSA suddenly feels a lot less scary.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This lesson is just an overview.&lt;br&gt;
You definitely don’t need to fully understand every word or code snippet right now.&lt;br&gt;
The goal is just to plant the idea: there are two main building blocks, and everything else is built on top of them.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;What’s Actually in Your Computer’s Memory?&lt;/strong&gt;&lt;br&gt;
Your computer stores data in RAM, and at the lowest level, there are basically two main ways data can live in memory:&lt;/p&gt;
&lt;h2&gt;
  
  
  Arrays
&lt;/h2&gt;

&lt;p&gt;Think of an Array like a straight row of lockers in a gym.&lt;br&gt;
Each locker sits directly next to the one before it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnumgjet8t3leka9nuqmp.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnumgjet8t3leka9nuqmp.jpeg" alt="Array Visual"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In C++, that means all data is stored in one contiguous block of memory, one right after the other.&lt;/p&gt;
&lt;h2&gt;
  
  
  Linked Lists
&lt;/h2&gt;

&lt;p&gt;A Linked List is like scattering pieces of paper all over a table, with each paper having a note that says, “See the next one over here.”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmquplyiok1nvzok3c8za.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmquplyiok1nvzok3c8za.jpeg" alt="LinkedList"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In C++, each piece of paper is a node, and it has a pointer to the next node.&lt;br&gt;
That’s it.&lt;/p&gt;

&lt;p&gt;At the hardware level, you’re either:&lt;/p&gt;

&lt;p&gt;Packing data side‑by‑side (arrays), or&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv6la6gsvak71yiq2d8bk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv6la6gsvak71yiq2d8bk.png" alt="Array"&gt;&lt;/a&gt;&lt;br&gt;
Scattering it and pointing from one piece to the next (linked lists).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feg8ddmyytwq099xu0mwx.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feg8ddmyytwq099xu0mwx.webp" alt="LinkedList"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Everything else you see (Stacks, Queues, Trees, Graphs) is built on top of these two ideas.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Don’t worry if this feels fuzzy.&lt;br&gt;
We’ll make it crystal clear in the next few lessons, one tiny step at a time.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  What Are Stacks, Queues, Trees, and Graphs?
&lt;/h2&gt;

&lt;p&gt;Let’s demystify the “scary names” in plain English:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stack&lt;/strong&gt;&lt;br&gt;
A Stack is like a stack of plates at a buffet: last one you put on, first one you take off. In C++, that’s: A physical structure (an Array or Linked List),With a rule: you can only add or remove from the top.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6pm4v02e3qb4rxup07s7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6pm4v02e3qb4rxup07s7.png" alt="Stack"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Queue&lt;/strong&gt;&lt;br&gt;
A Queue is like a line of people at Tim Hortons or McDonalds: first in line, first served.&lt;br&gt;
In code, a Queue is A physical structure (like an Array or Linked List),With rules that let you only add at the back and remove from the front.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fobspfo30sr13s7z51ccw.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fobspfo30sr13s7z51ccw.webp" alt="Queue"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tree&lt;/strong&gt;&lt;br&gt;
A Tree is like a family tree: one person can have two children.&lt;br&gt;
In C++, a Tree is A Linked List where each node has two pointers instead of one, creating branches.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8n96my7ip4bcafmk4xui.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8n96my7ip4bcafmk4xui.webp" alt="Tree"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Graph&lt;/strong&gt;&lt;br&gt;
A Graph is like a social network: people can be connected to many other people, not just one or two. In C++, a Graph is: A bunch of nodes that link to many other nodes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb9ya88y2pskdyjchcdtf.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb9ya88y2pskdyjchcdtf.webp" alt="Graph"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They’re not “new hardware.”&lt;br&gt;
They’re rules and patterns you apply on top of Arrays and Linked Lists.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Again, you don’t need to fully get all of this today.&lt;br&gt;
The goal is just to plant the idea that: Arrays and Linked Lists are your building blocks. Everything else is a pattern on top.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Quick C++ Glimpse (Don’t Overthink It)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;You don’t need to fully understand the code today-just get a feel for it.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Array example (simple):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="c1"&gt;// All values live in one continuous block in memory.&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Node example (linked list idea):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="nc"&gt;Node&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;Node&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;next&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// pointer to the next node&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You’ll see this kind of code again later, with much slower, step‑by‑step explanations.&lt;br&gt;
For now, just remember:&lt;br&gt;
Arrays and Linked Lists are your building blocks. Everything else is a pattern on top.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s Next in This Series
&lt;/h2&gt;

&lt;p&gt;Now that you have the idea of big picture, that everything is just a pattern built on Arrays and Linked Lists it’s time to get our hands dirty with the actual tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&amp;gt; Before we can build these structures, we need to master the C++ “toolbox.” The basic C++ concepts you need to know for DSA…&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the next part of this journey, we’re diving into a few blog series on Essential C++ Concepts for DSA. We’ll break down everything from Arrays and Pointers to Structures, Classes, and Templates.&lt;/p&gt;

&lt;p&gt;These are the literal building blocks you’ll use to turn these “scary names” into working code. See you in the next one!&lt;/p&gt;

&lt;p&gt;If you’re scared or confused right now, that’s okay.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You’re not behind.&lt;br&gt;
You’re exactly where you need to be to start learning DSA in a way that actually makes sense.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>dsa</category>
      <category>cpp</category>
      <category>softwaredevelopment</category>
      <category>programming</category>
    </item>
    <item>
      <title>I Stopped Running From DSA. Here’s How I’m Hacking My Brain to Learn It in C++</title>
      <dc:creator>Md Sala Uddin</dc:creator>
      <pubDate>Sat, 28 Mar 2026 22:30:48 +0000</pubDate>
      <link>https://forem.com/uddin-dev/i-stopped-running-from-dsa-heres-how-im-hacking-my-brain-to-learn-it-in-c-4jh9</link>
      <guid>https://forem.com/uddin-dev/i-stopped-running-from-dsa-heres-how-im-hacking-my-brain-to-learn-it-in-c-4jh9</guid>
      <description>&lt;h2&gt;
  
  
  Beginner DSA Lesson #1
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Why the best way to master Data Structures &amp;amp; Algorithms is to build in public, and how you can follow along.&lt;/p&gt;

&lt;p&gt;Let’s be real for a second. If you are learning software development, there are three letters that probably make you want to close your laptop and walk away: D-S-A.&lt;/p&gt;

&lt;p&gt;For a long time, Data Structures and Algorithms felt like an intimidating, invisible gatekeeper. Between grinding through my computer programming classes at School and balancing everyday life, it was always easier to put it on the back burner and just focus on building front-end projects.&lt;/p&gt;

&lt;p&gt;But recently, I cleared my schedule, stepped away from my part time job, and made a non-negotiable decision: I am going all-in on mastering DSA using C++. No more avoiding the hard stuff.&lt;/p&gt;

&lt;p&gt;And I am documenting every single step of the journey right here.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why am I writing this?
&lt;/h2&gt;

&lt;p&gt;If you read most tutorials on pointers, memory management, or time complexity, they are usually written by senior engineers who forgot what it feels like to be a beginner. They read like dense, dry textbooks.&lt;/p&gt;

&lt;p&gt;I’m taking a different approach. I am in the trenches learning this right now.&lt;/p&gt;

&lt;p&gt;I’ve realized that the ultimate cheat code to truly understanding complex logic is to translate it into plain English. By breaking down these concepts for you, I am forcing myself to eliminate any gaps in my own knowledge. We are going to demystify the scary stuff together.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I’m Approaching DSA
&lt;/h2&gt;

&lt;p&gt;I’m keeping my approach simple. Below are the methods I’m using to understand properly::&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Learn, then explain&lt;br&gt;
After learning a concept, I try to explain it in the simplest way possible. If I struggle to do that, I go back and review it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Break topics down&lt;br&gt;
Instead of trying to learn large topics at once, I break them into smaller parts.&lt;br&gt;
For example, instead of “Linked Lists,” I focus on:&lt;br&gt;
What a node is&lt;br&gt;
How pointers connect nodes&lt;br&gt;
How insertion works&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use C++ to understand the details&lt;br&gt;
C++ forces you to deal with memory and pointers directly. It’s not always easy, but it makes things clearer over time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Keep explanations simple&lt;br&gt;
I’m not trying to sound technical. The goal is clarity. If something can’t be explained simply, it probably isn’t understood properly yet.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What I’ll Be Covering (Step by Step)
&lt;/h2&gt;

&lt;p&gt;Here’s the rough path I’m following, from zero to “I can actually solve problems”:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Necessary C++ concepts with a DSA angle&lt;/li&gt;
&lt;li&gt;(variables, memory, stack vs heap, pointers, references)&lt;/li&gt;
&lt;li&gt;Recursion&lt;/li&gt;
&lt;li&gt;(what it is, why it’s confusing, how to see the pattern)&lt;/li&gt;
&lt;li&gt;Arrays, strings, and linked lists&lt;/li&gt;
&lt;li&gt;(how data is stored, moved, and changed)&lt;/li&gt;
&lt;li&gt;Stacks and queues&lt;/li&gt;
&lt;li&gt;(simple structures that show up everywhere)&lt;/li&gt;
&lt;li&gt;Trees and heaps&lt;/li&gt;
&lt;li&gt;(how to store data in a “family tree” style structure)&lt;/li&gt;
&lt;li&gt;Graphs&lt;/li&gt;
&lt;li&gt;(networks like social media, roads, and connections)&lt;/li&gt;
&lt;li&gt;Sorting, searching, hashing&lt;/li&gt;
&lt;li&gt;(how to find and organize things efficiently)&lt;/li&gt;
&lt;li&gt;Problem-solving patterns&lt;/li&gt;
&lt;li&gt;(dynamic programming, backtracking, and other “big scary names” explained calmly)&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Each topic will be split into tiny lessons so you never feel overwhelmed.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If You’re Also Scared of DSA&lt;br&gt;
DSA can feel overwhelming at first. It definitely did for me. But avoiding it doesn’t make it easier. So I decided to stop putting it off and actually work through it, one concept at a time.&lt;/p&gt;

&lt;p&gt;What helped was:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Admitting I was scared of it&lt;/li&gt;
&lt;li&gt;Breaking it into small pieces&lt;/li&gt;
&lt;li&gt;Letting myself be bad at it at first&lt;/li&gt;
&lt;li&gt;You don’t need to be “smart enough” to learn this.&lt;/li&gt;
&lt;li&gt;You just need to move slowly and consistently.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’re in the same place, you’re not behind. You’re just starting……like me.&lt;/p&gt;

&lt;p&gt;If you’re in the same position, you’re not alone.&lt;/p&gt;

</description>
      <category>dsa</category>
      <category>cpp</category>
      <category>softwaredevelopment</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
