From Code Smell detectors to AI Whisperers: Programming is Getting Its Groove Back
TL;DR: I will explain Vibe Coding in five levels to different audiences.
Child
Vibe coding is like telling a robot what you want, and it builds it for you while you talk to each other.
You say something like, "Build me a car with Legos," and the robot makes it happen.
The robot learns from millions of other builders, so it knows how to create things without you needing to know all the rules.
It’s like a magical box or magic wand casting your spells, but built with real technology!
Teen
Vibe coding is a new way of programming where you use human language, like English, to tell the computer what to build.
Instead of learning all the programming code yourself, you describe what you want, and AI tools like ChatGPT, Claude, or Copilot write the code for you.
It’s great for creating mobile or desktop applications, websites, or scripts without needing to know all the technical details.
For instance, you could say, "Create a to-do mobile application." Then, later add "With a dark theme," and after that, "Add reminder notifications."
The AI will then generate the complete code, iterating it with you.
College Student
Vibe coding is a technique in software development where developers write natural language prompts instead of code.
It allows non-professional developers to build software without previous training.
By describing intent in natural language, large language models (LLMs) generate the underlying logic, interface, or scripts.
You need to forget everything you've learned about imperative programming and turn to a more declarative, intention-based approach.
Instead of micromanaging every implementation detail, developers will work at a higher level of abstraction.
When you practice vibe coding, you don't need to write boilerplate or memorize syntax.
This enables you to make rapid prototypes and experiments comparing the software with the real world.
Traditional code smells (duplicated code, long methods, complex conditionals) become less relevant as AI handles refactoring automatically.

How to Find the Stinky parts of your Code
Maxi Contieri ・ May 21 '21
New "prompt smells" (like package hallucination) emerge around unclear intent specification and poor AI collaboration patterns.
The quality of the result depends heavily on the clarity of your prompts and your ability to validate the AI’s output.
You should not blindly follow AI suggestions; always review and test the generated code.

From Helpful to Harmful: How AI Recommendations Destroyed My OS
Maxi Contieri ・ Apr 21
Graduate Student
Vibe coding uses large language models to generate executable code from high-level natural language instructions.
The term was introduced by Andrej Karpathy in February 2025 to describe a way of programming with LLM models that allows you to "surrender to the flow" and almost "forget that code exists".
The practice abstracts traditional software construction into a prompt-driven process, effectively turning language into infrastructure.
The developer’s role shifts from low-level implementation to system orchestration—defining what to build rather than how to build it.
This is very aligned with the old known good practices of describing what to do, not how to do it and against premature optimizations.
When you work as a software developer, it is important to work in the flow (or the zone).

16 Simple Tips to Boost Your Productivity x10
Maxi Contieri ・ Dec 29 '20
AI winter finished a couple of years ago, and technologies are overestimated in the short term and underestimated in the long term.
This is known as The Gartner Hype Cycle, and it shows how AI evolves from inflated expectations to real productivity. It helps you spot which AI trends are hype and which ones are ready for use.
Vibe coding enables fast MVP development, especially when paired with internal DSLs, templated prompts, and component libraries.
This practice introduces challenges around code quality, reproducibility, testing, and explainability, making prompt engineering and post-generation refactoring critical.
When ChatGPT was first released, it was quite rudimentary and lacked memory entirely.
What made it disruptive wasn’t its knowledge, but its ability to work with context. Instead of treating each question in isolation, it could follow your line of thinking across messages.
That ability to maintain coherent threads in a single conversation—even without long-term memory—completely changed how people interacted with machines.
As of June 2025, 82% of developers use AI at least once a week
Old software was built with the Taylorist waterfall model.
Modern software is incremental, and you can guide the interactions with AIs.
Programming is about building theories, as Peter Naur said, not just writing code.

Programming as Theory Building
Maxi Contieri ・ May 22 '21
Your job is to focus on the essential and leave the accidental details to the AI.

Coupling: The one and only software design problem
Maxi Contieri ・ Feb 6 '21
It is never too late to learn.

ChatGPT: The Surprising Teacher of a +25 Year Senior Programmer
Maxi Contieri ・ Jan 25 '23
Expert
Vibe coding represents a post-symbolic programming shift where intent is encoded in language and compiled by LLMs into structured systems.
In practical terms, vibe coding is like a hyper-productive pair-programming session.
You speak or type natural language, and the AI types code for you.
Tools like GitHub Copilot even have "chat" or "agent" modes that mimic this workflow.

Why GitHub Copilot is not a Threat to your Job
Maxi Contieri ・ Jul 3 '21
At a technical level, this technique combines stochastic pattern synthesis with constraint-guided generation, producing full-stack code from semantically rich prompts.
Besides the context you provide in a prompt, modern IDEs have access to local proprietary repositories and can perform semantic refactors following your business rules.

How to Improve your Code With easy Refactorings
Maxi Contieri ・ Oct 24 '22
It repositions programming as a cognitive dialogue between human and model, blurring the boundary between IDE and prompt shell.
In production contexts, vibe coding raises concerns around determinism, provenance, and compliance.
Prompt-to-code pipelines must address hallucination control, context preservation, and memory-bound reasoning.
Yet when paired with robust validation (e.g., test generation, static analysis), vibe coding enables extreme acceleration of prototyping cycles, non-linear development flows, and democratized access to programming capabilities.
This isn’t just autocomplete—it’s code synthesis guided by vibes and feelings.
I wrote a research paper some years ago, forecasting the future of non-declarative programmers.
When my students ask me about what language or framework they should learn, my answer remains always the same:
Languages and frameworks come and go. Learn GIT and learn English.
This is true even today.
GIT is important for teamwork.

Explain in 5 Levels of Difficulty: GIT
Maxi Contieri ・ Feb 18 '23
English is the most popular language for programming. And now you can use it as a natural language to build code!
The future of programming isn't about replacing developers—it's about amplifying human creativity through AI collaboration.
Become a Centaur. Practice vibe coding!
Love how you broke down vibe coding from magic box for kids to post-symbolic code for pros - makes it so clear how much our work is changing. Have you fully switched your own workflow to this kind of prompt-driven dev or still holding onto classic coding for some things?