<?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: N E I L  O H E N E</title>
    <description>The latest articles on DEV Community by N E I L  O H E N E (@0xdvc).</description>
    <link>https://dev.to/0xdvc</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%2F1071038%2Fe4f0ae5d-ec5c-4e27-a35a-4295231d3265.jpeg</url>
      <title>DEV Community: N E I L  O H E N E</title>
      <link>https://dev.to/0xdvc</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/0xdvc"/>
    <language>en</language>
    <item>
      <title>How Not to Think</title>
      <dc:creator>N E I L  O H E N E</dc:creator>
      <pubDate>Sat, 18 Oct 2025 22:05:01 +0000</pubDate>
      <link>https://dev.to/0xdvc/how-not-to-think-1g8i</link>
      <guid>https://dev.to/0xdvc/how-not-to-think-1g8i</guid>
      <description>&lt;p&gt;When my dad tried to teach me to drive a manual car, I quickly realized I was out of my depth. I'd been cruising in an automatic for years. Suddenly, I was stalling the engine left and right. At one point, I nearly drove into a gutter while trying to downshift on a turn. My dad kept repeating, "Feel the car, feel the biting point, let it breathe, be part of the car." Be part of the car? I barely felt like part of myself. But the way he said it… you could tell he loved it as much as I love computers. I thought it would be simple. It was anything but. I almost quit.&lt;/p&gt;

&lt;p&gt;Meanwhile, my friend Elorm seemed to take to it naturally. I shared my ordeal with him and he kept on saying the same thing, "Feel the breaking point. That resistance, and slowly release the pressure". He was laughing through every mistake I shared with him. I started thinking about why I struggled so much. The automatic had done all the work for me for so long that I had never learned what it actually takes to drive. The timing, the feel, the control. Automatic gets you where you're going, but manual teaches you how the machine actually works.&lt;/p&gt;

&lt;p&gt;That's what I see with engineers and AI. Many hit a problem, immediately ask ChatGPT for the answer, copy the solution, and move on. No thinking. No experimenting. No growth. It's like learning to drive but leaving the cruise control on the whole time. You reach the destination, but you never really drive. And there's research to back this up. An MIT study found that people who rely on AI for complex tasks like writing essays actually show weaker brain connectivity. Strategic thinking, memory, creativity, they all take a hit. The researchers call it "cognitive debt." You borrow mental effort from AI, but the interest stacks up fast.&lt;/p&gt;

&lt;p&gt;I think about it like this: I'm the craftsman, AI is the builder. I handle the reasoning, the trade-offs, the strategic thinking. AI handles the syntax, the boilerplate, the pattern matching. That's the distinction that matters. It keeps you valuable while still leveraging AI's power. When I first learned HTML and CSS, I used Notepad. Python? Just the basic IDLE. Java?? I read [Herbert Schildt's Java Reference Book](&lt;a href="https://www.accessengineeringlibrary.com/content/book/9781260463415" rel="noopener noreferrer"&gt;https://www.accessengineeringlibrary.com/content/book/9781260463415&lt;/a&gt;. No code helpers, no shortcuts, no AI. Just me and the docs, making mistake after mistake. That struggle built something in me. The neural pathways that make you actually understand what you're doing, not just copy-pasting solutions. It's like knowing why a recipe works versus just following steps. But here's the thing: in a fast-moving world, you can't learn everything the hard way. You need speed. You just can't let it replace understanding.&lt;/p&gt;

&lt;p&gt;So where's the line? It's what I call the "biting point," same as with that manual transmission. It's that moment when you've struggled enough to understand the problem, but you're ready for AI to help you implement faster. You're not skipping the thinking. You're accelerating the doing. Like with driving manual, it takes adjusting. You mess up. You refine. Eventually, it becomes muscle memory. You know when to engage first gear, when to let the clutch out, when to give it gas. Same with coding. You struggle through a problem until you understand the principles. Then you iterate. You build those neural pathways. Eventually, you can spot similar problems instantly and know exactly how to approach them. That's how you avoid "cognitive offloading," which is what the research warns about. You're not skipping the understanding phase. You're just speeding up implementation. The system works in phases: pure struggle to learn, AI assistance while you maintain control, validation where you test everything, and finally mastery where you recognize patterns instantly. You become that manual transmission driver who can feel exactly what the car needs.&lt;/p&gt;

&lt;p&gt;My approach is simple but takes discipline. When learning something new? No AI. Zero. You build understanding layer by layer. AI would just shortcut that process and rob you of real learning. Set your own goals. Struggle through it. Build the mental models. For implementation? That's when AI becomes useful. You already know what you want. AI writes it. You validate. You iterate. The thinking stays yours. For validation? Use AI to find how others solved similar problems. Study their patterns. Then come back and make yours better. The key is agency. AI responds to your questions. It doesn't drive. You decide when you need help.&lt;/p&gt;

&lt;p&gt;Steve Yegge nailed it recently. What makes someone "senior" in the AI era? Two things: knowing what you want before AI writes it, and catching when AI gives you garbage. That's exactly what the research shows. When you lose the ability to validate AI output, your brain literally stops engaging. It's cognitive offloading in action.&lt;/p&gt;

&lt;p&gt;Here's my go-to prompt when I need AI help:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Ask me one question at a time so we can develop a thorough, step-by-step spec for this idea. Each question should build on my previous answers, and our end goal is to have a detailed specification I can hand off to a developer. Let's do this iteratively and dig into every relevant detail. Remember, only one question at a time.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It forces me to think through each step. I maintain ownership. I develop understanding instead of just accepting whatever AI spits out. The real danger? It's not that AI will replace engineers. It's that engineers will replace themselves with AI-dependent versions that can't think independently.&lt;/p&gt;

&lt;p&gt;Think about building intelligent systems. You can't build what you don't understand. We're creatures of reasoning. How do you build something you have no clue about? LLMs can't go beyond their training. Sure, they remix existing solutions in new ways. But critical thinking? Like the flat earth versus spherical earth debate? If LLMs existed back then, they'd only work within the flat earth paradigm. It took someone to challenge the premise. To say, "Hey, that doesn't seem right." Newton observing an apple. Euclid discovering density. That's human reasoning breaking new ground.&lt;/p&gt;

&lt;p&gt;As 3Blue1Brown points out, LLMs are pattern matching systems. Sophisticated ones, but still just pattern matchers. They generate content based on similarity. They don't understand context. They don't actually "know" anything. They predict what comes next based on training data. When you outsource thinking to a system that doesn't think, you're not delegating work. You're letting your skills atrophy.&lt;/p&gt;

&lt;p&gt;The solution isn't avoiding AI. That's not realistic. The solution is using it strategically while keeping your edge sharp. Build deep understanding of algorithms, data structures, system design. Get operations experience. Learn to validate AI output and catch bad guidance. Cross-validate with multiple AI systems. Use AI as your turbocharger, not your replacement. Stay the craftsman. Let AI be the builder.&lt;/p&gt;

&lt;p&gt;Your brain is a muscle. It needs exercise. Challenges make you grow. Reasoning through problems makes you better. Don't let AI steal that from you. The projects I work on and build today are way more complex than anything I imagined years ago. But I understand them deeply. I kept my thinking sharp while using AI to move faster. That's the difference. Using AI versus being used by it.&lt;/p&gt;

&lt;p&gt;Everyone's replaceable, believe it or not. In a world riddled by mediocrity, I'm still enthused by what the human mind can really do. I've met some really amazing people whose thinking process always marvels me. AI would always be a supportive partner, like Tony Stark and Jarvis type thing. But just as that. May we find our place as masters of these tools in the world and season we are ushering into.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The research referenced in this post comes from &lt;a href="https://arxiv.org/abs/2504.13641" rel="noopener noreferrer"&gt;"Your Brain on ChatGPT: Accumulation of Cognitive Debt when Using an AI Assistant for Essay Writing Task"&lt;/a&gt; by Kosmyna et al. from MIT Media Lab. The study provides compelling evidence for the cognitive impacts of AI dependence.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>ai</category>
      <category>softwareengineering</category>
      <category>learning</category>
      <category>development</category>
    </item>
    <item>
      <title>🔑 10 Easy Tips to Make Your Code Look Pro!</title>
      <dc:creator>N E I L  O H E N E</dc:creator>
      <pubDate>Mon, 08 May 2023 08:20:28 +0000</pubDate>
      <link>https://dev.to/0xdvc/10-easy-tips-to-make-your-code-look-pro-300n</link>
      <guid>https://dev.to/0xdvc/10-easy-tips-to-make-your-code-look-pro-300n</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.&lt;/em&gt;😂&lt;br&gt;
&lt;strong&gt;&lt;em&gt;~ John Woods&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As a programmer, writing clean and maintainable code is like doing laundry - it's not always fun, but it's essential. Not only does it make your job easier, but it also helps others understand your code easily. In this post, I will share ten free tips that will help you write clean and maintainable code, even if you're new to programming.&lt;/p&gt;

&lt;h2&gt;
  
  
  🏷 Give Your Code A Name Tag!
&lt;/h2&gt;

&lt;p&gt;The point is, it helps others understand what your code does and makes it easier to read. Always use descriptive names for your classes, methods, and variables. Naming conventions do matter when writing code. Use the appropriate case style or naming conventions available when writing code.  So, instead of using vague names like &lt;code&gt;x&lt;/code&gt; and &lt;code&gt;y&lt;/code&gt;, you could use names like &lt;code&gt;numberOfStudents&lt;/code&gt; and &lt;code&gt;totalSales&lt;/code&gt;. It may seem like a small thing, but it can make a big difference in the readability and maintainability of your code.&lt;/p&gt;

&lt;h2&gt;
  
  
  👌🏾 Keep Your Functions/Methods Short and Simple!
&lt;/h2&gt;

&lt;p&gt;Functions/methods should be structured just like paragraphs in a book - concise and focused on one topic. Paragraphs that cover more than one topic are like a jumbled mess of ideas - they're difficult to comprehend. It's important to keep them short and to the point, and a good rule of thumb is to limit them to one idea or action. Think of them as building blocks of code!&lt;/p&gt;

&lt;h2&gt;
  
  
  ✍🏾 Comment Your Code!
&lt;/h2&gt;

&lt;p&gt;Comments are like little notes that help you and others understand your code. They should explain why the code exists, not what it does. They should be concise, and you should avoid commenting on obvious things. So instead of this, &lt;code&gt;// set value to 5&lt;/code&gt;, you could use &lt;code&gt;// set the initial value to 5 to avoid null values&lt;/code&gt;. Simple right!&lt;/p&gt;

&lt;h2&gt;
  
  
  🍀 Use Whitespace and Formatting
&lt;/h2&gt;

&lt;p&gt;The use of whitespace and formatting can make reading your code much easier. Indentation is critical, and it's essential to be consistent with it. Use blank lines between functions and classes to make your code more readable. Choose a formatting style and stick to it throughout your codebase. Think of it like organizing your own closet! &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%2F8i1ylqiqlavt4rnq253g.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%2F8i1ylqiqlavt4rnq253g.jpeg" alt="Snippet of whitespacing and formatting technique" width="300" height="256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  📦 Choose Your Data Structures Carefully
&lt;/h2&gt;

&lt;p&gt;Choosing the right data structures is like choosing the right tool for the job. Use the appropriate data structure for each task, and it can make your code more efficient and more readable. Think of it like choosing the right ingredient for your recipe! So, instead of using an array to store key-value pairs, you could use a dictionary or a hash table.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔢 Avoid Magic Numbers and Strings
&lt;/h2&gt;

&lt;p&gt;Avoid hard-coding values that have no explanation. Use &lt;code&gt;constants&lt;/code&gt; or &lt;code&gt;enums&lt;/code&gt; instead, and it will make your code more readable and maintainable. Think of it like using labels instead of numbers! So, instead of using &lt;code&gt;if (status == 1)&lt;/code&gt; to check if a task is complete, you could use &lt;code&gt;if (status == TASK_COMPLETED)&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚫🔁 Don't Repeat Yourself (DRY)
&lt;/h2&gt;

&lt;p&gt;If you find yourself copying and pasting code, that's a sign that you need to refactor it and create a function instead. Think of it like reusing your favorite ingredients to make a delicious meal! So, instead of repeating the same code in multiple places, you could create a function that does the job once and call it whenever you need it.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 Test Your Code
&lt;/h2&gt;

&lt;p&gt;Testing is like playing hide and seek with your code. Write tests for your code, and it will help you catch bugs early on. Use test-driven development (TDD) if possible, and it will make your code more robust. Think of it like playing a game of hide and seek, but with code! So, instead of waiting for a user to report a bug, you could write tests that simulate different scenarios and catch the bugs before they reach the user.&lt;/p&gt;

&lt;h2&gt;
  
  
  🗺️ Make Your Error Messages as Helpful as GPS Directions
&lt;/h2&gt;

&lt;p&gt;Error messages should be like GPS directions - descriptive and helpful. They should explain what went wrong and how to fix it. Avoid generic error messages that provide no information. Think of it like giving someone directions! So, instead of using &lt;code&gt;Error: Invalid input&lt;/code&gt;, you could use &lt;code&gt;Error: The input should be a positive integer&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  📚 Keep Learning
&lt;/h2&gt;

&lt;p&gt;Finally, keep learning and improving your skills. There is always something new to learn, and it will make you a better programmer. Attend conferences, join communities, read blogs and books, and try new things. Think of it like exploring a new world! So, instead of sticking to the same programming language and tools, you could try learning a new language or framework.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In conclusion, writing clean and maintainable code is essential. Use these ten tips to help you write better code, even if you're new to programming. Remember to keep learning and improving your skills, and you will become a better programmer. Happy coding devs!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>beginners</category>
      <category>productivity</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
