Michael Ouroumis logoichael Ouroumis

Vibe Coding: How Much Should I Rely on AI to Write Code

Developer debating AI‐generated code on a laptop screen, balancing speed and fundamentals

In today's era, programmers are increasingly relying on AI to write code. This isn’t necessarily a bad thing, but it might be worth considering a balanced approach.

Vibe coding can take you from point A to point B. However, getting to point Z is far more complicated—unless you're building an app or game with 5,000 lines of code, which isn't typical for most production apps.

Is coding with AI faster?

In many cases yes. For example if you ask "Hey, I want a function to fetch some data, filter them and group by name...", you will likely get a good result if your requirements are clear. However, if you need to constantly switch to ChatGPT to ask for every little detail, you’ll likely end up spending more time switching windows and losing concentration, rather than being productive. Plus, your brain may stop directly engaging with the solution, and its problem-solving capabilities could deteriorate.

The Trade-offs of Relying on AI

While AI can generate boilerplate code quickly and help troubleshoot common issues, it can overlook some details and not understand fully your whole codebase, because it can read a few things at a time and it struggles to recall them from the previous conversation and make the connections. When dealing with interconnected files and functions, it's often best to rely on your own understanding.

Benefits of using AI

  • Speed and Productivity: AI tools can rapidly generate code snippets and provide instant documentation, which can significantly cut down development time.
  • Learning Aid: For developers looking to learn new languages or frameworks, AI can serve as an interactive tutor, explaining code snippets and offering best practices.
  • Routine Task Automation: Repetitive tasks such as scaffolding, code formatting, and even some aspects of bug fixing can be effectively automated through AI, freeing up time for more creative work.

Potential Pitfalls

  • Over-Reliance: Depending too much on AI might reduce the emphasis on learning foundational programming concepts, which are crucial for understanding and solving more complex problems.
  • Quality Control: AI-generated code might look syntactically correct but could fail in terms of performance or security if not thoroughly vetted.
  • Context Awareness: AI might lack the broader context of your project’s architecture or your specific coding standards, leading to inconsistencies or suboptimal implementations.

Why Typing is not Outdated

Typing skills remain highly valuable. I have noticed is that when I type my own code, I can better focus on the solution and avoid writing redundant or inconsistent code. When making a plan to go for the solution there is nothing that interrupts me, for example I say, "I need to fix bug X and follow steps A, B and C. That means making changes in function Y, function Z, and component D..." and then I start doing it. Imagine the same by going back and forth to chatGPT and ask about how to implement the fix the bug, it's not gonna work the same, because the brain needs to stay concentrated.

Also when reviewing code, being skilled at typing can make it easier to understand what's going on, determine what will work and identify what won't..

A good engineer should be able to understand what the code is doing without running it!

My suggestion

I have seen people make the mistake of underestimating the importance of knowing their language very well. Even experienced engineers often believe that they have fully grasped the basics and that daily work is enough practice. However, in reality, our jobs focus the delivery rather than deep learning and understanding. How many people actually take time to read the Javascript documentation while they try to deliver their tickets? Nowadays most people simply ask chatGPT for the solution and to fix the issue. In the long run, this approach can deteriorate your skills in reading and writing code, making reviews, uninterrupted coding, and bug finding all increasingly challenging.

It's good to learn more hight-level concepts and extras, but it's important to know the basics of your language very well.

So keeping some balance between AI and your own skills is wise!

And of course, I’m sharing this because I made these mistakes myself. I'm not trying to point fingers or claim I'm always right—this is simply my feedback from working as a software engineer in the AI era.

Enjoyed this post? Share: