← Back to blog
Pattern Recognition Beats Copy Paste Skill cover image

Pattern Recognition Beats Copy Paste Skill

3/25/2026

Pattern Recognition Beats Copy Paste Skill

When I first learned to program I learned the way a lot of people did. Stack Overflow, random blog posts, Medium tutorials, Reddit threads. If I was stuck, I searched until I found something close enough to what I was trying to do, copied it, adapted it, and hoped it worked.

Most of the time it did. I think.

The problem was that I was accumulating techniques without really understanding the concepts behind them. I would hear terms like:

  • dependency injection
  • observer pattern
  • generics
  • reflection
  • event systems

I used some of them. I had seen others in tutorials. But they mostly lived in one giant mental junk drawer in my head.

I could make things work, but I could not always explain why they worked. I developed a decent instinct for when I was doing things “right” versus “wrong”, but I did not place a high value on sitting down and learning abstract theory like SOLID.

I figured the patterns were the patterns. Follow them and all will be well.

Early in your career architecture feels like something that only matters in big systems. SOLID principles sound abstract. Design patterns feel academic. Most of the things you are building are small enough that you can get away with messy code as long as it runs.

So I ignored that part of software engineering for a while. I suspect many people do.

What surprised me recently is that AI changed that equation in a way I did not expect.


Over the past year I have been using AI heavily while building projects. The blog system you are reading right now was largely generated with AI. The interesting thing is that the quality of the results depended a lot on how clearly the system was structured.

At first I did what a lot of people do. I would describe a feature and ask the AI to implement it. It usually worked. But after a while I started reading through the code and noticing strange things.

  • Extra services that did not really need to exist
  • Small shims added to glue parts of the system together
  • Multiple files rewritten for what seemed like a small change

Nothing was technically broken, but the code started to feel heavier than it needed to be. I even had bugs appear in parts of the system I was not actively working on.

Eventually I realized what was happening.

The architecture of the system was not always clear, so the AI was improvising. It was trying to make the feature work inside a structure that was not well defined. Humans do this too when they inherit messy codebases. The difference is that AI is extremely willing to invent new layers or abstractions if it thinks that will solve the problem.

Once I started being more explicit about structure, the behavior changed a lot.

Instead of just asking the AI to build something, I started asking questions about how the responsibilities should be divided. I would explicitly tell the AI to use patterns like MVC or a Factory, or ask whether a piece of logic should live behind an interface. When the boundaries were clear, the AI could extend the system without adding strange workarounds.

That experience made something click for me.

The things that used to feel like theory are actually very practical when you are working with AI. Concepts like separation of concerns or single responsibility are not just nice ideas. They give the AI a clear map of where new code belongs.

In other words, the better the structure of the system, the easier it is for the AI to modify it.

If I were starting my career today, that is something I would focus on earlier. Not memorizing every design pattern, and not trying to architect everything perfectly from day one. But paying more attention to the concepts behind why code is organized the way it is.

AI makes it incredibly easy to generate code. That part is getting cheaper every month.

Understanding how systems are structured is still the hard part.

And the developers who learn to guide the structure will get a lot more out of these tools than the ones who only use them to generate code.

Your Privacy Choices

We use cookies and similar technologies to operate this website and improve your experience. Essential cookies are required for the site to function. With your consent, we may use analytics cookies to understand how visitors use the site and improve our services. You can accept all cookies, reject non-essential cookies, or manage your preferences.