<?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: Micah</title>
    <description>The latest articles on DEV Community by Micah (@mcondon).</description>
    <link>https://dev.to/mcondon</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%2F1476345%2F6c887797-256b-4c28-bce0-3aeb9e70a19c.png</url>
      <title>DEV Community: Micah</title>
      <link>https://dev.to/mcondon</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mcondon"/>
    <language>en</language>
    <item>
      <title>Problem Solving The Master Skill</title>
      <dc:creator>Micah</dc:creator>
      <pubDate>Sun, 01 Feb 2026 03:39:41 +0000</pubDate>
      <link>https://dev.to/mcondon/problem-solving-the-master-skill-5b4h</link>
      <guid>https://dev.to/mcondon/problem-solving-the-master-skill-5b4h</guid>
      <description>&lt;p&gt;One master skill. There is one skill that many new engineers are lacking. One skill that holds you back early in your career. It's the most important skill in software engineering. But it's also the hardest to learn, and the most poorly taught.&lt;/p&gt;

&lt;p&gt;Problem solving is the master skill. Finding reasonable solutions to complicated, ambiguous problems, in a complex environment. Not just writing code, but planning, executing, debugging, and revising, under 'less than ideal' conditions.&lt;/p&gt;

&lt;p&gt;That's a lot to ask. But it's the skill that you must learn to have a lasting career in software engineering. Luckily you don't have to learn it all at once.&lt;/p&gt;

&lt;p&gt;One of the key problem solving skills is to break big problems down into smaller problems. And break those problems down into even smaller problems. And then solve one of those very small problems.&lt;/p&gt;

&lt;p&gt;So let's break it down. Let's start with debugging. Debugging is a distinct, and critically important, subset of problem solving. If you can debug well, it will dramatically increase your effectiveness and your satisfaction as a software developer. If you cannot debug well, it will stunt your career growth, and it's also not very fun.&lt;/p&gt;

&lt;p&gt;Let's take a debugging journey together. Tomorrow, I'll start by defining exactly what I mean by debugging. Then, we'll dive into why it can be so challenging, and we'll start to build up your debugging skills. One step at a time.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>coding</category>
      <category>learning</category>
    </item>
    <item>
      <title>What's your experience of learning software development in the age of AI?</title>
      <dc:creator>Micah</dc:creator>
      <pubDate>Fri, 30 Jan 2026 03:45:55 +0000</pubDate>
      <link>https://dev.to/mcondon/whats-your-experience-of-learning-software-development-in-the-age-of-ai-1j5p</link>
      <guid>https://dev.to/mcondon/whats-your-experience-of-learning-software-development-in-the-age-of-ai-1j5p</guid>
      <description>&lt;h2&gt;
  
  
  My experience with AI so far
&lt;/h2&gt;

&lt;p&gt;As a very experienced developer, I find AI coding tools mostly non threatening, and sometimes pretty helpful. But, that is only because I understand their output, I know when to trust them. I am also confident that - at least in some contexts - I am more skilled than them at untangling complex coding problems.&lt;/p&gt;

&lt;p&gt;And, I'm grateful for the help in cranking out code that feels routine to me - cases where there aren't many surprises for me to discover, or much learning to be had. Where the work just needs to get done, and only a couple small bits of it are truly interesting to me.&lt;/p&gt;

&lt;p&gt;I also find them helpful in learning about things that are  adjacent to my existing knowledge. I haven't used them to explore anything that is totally foreign to me, but they've saved me a ton of time summarizing information that I would have had to read the hard way before.&lt;/p&gt;

&lt;p&gt;I'm well aware of the many ethical failings in how AI models are trained, marketed, used, and powered etc. But, I'm not in a position to claim the moral high ground and just avoid them altogether. So I'm figuring out how to use them well, just like most of you.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is your experience with AI, if you're a relative beginner in programming?
&lt;/h2&gt;

&lt;p&gt;I've seen many posts online worrying that new developers are using AI in ways that increase their short term output, but hinder their actual long term understanding. And I've seen studies claiming that the tools can hinder critical thinking ability.&lt;/p&gt;

&lt;p&gt;Is that true for some of you? Or is the opposite true? Have you found that you learn less when working with AI tools, even if your output is faster? Or have you found ways to learn deeper and faster with these tools than without?&lt;/p&gt;

&lt;p&gt;If you have found that using AI hinders your learning at times, what tactics have you adopted to counteract that?&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>codenewbie</category>
      <category>programming</category>
      <category>vibecoding</category>
    </item>
    <item>
      <title>Hello (again) and Thank You</title>
      <dc:creator>Micah</dc:creator>
      <pubDate>Sun, 18 Jan 2026 03:21:58 +0000</pubDate>
      <link>https://dev.to/mcondon/hello-again-and-thank-you-3dd6</link>
      <guid>https://dev.to/mcondon/hello-again-and-thank-you-3dd6</guid>
      <description>&lt;p&gt;I visit dev.to periodically, even though I don't often reply or post. Once again, today I was blown away by the work that so many of you are doing, and the ways that you're writing about it and supporting each other in your learning journeys!&lt;/p&gt;

&lt;p&gt;Thank you all for sharing your work, and keep up the awesome!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>learning</category>
      <category>softwaredevelopment</category>
      <category>coding</category>
    </item>
    <item>
      <title>Do you even understand the problem?</title>
      <dc:creator>Micah</dc:creator>
      <pubDate>Thu, 09 May 2024 01:11:24 +0000</pubDate>
      <link>https://dev.to/mcondon/do-you-even-understand-the-problem-57c1</link>
      <guid>https://dev.to/mcondon/do-you-even-understand-the-problem-57c1</guid>
      <description>&lt;p&gt;Software engineering requires a wide range of problem solving skills. To build those skills, sometimes we need to work all the way through a challenging problem.&lt;/p&gt;

&lt;p&gt;Other times, we need an easier approach. Consistent practice on micro skills can be an easy and fast way to improve your capabilities.&lt;/p&gt;

&lt;p&gt;Do you like the idea of practicing your skills in small, simple doses? Do you like the idea of Leetcode, but sometimes find a whole Leetcode problem too much to bite off?&lt;/p&gt;

&lt;p&gt;Instead of solving an entire Leetcode problem, why not practice just one tiny part of it?&lt;/p&gt;

&lt;p&gt;Here's an easy skill to start with: &lt;code&gt;restating the problem&lt;/code&gt;!&lt;/p&gt;

&lt;p&gt;Choose a &lt;a href="http://leetcode.com/problemset/" rel="noopener noreferrer"&gt;random problem on Leetcode&lt;/a&gt;, and quickly work through the questions below. Answer these questions on paper, whiteboard, text file, talking to your rubber duck, or whatever, but &lt;em&gt;not in code yet&lt;/em&gt; ...&lt;/p&gt;




&lt;h2&gt;
  
  
  Restate The Problem and Check Your Understanding
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explain the problem to be solved.&lt;/li&gt;
&lt;li&gt;What are the inputs to this function?&lt;/li&gt;
&lt;li&gt;What are the outputs?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Examples and Test Cases&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What do the examples illustrate about the problem?&lt;/li&gt;
&lt;li&gt;What can you learn from the test cases?&lt;/li&gt;
&lt;li&gt;What other examples and test cases can you think of?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Constraints&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How do the given constraints help your understanding of the problem?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Understanding&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which details did you immediately understand?&lt;/li&gt;
&lt;li&gt;Which details were a bit confusing at first?&lt;/li&gt;
&lt;li&gt;How is this problem similar to, or different from, other problems you've solved?&lt;/li&gt;
&lt;li&gt;Which parts of this problem made you feel confident, or uncertain?&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;That's it! Don't worry yet about how to solve the problem (unless you want to). You can learn quite a bit in just a few minutes by working through these questions.&lt;/p&gt;

&lt;p&gt;If you found this to be a helpful exercise, I encourage you to return to it regularly, and to try it with a peer or mentor!&lt;/p&gt;

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