Coding With AI Notes: Part I
By Sudheer S
Vibe Coding - The Background
The year is 2025. The way we build software—whether it’s a simple three-page website or a complex system with dozens of microservices—has undergone a dramatic transformation. We’ve shifted from scouring forums like Stack Overflow and reading technical blogs found via Google to having interactive conversations with LLMs (Large Language Models) and AI agents.
AI and LLMs have democratized access to technology. Today, you don’t need a formal background in software engineering to create websites or applications. With the help of AI, anyone can build software. This cultural shift is now often called “Vibe Coding.”
The philosophy of Vibe Coding is simple: you don’t need to deeply understand the code you’re writing—because, in many cases, you’re not writing it at all. You rely on AI-generated code and focus on getting things to “just work,” without spending time studying or understanding what’s under the hood.
But there’s a catch.
The Catch
With Vibe Coding, sooner or later, you’ll hit a wall. The system you’ve built becomes harder to change. Every new feature takes longer than expected. Bugs and quality issues start creeping in. The experience becomes frustrating—not just for you as the developer, but also for the users of your application.
So, what can we do about it?
The number one piece of advice I have is this: stop vibe coding.
It’s fine to start with vibe coding. It’s an amazing way to prototype quickly and experiment with ideas. But before you take that code and push it to production, pause for a moment.
Take the time to understand the code that the LLM has generated. Ask your LLM chat tool to explain the code line by line. Tell it that you’re a beginner who started with vibe coding but now wants to grow into a professional developer. You’ll be surprised at how well these tools can teach you when you ask the right questions. Keep asking questions until you develop a strong understanding of the logic, patterns, and design behind the generated code.
Simplicity == Great Developer Experience
Keep your systems simple. Avoid building overly complex or mission-critical systems using vibe coding alone. The complexity will catch up with you, and without a solid understanding of the underlying code, you’ll struggle to maintain or scale it.
Touch Typing
Type the code yourself. Even if an LLM provides the answer, typing it out helps you learn.
Take Notes
Keep notes. Document what you learn along the way. Write down mistakes, fixes, and patterns you discover. Over time, this will become your personal knowledge base.
Read The Text And Code
Read the code. Develop the habit of reviewing and reading both the text and code generated by LLMs. Understanding why something works (or doesn’t) is the foundation of becoming a better developer.
Create A Structured Learning Plan
If you’re building websites or web applications, ask an LLM to teach you the fundamentals in a structured way. A good starting point is:
- HTML – Learn the structure of the web.
- CSS – Master styling, and pick one framework like Tailwind CSS for rapid UI development.
- Git - Learn to use Git and Github.
- JavaScript – Learn the language of the web, and choose one front-end framework like ReactJS.
- Backend development – Pick one language and framework, such as Python with FastAPI or Node.js with Express.
- Cloud fundamentals – Choose one public cloud platform, like AWS, and learn the basics of deploying and hosting applications.
Play The Long Game
Remember: It takes time to build good applications. Don’t rush.
Go Beyond The Chat Prompt
Use Multiple Learning Channels
- YouTube – There’s a wealth of high-quality tutorials and walkthroughs.
- Google Search – Still incredibly valuable for finding solutions and deep-dive articles.
- Community and Networking – Attend local meetups, tech events, or conferences. Engaging with other developers will accelerate your learning and expose you to real-world challenges and solutions.
Summary Of Habbits To Develop
- Ask questions and learn as much as you can. Go deeper with each iteration.
- Use git. Commit all your changes. Learn to go back and forth commits. Learn to search and read older commits. Develop a framework to format and structure the commits.
- Takes notes.
- Type it out yourself.
- Ask better questions. Provide good context in your prompts to the AI tool. Your results will be better and you will have less iteration cycles with bigger prompts.