A photo of Maximilian Schwarzmüller

Maximilian Schwarzmüller

Use AI Assistants With Care

Use AI Assistants With Care

Published

It’s the big fear of many developers: AI will replace them. It’ll replace you! It’ll replace me!

I’m confident that won’t happen any time soon - but I’m also convinced that AI will mean trouble for developers ignoring it entirely.

Just as it will be for developers who rely on it too much.

It’s complicated! So let’s dive deeper.

Why Ignoring AI Is Not A Good Strategy

AI assistants like GitHub Copilot or Cursor can make you more productive.

They can help you plough through boilerplate, provide smart autocompletions, scaffold entire functions, provide useful feedback, help you with debugging, generate tests for you, and much, much more!

I’ll happily let AI generate code like this for me:

interface User {
  id: string;
  name: string;
  email: string;
  preferences: {
    theme: 'light' | 'dark';
    notifications: boolean;
  };
}

async function updateUserPreferences(
  userId: string,
  preferences: Partial<User['preferences']>
) {
  const response = await fetch(`/api/users/${userId}/preferences`, {
    method: 'PATCH',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify(preferences),
  });

  const data = await response.json();

  if (!response.ok) {
    throw new Error('An error occurred, could not update preferences.');
  }

  return data;
}

Okay, that was an unnecessarily long example snippet.

But you get my point.

CSS code would be another great example where I enjoy getting a helping hand. Especially once I set up things like color variables on my own.

In general, you’ll find many examples where AI can help you and speed you up.

But it’s easy to become too dependent…

Why Relying On AI Too Much Is Dangerous, Too

There is a thin, almost invisible border, between using AI and becoming reliant on AI.

Here are two dangers I see:

Ever had the situation where you waited for an AI autocompletion suggestion to pop up even though you knew perfectly well which code you wanted to write?

I did.

Sitting there, waiting a second or two, just to then accept the code I could’ve written myself (in the same time) is bad.

It’s even worse if the suggestion then isn’t what I was looking for. Now I wasted time, and don’t have a solution.

That’s a strong sign that you’re in the process of becoming too reliant on AI.

It should be an assistant, not a replacement for you.

I’ve also ended up in situations where I forgot basic syntax (e.g, for a SELECT ... JOIN statement) or APIs that I’ve written 1,000s of times throughout my career. Simply because I haven’t written the respective code over the last couple of months (instead, I let AI do it).

For me, coding is very much about muscle memory. I don’t actively think about writing standard code … I guess most developers don’t. That’s why I quickly “forget” things if I don’t use them frequently.

That’s of course, how it works for most skills: Use it or lose it.

Another problem is that you might not even consider (potentially better) solutions if you use AI too much.

If you blindly accept its suggestions, you might “write” code that’s worse than your non-AI-assisted code.

Use AI, But With Care

So, as always in life, it’s about finding the right balance. And we’re all relatively new to that game.

But being aware of potential dangers is a first important step.

Of course, you can also follow down the vibe coding path and be successful with that. You may be happy with replacing yourself with AI. You may also be convinced that it’ll eventually replace all developers anyways.

But if that’s not the case, you should consider turning off all AI assistants occasionally. You should force yourself to solve certain problems on your own.

At least, that’s what I try.