Vibe Coding: For Whom? How? When?
Zubin Pratap
Software Engineer (Ex Google) // Recovering Lawyer // Coach on Career Change to Tech
As a lawyer turned software engineer who learned to code in my late 30s to keep my startup alive, I have directly witnessed the seismic shifts in the coding world over the last decade.
I'm excited to explore the latest paradigm: "vibe coding," a term coined in a recent tweet by the renowned Andrej Karpathy.
Before we dive in, let's appreciate the source of this concept. Andrej Karpathy is a titan in the world of artificial intelligence and deep learning (check out his Github).?
With over a decade of experience at the forefront of AI research and development, Karpathy has left a lasting mark on the field. He's best known for his work in computer vision, neural networks etc. As the former Director of AI at Tesla, where he spearheaded the development of autonomous driving systems.
Karpathy's deep technical expertise and years of hands-on engineering make him uniquely qualified to identify and name emerging trends like vibe coding.
And here’s the key point:? all that experience also makes him capable of using it.?
Vibe coding is the technique of leveraging Large Language Models (LLMs) to generate code based on high-level descriptions or "vibes."?
It's like having a gifted member on your team translate your engineering vision into functional code very fast.
How Vibe Coding Differs from Traditional Coding:
- Outcome Driven: Traditional coding requires the coder to make thousands of keystrokes typing out the code. We describe the outcome and it does the typing for you. When you’re good with your instructions it can even design the code effectively.
- Natural language input: Because vibe coding interprets high-level intent from natural human language, vibe coding allows for more conversational prompts rather than strict syntax.
- Rapid iteration: Vibe coding can generate and refine code much faster than manual typing.
- Contextual understanding: LLMs can infer context and best practices, unlike traditional IDEs.
- Multi-language fluency: Vibe coding can seamlessly switch between programming languages.
- Reduced/Eliminated Research: The developer is not switching multiple windows and tabs to research syntax, approaches, design patterns, API documentation etc. The LLM synthesizes all that and does it much faster than a human can.
Having vibe-coded for some time now, I can confirm it is a game-changer. It's like you’re the chef and you’ve got a savant sous-chef - someone who understands your vision and can execute complex tasks with the right instruction.?
But there’s a catch.??
You’ve got to be experienced enough to know what you want, know what you don’t want, and recognise bad output.?
Here's why it's fantastic for seasoned pros:
- Reduces drudgery: The boring parts of engineering, all the “scaffoldingâ€, environment setup etc,can be done in minutes, not hours.
- Focus on architecture: Spend more time on high-level design and less on boilerplate.
- Benefits of pair programming: Done right, you and the LLM can discuss and explore patterns, approaches, techniques and the codebase as well.
- Continuous learning: when your fundamentals are strong enough, you can learn new things very fast because the research time is exponentially reduced by the way LLMs synthesise data from multiple primary and secondary sources.
- Rapid Prototyping:? It’s very fast to do “spikes†where you put together throwaway code as you iterate through an idea. It dramatically compresses development cycles.
However, for novice engineers, vibe coding is a siren's song - alluring but very treacherous. It's like giving a novice driver the keys to a Formula 1 car. The power is intoxicating, but without the foundational skills, it's a recipe for disaster.
The dangers for inexperienced engineers include:
- Dependency crutch: Relying too heavily on AI, stunting personal growth.
- Lack of understanding: Building without grasping the underlying principles - this inflates the Dunning-Kruger effect which humans are prone to anyway , and which leads to disastrous professional and interpersonal consequences
- Debugging difficulties: Struggling to fix issues in code they didn't write. Many inexperienced devs cannot reason through the code that AI generates but which has bugs in it.
- Technical debt: Accumulating poorly structured or designed code that becomes hard to scale, manage, debug and maintain
Why Vibe Coding Favours The Experienced?
There are many compound skills that go into a profession and software engineering is no exception. I’ve known lawyers with brilliant analytical minds but poor communication.? Or vice versa.??
I’ve known fantastic technical engineers who struggle to understand business concepts or customer needs.? And vice versa.
Software engineering is about compound skills too and AI shifts the balance of skills needed. ? Experienced coders benefit from Vibe coding because they possess the following compound skills (and inexperienced coders can be expected to suffer due to the absence of these skills)
- Pattern recognition: Seasoned engineers can quickly identify and correct AI-generated anti-patterns.
- Architectural insight: Experience allows for better high-level prompts that lead to well-structured code.
- Debugging prowess: Veteran coders can efficiently troubleshoot AI-generated code.
- Quality assurance: Experienced engineers can critically evaluate and improve AI outputs.
- Ethical considerations: Seasoned professionals understand the implications of AI-generated code in production environments.
- Experienced engineers are far more likely to know when to challenge the AI and how to interpret its obsequious responses. When challenged, the AI, which is trained for ultra politeness, will start to make up contrived excuses and accept that it’s wrong even when it’s right. This can be devastatingly confusing if you’re not able to figure it out for yourself.
Note: In the video podcast of this blog I show you an example of this!
As with any powerful tool, the key lies in how we wield it.?
Experienced engineers can use vibe coding as a force multiplier, amplifying their existing skills and knowledge. They know when to trust the AI and when to dig deeper, much like a master musician who knows when and how to improvise and when to stick to the score.
For those just starting their journey, my advice is this: Learn to walk before you run. Build a solid foundation in programming fundamentals, data structures, and algorithms. Understand the "why" behind the code, not just the "what." Use AI as a learning tool, not a crutch.
At the Inner Circle Program (more links to short webinars are in my bio), we emphasize fundamentals over a sustained period of time and then train people on the safe and appropriate usage of LLMs. LLMs must be used as though they’re an employee that you must supervise and are accountable for. You’re the boss!
In conclusion, vibe coding is not a replacement for expertise; it's an enhancement of it. It's a powerful ally for those who have paid their dues and mastered their craft.?
For the newcomers, it's a glimpse of what's possible - a goal to work towards, not a shortcut to bypass the learning process.
The future of software engineering is bright, and vibe coding is a testament to how far we've come. But remember, in the world of code, there are no shortcuts to true mastery. Embrace the journey, and let AI be your assistant, not your replacement.
What has your experience been with vibe coding? I’d love to know, so please drop ‘em in the comments!
In 5 years, people who can actually code will be like cobol programmers in 1999.
Technical writer | Cloud, AI, and Web3
3 天å‰The image perfectly captures the "vibe" in vibe coding ?? well done on your prompting
SDE Intern @ IT Jobxs | TCS CodeVita Global Rank 5028 (4th in College) | 250+ LeetCode | 50+ GFG | 5? HackerRank | Java (JDBC, Spring) | Web Dev (HTML, CSS, JS) | Coding Contest Runner-Up | CS '26
3 天å‰Useful tips
Software Engineer - I work with career changers who want to switch into tech
3 天å‰I was helping a person at a coding bootcamp a year ago (not Parsity.io btw) and they built an impressive app. When I asked how it worked - they had zero clue. As soon as a trivial bug slipped in this React project of hundreds of files they were stuck. AI got them 80% of the way there but that doesn't make them a software developer, it made them a power chat gpt user.