<?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>DEV Community: Yacham Duniya (CRAN3)</title>
    <description>The latest articles on DEV Community by Yacham Duniya (CRAN3) (@cr4n31).</description>
    <link>https://dev.to/cr4n31</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%2F3846619%2F66845d66-d9fb-4bf4-831f-39de8ba89d2f.jpg</url>
      <title>DEV Community: Yacham Duniya (CRAN3)</title>
      <link>https://dev.to/cr4n31</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cr4n31"/>
    <language>en</language>
    <item>
      <title>What if you had a visual tool to help you understand DSA?</title>
      <dc:creator>Yacham Duniya (CRAN3)</dc:creator>
      <pubDate>Sat, 04 Apr 2026 08:23:49 +0000</pubDate>
      <link>https://dev.to/cr4n31/what-if-you-had-a-visual-tool-to-help-you-understand-dsa-27o6</link>
      <guid>https://dev.to/cr4n31/what-if-you-had-a-visual-tool-to-help-you-understand-dsa-27o6</guid>
      <description>&lt;p&gt;So my first Dev.to post was about a project I built and I'm currently working on. So recently I started DSA (Data Structures &amp;amp; Algorithms) and I have to say it's been fun but I'm a visual learner and the concepts were'nt really getting to me at first&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The whole idea behind binary search had me on a chokehold for a day and i had myself asking how do i turn this concept into code - P.S &lt;strong&gt;I actually did&lt;/strong&gt;. Don't even get me started on algorithms that are categorised under &lt;strong&gt;O(N^2)&lt;/strong&gt; Insertion sort to be exact&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So long story short, I came up with &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;AlgoTracker - Data-Visualiser&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So as the name implies it visualises data, but to be more intricate it shows how these data concepts work in real time, step by step as the image below shows&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%2F1w9sv51gcjti80sj4o4z.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%2F1w9sv51gcjti80sj4o4z.jpeg" alt="Search screenshot" width="800" height="673"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a screenshot of the search panel and below you can see the &lt;strong&gt;step counter&lt;/strong&gt; - This shows you which cell (data) in the array the computer sorted or searched and which it didn't, and how it came to the final result and it also displays the time taken to complete the task and the exact algorithm used - &lt;strong&gt;O(N), O(log n), O(N^2)&lt;/strong&gt; and then there's a graph that also compares the algorithms against each other to know which is faster &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Note:&lt;/strong&gt; Search Notations compare against each other and Sort notations compare against each other, they don't inter-compare so a search algorithm cannot be compared against a sort algorithm&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So i'll go into details about each of this features&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Sort Panel&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;So the sort panel is where you insert data to be sorted through any of the sorting options and then the panel gives back the sorted data, time taken to sort and the steps - Sorting refers to arranging unsorted or mixed values in a certain order - and in our case it's ascending so the lowest value to the highest&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Right now the only sorting options are &lt;strong&gt;Selection&lt;/strong&gt; &amp;amp; &lt;strong&gt;Insertion&lt;/strong&gt; and they only sort numbers but I'm working on adding string comparisions and other sorting options&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Selection Sort&lt;/strong&gt;&lt;br&gt;
In selection sort each cell in the array is checked from left to right to determine which value is least. As each cell is checked the lowest value that has been encountered is being kept in track or stored ( It’s index is being stored in a variable ). If a cell that contains a even lower value compared to the one in the variable is encountered. The value in the variable is replaced and it points to the new value ( index )&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[ 2, 6, 1, 3 ] // Lowest value so far is 2
[ 2, 6, 1, 3 ] // Lowest value so far is still 2
[ 2, 6, 1, 3 ] // Lowest value so far now is 1
[ 2, 6, 1, 3 ] // Lowest value so far is still 1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once the index which contains the lowest number is determined and/or found. Its value is swapped with the first index in the pair&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[ 1, 6, 2, 3 ]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each pass-through consists of the first step of searching and comparisons and then the second step of swapping. So this pass-through is repeated up until the array is fully sorted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Below is the code implementation&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;selectionSort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;lowestNumberIndex&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;j&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;j&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;j&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                    &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;j&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;lowestNumberIndex&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                            &lt;span class="nx"&gt;lowestNumberIndex&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;j&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                        &lt;span class="p"&gt;}&lt;/span&gt;
                    &lt;span class="p"&gt;}&lt;/span&gt;
                &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;lowestNumberIndex&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                        &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;temp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
                        &lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;lowestNumberIndex&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
                        &lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;lowestNumberIndex&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;temp&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;And below is a screenshot of the sort panel of the visualiser&lt;/strong&gt;&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%2Fdkaxef3q2iz88papm5rp.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%2Fdkaxef3q2iz88papm5rp.png" alt="sort panel ss" width="800" height="263"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So you can see the unsorted data and sorted data are displayed - Sorted below and unsorted above and below the sorted data you can see details such as &lt;em&gt;&lt;strong&gt;Algorithm, Time &amp;amp; Complexity(The Big O Notation)&lt;/strong&gt;&lt;/em&gt;. It shows we used selection sort and it took &lt;strong&gt;0.1ms&lt;/strong&gt; for the computer to sort the whole array which is pretty fast. Now for the step visualiser&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%2Fk57nq9fvfdoufma8b1hf.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%2Fk57nq9fvfdoufma8b1hf.png" alt="Image" width="555" height="144"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;So this is the unsorted data before it gets sorted&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&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%2Fbvxv0cl33iictt83e9xs.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%2Fbvxv0cl33iictt83e9xs.png" alt="Image" width="561" height="222"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;This is the first sorting as the definition i gave originally said the whole array is checked from left to right to check which is least, in this case it's &lt;strong&gt;1&lt;/strong&gt; so it's position is swapped with the value that is currently stored in index 0 which is &lt;strong&gt;10&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&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%2F3env67nfnj1sp4zwrro4.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%2F3env67nfnj1sp4zwrro4.png" alt="Image" width="553" height="226"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Same thing here the scan starts from index 1 since the least value has already been found it starts scanning from index 1 till the end to find the second least value which is &lt;strong&gt;2&lt;/strong&gt; so it's postion is swapped with &lt;strong&gt;8&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&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%2F4i2ep0qkspjh1og496jl.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%2F4i2ep0qkspjh1og496jl.png" alt="Image" width="552" height="226"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;And same thing here up until the end&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;So if you observe properly it takes 10 steps and 0.1ms to sort 10 values which is pretty fast or could be slow depending on if another algorithm can do it faster&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Insertion Sort&lt;/strong&gt;&lt;br&gt;
Insertion Sort consists of the following steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;In the first pass-through, we temporarily remove the value at index 1 (the second cell) and store it in a temporary variable. This will leave a gap at that index, since it contains no value. In subsequent pass-throughs, we remove the values at the subsequent indexes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We then begin a shifting phase, where we take each value to the left of the gap and compare it to the value in the temporary variable. If the value to the left of the gap is greater than the temporary variable we shift that value to the right. As we shift values to the right, inherently the gap moves leftward. As soon as we encounter a value that is lower than the temporary removed value, or we reach the left end of the array. The shifting phase is over.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We then insert the temporarily removed value into the current gap.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Steps 1 - 4 represent a single pass-through. we repeat these pass throughs until the pass-through begins at the final index of the array. By then, the array will have been fully sorted.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Below is the code implementation&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;insertionSort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
    &lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
        &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;temp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
        &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;j&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;j&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;j&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;j&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;temp&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;j&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
            &lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;j&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;j&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nx"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;j&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;temp&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Below is a screenshot of the same sorted data but if you look at the algorithm it says &lt;strong&gt;Insertion Sort&lt;/strong&gt; so this was sorted using insertion and if you pay close attention the time taken was &lt;strong&gt;1ms&lt;/strong&gt;&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%2Fg0fs3damnezmpdbv6vxn.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%2Fg0fs3damnezmpdbv6vxn.png" alt="Image" width="568" height="165"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;So if you compare it against the info we got from selection sort which took &lt;strong&gt;0.1ms&lt;/strong&gt; to sort it - it tells us &lt;strong&gt;Selection Sort is faster in this scenrio&lt;/strong&gt; but selection sort took 10 steps how many steps did insertion take?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&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%2Foo7ltmdpaw6jlwxgik8j.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%2Foo7ltmdpaw6jlwxgik8j.png" alt="image" width="554" height="225"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now this says insertion took 9 steps which is way faster than selection's 10 using this data alone we won't be wrong to say &lt;strong&gt;insertion is faster&lt;/strong&gt; But that is where the graph panel comes in because it compares these data and presents it in a chart to tell you which is faster and the image below clearly shows selection is faster although the main reason is because selection is more efficient as data grows&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%2Ffx9dxwcr05zb7z0bel5k.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%2Ffx9dxwcr05zb7z0bel5k.png" alt="Image" width="599" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So this tool not only presented the steps (&lt;em&gt;- The number of steps and how it checked each value in the array -&lt;/em&gt;) the computer used to come about the final result, it also compared each algorithm to give which is faster and more efficienct for your code. So as it is an academic tool I believe it's also useful for devs also - well the final product would be. &lt;/p&gt;

&lt;p&gt;Now for search&lt;/p&gt;

&lt;h2&gt;
  
  
  Search Panel
&lt;/h2&gt;

&lt;p&gt;The search panel is still quite similar but different it searches the array of data for any target value of your choice and under this we have &lt;strong&gt;Linear Search&lt;/strong&gt; &amp;amp; &lt;strong&gt;Binary Search&lt;/strong&gt; one of the two fundamental search algorithms - along the line i plan on adding hash table searching as it's way faster than both of them but for now it's just these 2&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linear Search&lt;/strong&gt;&lt;br&gt;
So linear search is quite simple, it searches each cell in the array from left to right until it finds the target value. That's literally it. No shortcuts, no skipping — just checking every single value one by one until it either finds what it's looking for or reaches the end of the array.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;If the target value is at the end of the array — congratulations, it checked everything before getting there. That's O(N) for you.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;


&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;linearSearch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Screenshot of Linear Search&lt;/strong&gt;&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%2F7d1oi4lmvwwkx71cgq0j.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%2F7d1oi4lmvwwkx71cgq0j.png" alt="Linear Search" width="800" height="341"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Based on this image we can clearly see it took literally no time to search and find the target value which is &lt;strong&gt;6&lt;/strong&gt; but it took a total of &lt;strong&gt;6&lt;/strong&gt; steps which is basically how an O(N) algorithm works, the number of steps increases as the data increases&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Binary Search&lt;/strong&gt;&lt;br&gt;
Now this one is where it gets interesting. Binary Search doesn't check every cell — it's smarter than that. But the catch is the array has to be sorted first. That's the deal.&lt;br&gt;
Here's how it works — it starts at the middle of the array and checks if the target value is higher or lower than the middle value. If the target is lower it eliminates the entire right half of the array and repeats the process on the left half. If it's higher it eliminates the left half entirely. It keeps halving the search space until it finds the target or runs out of values to check.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;So in an array of ten, and you're looking for ten it'll start at 5, then compare 5 to the target value which is 10 so 5 is smaller than 10 meaning 10 would be found on the right hand side so it'll eliminate all of the values at the left of five, that's the basic explanation&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is why it's O(log N) — every step cuts the problem in half. It's genuinely fast.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Below is the code implementation&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;binarySearch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;left&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;right&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="k"&gt;while&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;left&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="nx"&gt;right&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;mid&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;floor&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;left&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;right&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

        &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;mid&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;mid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;array&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;mid&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nx"&gt;left&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;mid&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nx"&gt;right&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;mid&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Screenshot of the search panel - Binary Search&lt;/strong&gt;&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%2Ff8xm0ujh8w54ddgxq3l8.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%2Ff8xm0ujh8w54ddgxq3l8.png" alt="Binary" width="800" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;So right now based on this image we can see it actually took the same time in searching the same value as linear search but in less steps which is &lt;strong&gt;3&lt;/strong&gt; compared to linear search's &lt;strong&gt;6&lt;/strong&gt; so due to this we can clearly say binary search is faster&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&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%2Fono1mygybc4jmniowiis.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%2Fono1mygybc4jmniowiis.png" alt="Image" width="684" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;As the data size grows, Linear Search grows at the same rate — 20 elements = 20 operations, 100 elements = 100 operations. It's a straight line because it checks everything one by one.&lt;br&gt;
Binary Search barely moves. At 20 elements it only needs about 4-5 operations because it keeps halving the problem. That curved flat line is O(log N) in action. and in our case of 10 elements it only needed 3&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Final Thoughts&lt;/strong&gt;&lt;br&gt;
AlgoTracker started as a personal tool — I needed to see these concepts to understand them and textbooks weren't it at least for me that is. But the more I built it out the more I realised it could genuinely help other visual learners who are in the same boat I was in.&lt;br&gt;
It's still a work in progress — string comparisons, hash table searching, and more algorithms are on the roadmap. But as it stands right now it does what it was built to do: show you exactly what's happening under the hood, step by step, no hand waving.&lt;br&gt;
Live demo: &lt;a href="https://algo-tracker-vu7t.vercel.app/" rel="noopener noreferrer"&gt;https://algo-tracker-vu7t.vercel.app/&lt;/a&gt;&lt;br&gt;
GitHub: &lt;a href="https://github.com/Cr4N31/AlgoTracker" rel="noopener noreferrer"&gt;https://github.com/Cr4N31/AlgoTracker&lt;/a&gt;&lt;br&gt;
If you're learning DSA and you're a visual learner — give it a spin and let me know what you think 👇&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>javascript</category>
      <category>opensource</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I’ve been thinking about this for a while, and I want honest answers, not the polished LinkedIn version.</title>
      <dc:creator>Yacham Duniya (CRAN3)</dc:creator>
      <pubDate>Wed, 01 Apr 2026 17:49:30 +0000</pubDate>
      <link>https://dev.to/cr4n31/ive-been-thinking-about-this-for-a-while-and-i-want-honest-answers-not-the-polished-linkedin-4p39</link>
      <guid>https://dev.to/cr4n31/ive-been-thinking-about-this-for-a-while-and-i-want-honest-answers-not-the-polished-linkedin-4p39</guid>
      <description>&lt;p&gt;Why did you &lt;em&gt;really&lt;/em&gt; get into tech?&lt;/p&gt;

&lt;p&gt;Not the safe answer. Not “I love problem solving” or “tech is the future.” I mean the real reason. Was it curiosity? Freedom? Money? The idea of building something that actually matters? Escaping something? Proving something?&lt;/p&gt;

&lt;p&gt;Because if we’re being real… a lot of us didn’t start this journey dreaming about standups, Jira tickets, or optimizing someone else’s product roadmap.&lt;/p&gt;

&lt;p&gt;I’m here looking at my own career, and don’t worry, it’s not your usual cliché “escape the matrix” conversation. It’s more of me trying to understand where exactly I am headed and where I intend to head, if that makes any sense… I hope it does.&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%2Fqk4f9lzyniyv51vodotv.gif" 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%2Fqk4f9lzyniyv51vodotv.gif" alt="nervous anime gif" width="250" height="250"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But what I mean is how we don’t lose sight of that creative side and the fun part of it all, because I noticed that somewhere along the line, something shifts.&lt;/p&gt;

&lt;p&gt;You start off wanting to build. To explore. To create weird, ambitious, maybe even unrealistic things. Like I, for instance—I wanted to make games. Kenzie from Game Shakers lowkey inspired the idea (not really sure how many of you guys watched the show). I had a notebook where I wrote the whole story of the game, and I even hopped on an old Windows application that let you create 3D model characters. All that was missing was the programming skills. I lost the notebook, by the way, and the PC crashed in case anyone was wondering. &lt;br&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%2Fx2n9wvzpxtvq3i48ohvf.gif" 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%2Fx2n9wvzpxtvq3i48ohvf.gif" alt="sad cat" width="200" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now that I'm thinking about it, It does sting because the plot was peak trust me, this isn't even me exaggerating&lt;/p&gt;

&lt;p&gt;Fast forward to the end of high school, when I started learning coding—I self-taught for a while before I got into college. The reality presented to me wasn’t really how I imagined it. It slowly grew into deadlines, salaries, titles, deliverables, stability. And before you even notice it, you’re deep in the “job loop.”&lt;/p&gt;

&lt;p&gt;Wake up → code → fix bugs → ship → repeat.&lt;/p&gt;

&lt;p&gt;Basically kept in an endless circle with no real development—well, aside from the number of stacks added to your portfolio. And I’m talking to the people who actually got into tech not just for the job aspect, but because of the belief of coding the next Facebook or the next Amazon.&lt;/p&gt;

&lt;p&gt;All those original ideas… the ones that made you open your first IDE… they get pushed to “later.” Then “someday.” Then… forgotten.&lt;/p&gt;

&lt;p&gt;So here’s the uncomfortable question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is this just how it’s supposed to go? Or are we doing something wrong?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Is the system designed this way, where passion is just the entry point and routine takes over? Or do we slowly trade our curiosity for comfort without realizing it?&lt;/p&gt;

&lt;p&gt;And more importantly:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do you avoid becoming someone who once dreamed of building things… but now only maintains them?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It’s a genuine question.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What habits helped you stay creative while working a full-time dev job?&lt;/li&gt;
&lt;li&gt;Have you managed to build something meaningful &lt;em&gt;alongside&lt;/em&gt; your job?&lt;/li&gt;
&lt;li&gt;Or did you consciously choose stability over exploration—and are you okay with that?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No judgment either way. Just trying to understand if there’s a better way to navigate this path without losing the reason we started.&lt;/p&gt;

&lt;p&gt;I honestly encourage any feedback you guys have in the comments albeit addition etc.. Thanks for reading :)&lt;/p&gt;

</description>
      <category>programming</category>
      <category>productivity</category>
      <category>discuss</category>
      <category>career</category>
    </item>
    <item>
      <title>Trying out Google AI studio</title>
      <dc:creator>Yacham Duniya (CRAN3)</dc:creator>
      <pubDate>Tue, 31 Mar 2026 01:33:52 +0000</pubDate>
      <link>https://dev.to/cr4n31/trying-out-google-ai-studio-134h</link>
      <guid>https://dev.to/cr4n31/trying-out-google-ai-studio-134h</guid>
      <description>&lt;p&gt;&lt;em&gt;This post is my submission for &lt;a href="https://dev.to/deved/build-apps-with-google-ai-studio"&gt;DEV Education Track: Build Apps with Google AI Studio&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Went the simple route for this one — I prompted it to build a portfolio website:&lt;/p&gt;

&lt;p&gt;Build a simple portfolio template using React + JavaScript and Tailwind for styling. Color palette should have black as the primary and red as the secondary.&lt;/p&gt;

&lt;p&gt;And honestly? It came out pretty clean. My portfolio design is still better though 🙂&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&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%2F3muksk5bians55si6msc.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%2F3muksk5bians55si6msc.png" alt=" " width="800" height="332"&gt;&lt;/a&gt;&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%2Fg1xjhshwm1kxfv2g9tie.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%2Fg1xjhshwm1kxfv2g9tie.png" alt=" " width="800" height="359"&gt;&lt;/a&gt;&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%2Fg4q0ws4i7yv6vq7zjtef.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%2Fg4q0ws4i7yv6vq7zjtef.png" alt=" " width="800" height="416"&gt;&lt;/a&gt;&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%2Fskuuqig0p9n4i9wy3sn2.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%2Fskuuqig0p9n4i9wy3sn2.png" alt=" " width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  My Experience
&lt;/h2&gt;

&lt;p&gt;But real take is the AI studio is really smart, I was skeptical when the news of it's release first dropped and when it was initially released I became even more skeptical, A single tool that can take an hours task and complete it in mere minutes has a way of leaving an impression on you, but as developers we grow, we evolve and we use the tools available to us to provide solutions for the problems that are presented before us and tools like this are revolutionary. First of all&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The codebase panel is actually really useful. It lets you edit the generated code directly inside the studio, basically using it as a lightweight IDE. So if something doesn't feel right you can go in and fix it without leaving the tool.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It suggests features as it builds. For the portfolio it suggested a contact form unprompted. On a previous project — a magic card generator from the tutorial — it suggested a filter feature so users could sort cards by type, and a custom artwork feature that it described as one that "tailors specifically to the card's name and visual description." Its words, not mine 😄&lt;br&gt;
I didn't add an API key for Imagen 4 so the image generation side didn't really work — but even without that it was a solid experience.&lt;br&gt;
Still a loyal Claude fanboy though, just to be clear 😂&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>deved</category>
      <category>learngoogleaistudio</category>
      <category>ai</category>
      <category>gemini</category>
    </item>
    <item>
      <title>Imposter Syndrome in the Tech Space</title>
      <dc:creator>Yacham Duniya (CRAN3)</dc:creator>
      <pubDate>Sun, 29 Mar 2026 14:06:54 +0000</pubDate>
      <link>https://dev.to/cr4n31/imposter-syndrome-in-the-tech-space-4kn</link>
      <guid>https://dev.to/cr4n31/imposter-syndrome-in-the-tech-space-4kn</guid>
      <description>&lt;p&gt;&lt;strong&gt;I started late, struggled with JS, and spent way too long shrinking into self doubt&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;3 years ago I didn't know what a component was. Didn't know what mount/unmount meant. Big O Notation was just letters and symbols that meant nothing to me.&lt;/p&gt;

&lt;p&gt;This year marks 3 years of coding for me. And honestly? It hasn't always felt like progress.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The comparison trap&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;HTML and CSS came naturally, I picked them up fast and felt good about it. Then JavaScript hit and everything slowed down. It's still the thing I wrestle with most to this day.&lt;/p&gt;

&lt;p&gt;What made it worse was social media. I'd open Instagram or TikTok and see developers my age shipping insane projects, explaining complex systems like it was nothing, and I'd just... shrink. That's the only word for it. I'd shrink into this shell of self doubt and start asking myself the same questions on repeat:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What can I build that hasn't already been built?&lt;/em&gt;&lt;br&gt;
&lt;em&gt;What separates me from every other developer?&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Out of 100 devs, why would anyone pick me?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It wasn't hate. It was a healthy jealousy if that makes sense, I wanted to be where they were, I just couldn't see how to get there from where I was standing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The shift&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I can't point to one moment where everything changed. It was gradual.&lt;/p&gt;

&lt;p&gt;I started learning React properly mid last year. This year I picked up DSA, SQL, and Express, because I got convinced pretty quickly that frontend alone doesn't sell, and honestly I wasn't comfortable staying in that lane anyway.&lt;/p&gt;

&lt;p&gt;Built a few practice projects, freelanced a little here and there, nothing groundbreaking... well asides the current project I'm working on, the general idea is... well I believe it'll be groundbreaking but currently the current product is all over the place but it's real work. The job market hasn't been the kindest but I'm still pushing. I'm still young, I have time, and I'm not saying that to slack off, I'm saying it because panicking about where I'm not yet has never once helped me get there faster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I actually think now&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I stopped looking at it as a competition. I started having fun with it. And the moment I did that, the projects started coming, the progress started showing, and the self doubt got quieter.&lt;/p&gt;

&lt;p&gt;You're not behind. You're just on your own timeline. And your progress is only measured by how far you can see yourself going, not by what someone else is shipping online. Low-key I'm saying this to convince myself too but nevertheless&lt;/p&gt;

&lt;p&gt;If you're in the same headspace I was in, keep building. Even the small stuff counts. It all compounds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;P.S: I still have trouble navigating github sometimes, Thank God for git-repo extensions on VScode lol&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>career</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Hey Dev.to, I'm Bitrus</title>
      <dc:creator>Yacham Duniya (CRAN3)</dc:creator>
      <pubDate>Fri, 27 Mar 2026 18:47:43 +0000</pubDate>
      <link>https://dev.to/cr4n31/hey-devto-im-bitrus-3oko</link>
      <guid>https://dev.to/cr4n31/hey-devto-im-bitrus-3oko</guid>
      <description>&lt;p&gt;I'll keep the intro short , I'm a full-stack developer from Nigeria, I go by CRAN3 - Honestly its my Call of duty username and basically most of my socials but that's a story for another day, I just shipped something I actually want to talk about.&lt;/p&gt;

&lt;p&gt;So here's the thing about me and DSA&lt;br&gt;
I struggled with it. Not because I wasn't trying I actually was. But reading "Binary Search is O(log N)" over and over did nothing for me. I needed to see it happen. I'm just wired that way.&lt;br&gt;
So instead of fighting it, I leaned into it and built AlgoTracker.&lt;/p&gt;

&lt;p&gt;What it is&lt;br&gt;
A visual DSA tool. You pick an algorithm, throw in some data, and watch it work in real time, step by step.&lt;br&gt;
It covers Linear and Binary Search, Selection and Insertion Sort, a step visualizer, and my personal favourite which is the time complexity graph that actually runs each algorithm and plots how long it takes based on input size. Seeing O(log N) stay flat while O(N²) shoots up was the moment DSA finally made sense to me.&lt;br&gt;
Built with React, Tailwind CSS v4, and Recharts.&lt;br&gt;
I'm here to build in public and connect with people doing the same. Say hi&lt;br&gt;
&lt;a href="https://algo-tracker-vu7t.vercel.app/" rel="noopener noreferrer"&gt;https://algo-tracker-vu7t.vercel.app/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/Cr4N31" rel="noopener noreferrer"&gt;https://github.com/Cr4N31&lt;/a&gt;&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%2Frs174klvtb9m4mx74vgh.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%2Frs174klvtb9m4mx74vgh.jpeg" alt=" " width="800" height="604"&gt;&lt;/a&gt;&lt;br&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%2Fs11d8ehv7yhfiz5wwbbm.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%2Fs11d8ehv7yhfiz5wwbbm.jpeg" alt=" " width="800" height="649"&gt;&lt;/a&gt;&lt;br&gt;
)&lt;br&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%2Fggon00a0xjfl5xe900on.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%2Fggon00a0xjfl5xe900on.jpeg" alt=" " width="800" height="653"&gt;&lt;/a&gt;&lt;br&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%2Fm3g2dx1vh8fuspgy4uf0.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%2Fm3g2dx1vh8fuspgy4uf0.jpeg" alt=" " width="800" height="649"&gt;&lt;/a&gt;&lt;br&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%2Fxetxgtqe3zpt5u6lcrbq.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%2Fxetxgtqe3zpt5u6lcrbq.jpeg" alt=" " width="800" height="673"&gt;&lt;/a&gt;&lt;br&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%2Fk07hgxhe9xoiai1r66tl.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%2Fk07hgxhe9xoiai1r66tl.jpeg" alt=" " width="800" height="872"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
