One of the most common concerns I hear about AI-assisted coding is that it undermines foundational knowledge. In short, if you rely too heavily on tools like Copilot, Cursor, Replit, or ChatGPT, you’ll eventually forget how to code “properly.” If I’m being honest, as a product leader and former engineer, there is some truth to that.
You do start to lose touch with certain techniques and lower-level mechanics. That’s just the reality. But the more important question is — should that stop us from moving forward?
If you take a step back and look at the broader arc of technology, this trend toward abstraction — simplifying complex processes —isn’t new. It’s a natural progression. In fact, it’s the foundation of nearly every advancement we’ve made in software.
Think about it: people used to write in cursive. Then we moved to typing. There were complaints about losing the “art” of handwriting, and while that’s technically true, it also doesn’t matter in the same way anymore. The context changed.
The same principle applies to programming. We went from punchcards and machine code to higher-level languages, frameworks, and libraries. Why? Because as a field matures, we learn which problems don’t need to be solved from scratch every time. We build tools and frameworks that free us to focus on more meaningful work.
Take something basic, like building a login and registration system. Years ago, you’d code that by hand. Today, you plug in a prebuilt solution or scaffold it with a few lines of code. Not because you can’t do it the long way, but because you shouldn’t have to. It’s no longer where our time is best spent.
Taken a step further, look at Zapier or Make.com. These allow for no-code integrations of fairly sophisticated applications. It’s incredibly easy to tie applications together to create services for your business that otherwise would have been very costly and time-consuming. This is an abstraction of integrations code. I’ve been doing data and app integrations for over a decade and I can tell you Zapier is a Godsend.
There’s a great deal of repetition in traditional development—solving the same problems again and again in slightly different ways. AI helps eliminate that redundancy. It gives us a way to move faster, to focus our energy on product strategy, system design, user experience, and long-term innovation.
That said, it’s critical to be thoughtful in how we adopt these tools. We’re still in the early stages of AI integration, and while the output is impressive, it’s not infallible. In mission-critical applications—where security, reliability, and scalability matter deeply — we still need experienced eyes reviewing every line of code. AI can generate solutions, but it can’t yet be accountable for them. Think of it as a highly capable assistant: fast, tireless, and helpful — but not autonomous. Of course, this is changing at a rapid clip, so those days may lie in our future.
AI is incredibly effective at analyzing the past and offering suggestions based on historical patterns. But when it comes to imagining something new — creating forward-looking, original concepts — it still falls short. That’s where humans shine. Vision, strategy, and creativity are still uniquely human strengths, and for now, they remain essential.
To me, the concept of abstraction is not something to fear — it’s something to embrace. As technology matures, it consistently moves toward clarity and simplicity for the end user, even as the systems underneath become more complex. That’s not regression. That’s progress.
So yes, maybe I’ve forgotten a few syntax quirks I used to know by heart. But I’ve never felt more empowered to bring real products to life quickly, efficiently, and with more control than ever before.
Let the AI handle the boilerplate. We’ve got bigger things to build!
-moki
No posts

Comments
Nothing yet. Say the first thing.
Sign in to join the conversation.