19 tips for successful programming with AI and Claude Code

In two weeks, I built a complete application with AI as my programming partner. Programming with AI and tools such as Claude Code works fundamentally differently from traditional development. You need different skills, different working methods, and above all, different expectations.

Profile picture of Mark
Mark Vletter
22 September 2025
13 min

In this article, I share the 19 key lessons that make the difference between frustration and success when programming with AI. Yes, AI can make you up to ten times more productive, but only if you know how to collaborate with it effectively.

Here’s the overview of lessons:

  1. Setting up the perfect AI development environment
  2. Programming with AI: MCP (Model Context Protocol) servers as superpowers
  3. Make your AI coding assistant critical
  4. Continuous documentation
  5. Using AI memory during automatic programming: benefits and pitfalls
  6. Integrating UX research into your AI development process
  7. Understanding logical limitations
  8. Preventing context loss in programming sessions
  9. Why good programming isn’t simple, even with auto-generated code
  10. Recognizing hidden project costs in AI development
  11. Recognizing and managing AI programming addiction
  12. Software maintenance in the AI era
  13. Privacy and data security when programming with AI
  14. Code maintenance with AI
  15. Code architecture and programming principles for AI development
  16. Production-ready development from day one
  17. Testing code with AI: automation and validation
  18. Using standards in AI programming
  19. Use Git and take small steps when automatically generating code 

Let’s go through them one by one.

Claude Code and AI Development tools: the perfect set-up

1. Setting up the perfect AI development environment

There are many ways to program with AI. I chose one of the most advanced setups, where the AI writes almost all of the code. Right now, Claude Code is the most mature tool for this. But Claude Code is just the beginning. The real difference comes from MCP servers, supporting tools and clever workflows.

2. Programming with AI: MCP servers as superpowers

MCP servers give language models like Claude superpowers. They don’t just think, they can also act. For example: I use an MCP that gives Claude access to my file system, so it can edit files directly. I also installed Puppeteer, which lets Claude check the results of the code it writes by interacting with webpages.

The MCPs I use in Claude include:

  • Sequential Thinking – Helps the AI reason step by step.
  • Puppeteer – Lets the AI view, analyze, and click through webpages, as well as take screenshots. Great for front-end testing.
  • Fetch – Retrieve and read websites.
  • Memory – Provides long-term memory to the model.
  • File System – Gives the AI direct file access.
  • GIT – Lets the AI interact with GIT (though be careful: one wrong step and it may overwrite code if it gets stuck).
  • Win-CLI – Executes AI cmd and PowerShell commands, allowing code testing directly.

I use these MCPs in Claude Desktop for Windows. Claude Code itself already has many tools built in, so there I only activate Sequential Thinking and Puppeteer.

Avoiding the “Yes-Man” Trap

3. Make your AI coding assistant critical

By default, AI tends to please you rather than challenge your thinking. That often leads to weak validation and poor stop mechanisms, turning the AI into a “yes-man” instead of a critical partner. Not ideal when programming, when you want the opposite. 

So: make sure your prompts force the AI to think critically. Ask:

  • What problem are we really solving?
  • Is this the simplest solution?
  • Are we implementing too quickly without validation?

Frame the AI as a thinking partner, not just a code generator. Push it to question assumptions and simplify complexity before writing code.

For Claude Code, check out the SuperClaude framework, which extends the standard prompt with useful extras. Even experienced prompt writers find it valuable!

programmeren met ai en claude code

Best Practices: Documentation and Validation

4. Continuous documentation

I can’t stress this enough: documentation is critical. Whether it’s describing a feature or maintaining a file that outlines your database schema, documentation keeps AI development on track. As projects grow, a code architecture file becomes essential. Claude can read it quickly to understand where to continue or what to fix.

When starting a new feature, create a feature document in which you keep track of:

  • Which files will be affected?
  • How should it work?
  • What does the front-end look like?

This prevents over-eager implementation and forces the right questions before you begin.

Tip: In Claude Desktop, write and update files directly. Don’t use the artifact feature. In Claude Code, ask it to read and update entire files at once for efficiency.

5. Using AI memory when programming: benefits and pitfalls

With memory, you can store progress and learnings during a coding session. This builds a database of past decisions and attempted solutions, saving time and avoiding repeated mistakes.

6. Integrating UX research into AI development

One of the biggest pitfalls in AI-driven development is speed. You can build so fast that you forget to validate whether you’re building the right thing. Traditional development has natural pauses for user research. AI skips them. You deliberately have to put them back in.

Start with quantitative validation: use Google Trends and search volumes. Is there demand? Are there related searches? This quickly gives you insights into market needs before you start building. AI makes it exciting to implement features directly. But the first step of validation ensures that you don’t spend days building features nobody wants.

Define UX metrics upfront: Decide what you want to measure before you start developing. Essential metrics for AI-applications are

  • usage frequency: How often do people log in, and how often do they come back. 
  • Session duration: How long do users stay active in your application?
  • Task completion rate: Can people achieve their goal?
  • Drop-off points: Where do users drop out in the customer journey?
  • Time to value: How quickly do users experience value from your application?

You can build these KPIs into your application from the very beginning.

Build feedback loops: Build small feedback moments in your AI workflow. After each iteration of two to three days: test with real users, even if only for five minutes. AI makes it possible to quickly iterate based on user feedback, but only if you actually collect that feedback.

Map the customer journey: Make sure that you have clearly what the journey is from need to fulfilled need. Where are the obstacles? Which steps are unnecessary? AI tools can help analyze this customer journey, but you must first be aware of which journey you are optimizing.

The real strength of AI is not only speed, but also its ability to learn and adapt quickly. But that only works if you’re listening to your users.

The Technical Reality

7. Understanding logical limitations

AI can produce syntactically correct code with glaring logical flaws. That’s fine if you’re an experienced developer, but it raises questions about whether complete beginners can really partner with AI effectively.

AI is a code generator, but humans are still the logic validators.

If you’re new to coding, at least read the essentials:

  • ‘Clean Code’ (Robert C. Martin): Functions do ONE thing, meaningful names, explicit error handling.
  • Clean Architecture (Robert C. Martin): Business logic separate from infrastructure, dependency inversion
  • Refactoring (Martin Fowler): Recognize code smells, extract when you need comments.
  • Test Driven Development (Kent Beck): Write testable code, explicit side effects.

The question remains for how long these principals are necessary, considering the rapid development of AI tools.

8. Preventing context loss

AI inevitably loses context over time. Between sessions, and even within long sessions. That’s why memory and documentation are so important. Keep track of progress, tested ideas, and dead ends to avoid constant repetition.

9. Good programming isn’t simple, even with AI

As a product person, I often think: “It’s just an API with a bit of front-end, how hard can it be?” But reality hits hard. Even something as simple as a form saving data to a database requires:

  • Validation and formulation
  • SQL injection protection
  • Authentication
  • Session management
  • Error handling
  • Backup strategy
  • Monitoring

Programming may sound easy and magical, but every small feature needs solid engineering, especially if 150,000 users rely on it daily.

Machine learning programming: project management and organization

10. Recognizing hidden project costs

It’s good to realize that there might be hidden costs in each programming project, and that’s no different with AI. AI doesn’t eliminate human coordination costs. While I could build the project myself, I still needed permissions to install apps in our CRM. One of my colleagues had to explain to me how our APIs work. I got a GIT crash course from another colleague. And through Slack I received feedback from multiple developers. 

That’s at least 5 hours of others’ time, which is easy to forget but very real. And that’s not including the fact that each interruption costs colleagues approximately 23 minutes to regain flow.

11. Recognizing and managing AI programming addiction

This one surprised me. Two weeks of programming with AI made me unreachable to the outside world. AI is addictive. It gives dopamine hits every time you solve the next problem.

The dangers of AI velocity:

  • Continuous flow with no natural breaks
  • The “just one more feature” syndrome
  • Real-time scope creep
  • Rapidly accumulating invisible technical debt

The fix? Artificial stopping points. Stop at 6 p.m. sharp, or when you start making silly mistakes. That last part happens way too often with AI.

12. Software maintenance in the AI era

Everything you build must also be maintained. Keep that in mind. AI makes this easier long-term, but the responsibility doesn’t go away. Not being aware of the maintenance is one of the biggest and most common mistakes in software development. 

Follow the rule: use → before buy → before build. Use what exists, and if it doesn’t, buy it. And if you cannot buy it, then developing it yourself is the last option. 

  • Use open-source systems maintained and continuously developed by the community, and contribute to those. 
  • Use tools like N8N for workflows. Managing workflows is much easier and more accessible than programming.

AI may take over most code maintenance in five years, but we’re not there yet. Use, before buy, before build is the best guiding principle when it comes to software use and development for every company. 

programmeren met ai en claude code

13. Privacy and data security

At Voys, privacy is core. AI makes this even trickier. If you use live customer data, it’s easy for screenshots or logs to leak into the AI. Always keep this in mind and use mock data for testing and production. Remember: even phone numbers and email addresses are personal data, and that applies to customers’ personal data as well colleagues.

Code quality and production-ready product development with AI

14. Code maintenance with AI

AI-written code still requires refactoring and cleanup. Make this part of your workflow with AI. After the code works, ask AI to optimize and simplify it.

Enforce clean git commits, meaning no old files, test files, or other trash that you don’t want in your clean code base. Refactoring needs to become an integrated part of your workflow.

Delete unused legacy code. That way, AI doesn’t get stuck in this, and the code stays clean. AI can sometimes get really bogged down in legacy functions that are still floating around in your project.

Here’s a tip: logging clearly helps. AI can analyze logs not just for bugs, but also for architecture issues.

15. Code architecture and programming principles for AI development

Strong architecture and coding principles from day one make code manageable, maintainable, and scalable. Starting every coding session with a solid prompt based on the previously mentioned books can enforce these principles. 

16. Production-ready from day one

Choose to work on a production ready system from day one. In other words: you have to think about things like security and privacy by design. 

Consider the following from the very beginning: 

  • Security (authentication, rate limiting, input validation)
  • Monitoring (health checks, structured logging)
  • Graceful degradation (handling optional service failures)
  • Maintenance (log rotation, database backups, updates)

Working in a real production environment is invaluable. You learn from real use and feedback, not just theory. And another tip. Those good logs? They can help spot architectural problems or inefficiencies in the code. 

17. Testing code with AI

Make sure that your product is testable. AI can generate tests, but be cautious: it often validates the code it just wrote, not the underlying functionality.

Ensure you have:

  • An easy and complete test suite
  • Clear logs for debugging
  • Code that fails both clearly and early 
  • Logs that include business logic assumptions, not only technical error messages.
  • Visibility of the health of your system.

Consider doing functional tests that define what the code should do and how do I prove that the code does it, before AI writes it.

From experiment to production

18. Using standards

Stick to widely used coding standards. AI is well trained on them, and your programming colleagues will thank you as they know these principles too.

A good example: I bought a Bootstrap 5 template full of standard front-end code. It’s useful that I can point the AI to existing code examples or specific UI elements that I want to use. Even better though: because AI already “knows” Bootstrap 5, it can easily add features like “make this list sortable by the name column.”

19. Use Git and take small steps when generating code automatically

Using Git ensures that your codebase is clean and that your history and code evolution is transparent. More importantly, it forces you to pause and tidy up.

The golden rule: keep your steps tiny. Add small bits of functionality, test them, and move forward. Larger, unguided tasks cause AI to freewheel, and you’ll quickly lose track of the code.

Programming with AI in practice: more than just a tool

After two weeks of intense AI programming, one lesson is clear: this isn’t just another too, it’s a new way of working. AI generates code, but you remain the architect, quality guardian, and problem-solver.

It often feels like managing an overenthusiastic team of junior developers eager to write code. You apply the same principles as mature development, but you must be explicit in guiding the AI.

Without a solid development process, programming with AI is frustrating. With the right process, it’s still sometimes frustrating, but occasionally, it’s pure magic.

The winning combination? AI speed with human wisdom. Technical execution with business insight. Curiosity with production discipline. And yes, this will require something radically different from software development teams. 

Start small, learn fast, and build something that matters. The future of programming isn’t human versus machine, it’s human with machine. And with these 19 lessons, you have a strong start to making that collaboration successful.

Blog Series: Programming with AI

This is the third article in a four-part series on programming with AI. The final part is coming soon!

Mark keeps you updated

Subscribe to Mark’s newsletter and receive his monthly updates.

FAQ: Programming with AI

Can I program with AI without coding experience?

Not really. AI can generate code, but you need basic programming logic to spot errors and guide it. Start by learning core principles.

Which AI tool is best for programming?

Right now, Claude Code is the most mature. Other strong options include GitHub Copilot, ChatGPT, and Cursor. It depends on your needs and language. For this workflow, Claude Code stands out.

How do I prevent AI from writing bad code?

Take small steps, test often, document thoroughly, log clearly, and use critical prompts. Version control with Git is essential.

Is programming with AI safe for sensitive data?

Be very careful. Always use mock data and check whether your AI tool complies with privacy standards. Review your AI provider’s terms and relevant regulations.

How long does it take to build an app with AI?

It depends on complexity. AI can speed development by 5–10x. A test app may take weeks instead of months. A production-ready, mature app still requires serious upfront planning and fast, frequent user testing.

Can AI take over all programming work?

No. AI is great at code generation, but humans are needed for architecture, validation, testing, and business requirements. It’s an assistant, not a replacement.

More stories to read

On our blog we post about a lot of stuff, just go for it and read some posts for your own fun.

Go to the blog
The future of programming: why English is becoming the new programming language

from 20 October 2025

The future of programming: why English is becoming the new programming language

Read more
Programming with AI: clever cheating

from 5 September 2025

Programming with AI: clever cheating

Read more