<?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: Ahamad Mamun Nishar Miya</title>
    <description>The latest articles on DEV Community by Ahamad Mamun Nishar Miya (@ahamad_mamunnisharmiya_).</description>
    <link>https://dev.to/ahamad_mamunnisharmiya_</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1939008%2Ff7ecc122-021f-4a1b-9570-ea3f64c31ffe.jpg</url>
      <title>DEV Community: Ahamad Mamun Nishar Miya</title>
      <link>https://dev.to/ahamad_mamunnisharmiya_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ahamad_mamunnisharmiya_"/>
    <language>en</language>
    <item>
      <title>Why ChatGPT Makes You Worse at Coding (and What to Do Instead)</title>
      <dc:creator>Ahamad Mamun Nishar Miya</dc:creator>
      <pubDate>Sat, 12 Sep 2026 16:22:01 +0000</pubDate>
      <link>https://dev.to/ahamad_mamunnisharmiya_/why-chatgpt-makes-you-worse-at-coding-and-what-to-do-instead-pl4</link>
      <guid>https://dev.to/ahamad_mamunnisharmiya_/why-chatgpt-makes-you-worse-at-coding-and-what-to-do-instead-pl4</guid>
      <description>&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4acchqx9zsajt02byfp6.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4acchqx9zsajt02byfp6.png" alt="Predict, write, compare: the loop that beats copy-pasting from ChatGPT" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ChatGPT can write better code than most junior developers. It can explain concepts, debug errors, and generate entire functions in seconds.&lt;/p&gt;

&lt;p&gt;For experienced developers, it is a superpower. For beginners trying to learn how to code, it is a trap.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem: copying code you do not understand
&lt;/h2&gt;

&lt;p&gt;When a beginner asks ChatGPT "write me a function to sort a list in Python," they get perfect code instantly. They paste it into their project, it works, and they move on.&lt;/p&gt;

&lt;p&gt;They did not learn anything. They learned how to prompt ChatGPT, not how to code.&lt;/p&gt;

&lt;p&gt;The dangerous part is that it feels like learning. You built something. But the knowledge never transferred from the screen into your head.&lt;/p&gt;

&lt;p&gt;It is like watching someone else lift weights for you and claiming you got stronger.&lt;/p&gt;

&lt;p&gt;I have watched students submit code they generated with ChatGPT without understanding a single line of it. Ask "why did you use a for loop here instead of a list comprehension?" and the honest answer is usually: "I don't know, ChatGPT wrote it."&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this happens: the missing step is prediction
&lt;/h2&gt;

&lt;p&gt;Traditional learning goes: read code, run code, see output, "okay, got it."&lt;/p&gt;

&lt;p&gt;The step almost every tutorial skips is predicting what will happen before you run it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;numbers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Most tutorials just tell you: this adds 4 to the list. Move on.&lt;/p&gt;

&lt;p&gt;A better version stops and asks: before running this, predict what &lt;code&gt;numbers&lt;/code&gt; will be after line 2. Write it down. Now run it. Were you right?&lt;/p&gt;

&lt;p&gt;If you predicted &lt;code&gt;[1, 2, 3, 4]&lt;/code&gt;, you understood the concept. If you predicted &lt;code&gt;[1, 2, 3]&lt;/code&gt; or &lt;code&gt;[4]&lt;/code&gt;, you just found a real gap in your mental model, and that gap is exactly where learning happens. Skip the prediction step, and you skip the moment that would have taught you something.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpfws2jzzw55fb7piylxy.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpfws2jzzw55fb7piylxy.png" alt="An Arclab lesson: a Python editor showing a check_inventory function, a terminal running it and confirming all assertions passed" width="800" height="496"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;This is what predicting looks like in practice: read the function, guess what &lt;code&gt;check_inventory&lt;/code&gt; returns, then run it and check.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The fix: predict, write, compare
&lt;/h2&gt;

&lt;p&gt;Active prediction creates understanding that passive watching never can. The loop is simple.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Predict&lt;/strong&gt;: read the problem and predict what the code should do, before you write anything.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write&lt;/strong&gt;: now write your own solution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compare&lt;/strong&gt;: run the expected solution, compare it to yours, and explain the difference out loud or in writing.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Take a problem like "filter a list to only include numbers greater than 5."&lt;/p&gt;

&lt;p&gt;Predict: before writing anything, decide, should this use a for loop, a list comprehension, or a filter function? What should the output look like?&lt;/p&gt;

&lt;p&gt;Write: now write your solution.&lt;/p&gt;

&lt;p&gt;Compare: look at your solution next to a reference one. If you reached for a for loop and the reference used a list comprehension, do not just shrug, explain why the comprehension is cleaner or more idiomatic. That explanation is where the concept actually sticks.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to use ChatGPT the right way
&lt;/h2&gt;

&lt;p&gt;ChatGPT is not the enemy here. Using it passively is.&lt;/p&gt;

&lt;p&gt;Good uses, where you are the one doing the thinking:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Explain why this code uses &lt;code&gt;enumerate&lt;/code&gt; instead of &lt;code&gt;range&lt;/code&gt;"&lt;/li&gt;
&lt;li&gt;"What is the difference between &lt;code&gt;.append()&lt;/code&gt; and &lt;code&gt;.extend()&lt;/code&gt;?"&lt;/li&gt;
&lt;li&gt;"I wrote this function but it is slow, how would you optimize it, and why?"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bad uses, where ChatGPT does the thinking for you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Write me a function that does X" (then copy-paste without reading it)&lt;/li&gt;
&lt;li&gt;"Here is my homework, solve it"&lt;/li&gt;
&lt;li&gt;"Generate a complete program for X"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The rule that keeps you on the right side of that line: use ChatGPT to explain code, not to generate it for you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try this for 7 days
&lt;/h2&gt;

&lt;p&gt;Here is something concrete to try starting today. For the next seven days, every time you are about to run a piece of code:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Stop.&lt;/li&gt;
&lt;li&gt;Write down your prediction, on paper, in a comment, anywhere.&lt;/li&gt;
&lt;li&gt;Run the code.&lt;/li&gt;
&lt;li&gt;If your prediction was wrong, write one sentence explaining why.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By day seven, you will notice your predictions getting more accurate, you will start catching bugs before you even run the code, and you will stop needing to run code just to find out what it does.&lt;/p&gt;

&lt;p&gt;That is the actual difference between copying and understanding.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choose understanding
&lt;/h2&gt;

&lt;p&gt;Learning to code is hard. ChatGPT can make it easier, or it can make it impossible. The difference is whether you are using it to understand code, or using it to avoid understanding code.&lt;/p&gt;

&lt;p&gt;Choose understanding.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you want a structured way to practice this, I built &lt;a href="https://arclab.app" rel="noopener noreferrer"&gt;Arclab&lt;/a&gt; around this exact loop. Every lesson forces you to predict before showing you the answer. It is free to try.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This post originally appeared on the &lt;a href="https://arclab.app/blog/why-chatgpt-makes-you-worse-at-coding" rel="noopener noreferrer"&gt;Arclab blog&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>learning</category>
      <category>beginners</category>
      <category>python</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
