Andrey Markin

From Typing to Thinking: AI agents and the Developer Evolution

AI DevelopmentLLMsVibe Coding
Published on April 17, 2025
From Typing to Thinking: AI agents and the Developer Evolution

Namanyay Goel recently wrote a thought-provoking piece titled "New Junior Developers Can't Actually Code." In it, he raises a critical point about the current state of software development: the over-reliance on AI tools like Cursor, Copilot, and Claude might be hindering the development of deep understanding and foundational knowledge in new developers.

Goel argues that while AI allows junior devs to ship code faster, they often lack a fundamental grasp of why the code works. He reminisces about the days of Stack Overflow, where struggling through expert discussions led to a more profound comprehension of programming concepts. He worries that we're trading deep understanding for quick fixes.

I appreciate Goel's perspective, and I agree that a balanced approach is crucial. However, I also believe that this shift presents an exciting opportunity: the rise of the architect.

From Code Monkey to System Sage

The ability of LLMs to generate code based on high-level instructions is not a threat, but a liberation. It frees us from the more tedious aspects of coding, allowing us to focus on the bigger picture: system design, architectural decisions, and complex problem-solving.

Instead of spending hours typing code, we can now dedicate that time to:

  • Designing robust architectures: Defining the overall structure and components of our applications.
  • Making informed technology choices: Evaluating different frameworks, libraries, and tools based on project requirements. LLMs help us faster to try different approaches and choose the best one.
  • Solving complex problems: Breaking down intricate challenges into manageable parts and devising innovative solutions.

The workflow becomes one where the developer acts as an architect, defining the blueprint and specifications, and the LLM acts as a highly efficient construction crew, rapidly building the structure. The developer then reviews the generated code, ensuring it aligns with the design and addresses potential edge cases.

The Procrastination Paradox

I've even noticed a curious phenomenon in my own workflow: when I'm feeling tired or unmotivated, I tend to gravitate towards tasks that LLMs can easily handle – typing code. It's a form of procrastination, a way to avoid the more demanding cognitive work of architectural design and problem-solving. This reminds me of studies showing how judges, when mentally fatigued, make poorer decisions.

The implication is clear: if I find myself spending too much time typing code instead of architecting solutions, it's a sign that I need to recharge or reassess my priorities.

Challenging the Machine: A Path to Deeper Understanding

Goel rightly emphasizes the importance of interrogating AI-generated code. We shouldn't blindly accept the solutions offered by LLMs. Instead, we should challenge them and ask them to challenge us:

  • Describe your suggested architecture and solution to the problem.
  • Ask the LLM to challenge your solution and imagine scenarios you might not have considered.
  • Ask it to generate tests for your solution.

This process can reveal new angles, identify potential weaknesses, and ultimately lead to a more robust and well-considered design.

The Democratization of Development and Rising Expectations

As LLMs and tool-calling become more sophisticated, it feels like we're experiencing a democratization of software development, similar to the shift from assembly to C, as Theo , pointed out. I believe this transition allows more individuals to participate in building complex systems.

However, this also means that expectations are rising across all professions, not just software development. If it was once acceptable for some job to spend an entire day recompiling text for a document, that's simply not the case today, people expect more. LLMs enable us to accomplish such tasks far more efficiently, freeing up time for more strategic and impactful work.

In this new landscape, critical thinking is more essential than ever. It's no longer enough to simply be a "coder" – coz we have vibe coders now; we must evolve into system designers, capable of leveraging AI tools to their full potential.

We must embrace this development and continually grow our skills to meet these rising expectations. Those who blindly rely on machine outputs or resist adapting to this new reality will be left behind.

Embracing the New Wipe

The future of software development isn't about eliminating coding; it's about elevating the role of the developer. We're moving towards a world where research, design, and critical thinking are paramount. We need to embrace this "new wipe" and focus on the skills that truly differentiate us from machines.

By combining the speed and efficiency of AI with our own creativity and expertise, we can unlock new levels of productivity and innovation. The key is to use these tools mindfully, with a focus on learning, understanding, and continuous improvement.

What are your thoughts on this evolution? How are you integrating AI into your development workflow?

Want to discuss the future of software development?

Let's connect