Sefism is free for learners. We are here to help you grow, one step at a time.Join for free
Sefism.
aillmproductivity

How to Use AI as a Companion, Not a Crutch

How to use AI for coding without losing your skills: the one rule that decides it, what the research says, where AI helps and where it quietly hurts, how students should learn with it, and how to verify its code.

Tauseef Fayyaz
Tauseef Fayyaz

Jun 18, 202613 min read

0

The short answer: how to use AI for coding without losing your skills

If you want to use AI for coding without hollowing out your own ability, the whole thing comes down to one rule: use it for work you could do yourself but would rather not, and for work you are actively trying to understand. Do not use it for work you cannot evaluate.

If you can read the output and tell whether it is right, the tool is making you faster. If you cannot, you are not delegating, you are gambling, and the debt comes due when it breaks in production and you are the person expected to fix it.

I am a Lead Full Stack Engineer and I use AI coding assistants every day. I also talk to students and junior developers every week who are quietly worried that they cannot code without one open. Both experiences point to the same conclusion: the tool is not the problem or the solution. How you use it is. This post covers where AI genuinely helps, where it quietly hurts, what the research says, and the habits that decide which of those happens to you.

Two ways to use AI for coding badly

Refusing to use it. Usually on the grounds that it makes you worse. There is a real concern buried in that, but the practical result is doing by hand what your colleagues finish in an afternoon. In the 2025 Stack Overflow Developer Survey, 84% of respondents said they were using or planning to use AI tools in their development process. Teams now expect you to be fluent with them.

Accepting output you cannot evaluate. This is more common and more damaging. Code arrives, it looks plausible, it runs on the happy path, and you ship it. You have not learned anything, and you have added something to the codebase that nobody, including you, understands.

The useful position sits between those two, and the rule above is how you find it.

What the research says about AI and coding skills

It is worth looking at actual evidence, because opinions on this are loud and mostly anecdotal.

StudyWhat it foundWhat it means for you
Anthropic, 2026: 52 mostly junior engineers learning a new Python libraryThe AI group scored 50% on a follow up quiz vs 67% for those who coded by hand, and were not significantly fasterDelegating while learning costs you understanding
Same study, looking at how people used itThose who asked conceptual questions or asked for explanations alongside code kept much more of the learningHow you ask matters as much as whether you ask
METR, 2025: 16 experienced open source developers, 246 real tasksWith AI they took 19% longer, yet afterwards believed it had made them 20% fasterYour sense of speed is not reliable; measure
GitHub Copilot experiment, 2023Developers built an HTTP server 55.8% faster with CopilotOn well defined, familiar tasks, the speed gain is real
Microsoft Research and CMU, 2025: 319 knowledge workersMore confidence in AI was linked to less critical thinking; more self confidence to moreTrusting the tool too much switches off your judgment

Put together, the picture is consistent. AI makes you faster on work you already understand, can slow you down on complex work in a codebase you know well, and actively gets in the way of learning when you hand it the thinking. None of that says "do not use it". All of it says "be deliberate".

Where AI is genuinely excellent for developers

The boring middle of a task. Boilerplate, configuration, a test suite for a function whose behaviour you already know, converting data from one shape to another, a regular expression you would otherwise assemble by trial and error. Known correct answer, no learning value: hand it over.

Explaining unfamiliar code. Paste in a function from a codebase you have just joined and ask what it does, line by line. This is one of the highest value uses and one of the least discussed, because reading unfamiliar code is most of what a new job consists of.

A rubber duck that answers. Describing a problem out loud is an old debugging technique. Describing it to something that asks clarifying questions is better, and it works even when its answer is wrong, because putting the problem into words is where you usually find the bug.

First drafts of writing. Design documents, pull request descriptions, incident summaries. Not to publish, but to get past the empty page. The draft will be flat and generic and you will rewrite most of it, which is far easier than starting from nothing.

Learning a new language or library. Show it code you understand in a language you know and ask for the idiomatic equivalent. The side by side comparison teaches faster than documentation alone.

Reviewing your code. Write it yourself, then ask the model to review it for bugs, edge cases and readability. You keep the writing skill and gain a second pair of eyes.

Where AI will quietly hurt you

Architecture and design decisions. It will give a confident answer to what your service boundaries should be. That answer is a plausible average of things it has seen, and it knows nothing about your team, your deadline, your existing systems or your data. Design decisions are the ones you live with for years; make them yourself, and use the model to challenge your reasoning, not replace it.

Anything security related. Authentication, authorisation, cryptography, input handling. Veracode's 2025 GenAI Code Security Report tested code from over 100 models and found that 45% of samples introduced a security vulnerability. Generated code here is often subtly wrong in ways that pass a quick review, and the failure mode is not a broken feature, it is a breach.

Debugging you have not attempted. Reaching for it in the first thirty seconds skips the part where you build a mental model of the system. Debugging is how you learn how things actually work. I wrote a whole answer on how to get better at debugging without asking AI first.

A fundamental you have been avoiding. If you do not understand recursion and it writes your recursive function, you still do not understand recursion, and you have removed the discomfort that would eventually have made you learn it. The Anthropic study above found the biggest gap on debugging questions, which is exactly the skill you need to catch the model's mistakes.

Use AI freelyUse AI carefullyDo it yourself first
Boilerplate and configRefactoring code you understandLearning a new fundamental
Explaining unfamiliar codeWriting tests (then check they can fail)First pass at debugging
Converting formats, regexDrafting docs and PR descriptionsArchitecture decisions
Idiomatic translations between languagesUnfamiliar APIs (verify they exist)Security sensitive code

How to use AI to learn programming, not skip it

If you are a student, this section matters most, because you are building the skills the tool will later assume you have.

Try first, then ask. Give the problem an honest attempt, even a failed one, before asking for help. The attempt is what makes the answer stick, because you now have a specific question instead of a general request. This is the same reason to struggle with a practice problem before opening the solution: recognition is not recall.

Ask for hints, not answers. "Do not give me the code. What concept am I missing?" gets you unstuck without doing the work for you.

Ask why, then ask why again. The Anthropic study found learners who used AI for conceptual questions and explanations kept far more than those who simply pasted in the task. Treat it as a patient tutor, not a vending machine.

Rebuild it from a blank file. If AI wrote something you want to learn from, close the chat and write it again yourself. If you cannot, you have not learned it yet.

Practise without it on purpose. Keep some practice, like DSA problems, AI free. My guide on how to learn DSA from scratch is built on exactly that, and Grokking the Coding Interview: Patterns for Coding Questions is a structured way to build pattern recognition you own.

If you are worried you have already leaned on it too much, read am I learning if I do not understand AI generated code and is it bad to rely on ChatGPT or Cursor to write code. And if the real problem is that you can follow tutorials but cannot build anything alone, AI will make that worse unless you change how you use it.

Prompting for developers, briefly

Most prompting advice is written for casual chat. For engineering work, four things matter far more than clever phrasing.

  • Give it the context it cannot see. Your file, the surrounding code, library versions, constraints, what you already tried. Most disappointing output is a context problem, not a capability problem.
  • Ask for the shape you want. If you need JSON, give the schema. If you want three options with trade offs rather than one confident answer, ask for that; it is usually the better request.
  • Let it reason before it answers. Asking it to work through the problem before writing code tends to help on anything non trivial.
  • Iterate rather than restart. Tell it what was wrong with the last answer. A conversation converges; rewriting the opening request over and over does not.

If you want to get properly good at this, Grokking Prompt Engineering for Software Engineers is written for exactly this use, and the free Anthropic prompt engineering documentation is a solid reference.

How to verify AI generated code

Every one of these tools will state something false with exactly the same confidence as something true. That is not a flaw about to be fixed, and developers know it: in the same Stack Overflow survey, 46% said they distrust the accuracy of AI tools while only 33% trust it, and the top frustration, for 66%, was solutions that are "almost right, but not quite".

So build verification into your routine:

  • Run the code. Not just the happy path. Try empty input, huge input and bad input.
  • Check the API actually exists. Invented functions and parameters are common. Open the official docs.
  • Read the generated tests critically. Break the code on purpose and confirm the test fails. A test that passes against any implementation is worse than no test.
  • Read every line before you commit it. If you cannot explain a line in code review, you do not get to ship it.
  • Treat a cited fact as a lead, not a source. Follow the link. Check the version and date.

The engineers who get the most out of these tools are not the ones with the best prompts. They are the ones with the strongest verification habit, which is a slightly boring answer and the correct one.

What it means for your career when you use AI for coding

There is a widespread fear that these tools will hollow out your skills. It is a reasonable fear, and it is conditional, not automatic.

It hollows you out if you use it to avoid understanding. It sharpens you if you use it to understand faster, because you can ask unlimited questions of something that never gets impatient, and that is a huge advantage over learning alone.

What is changing is which skills pay. Producing code from a clear specification is getting cheaper. Knowing what to build, telling whether an answer is right, debugging systems, and explaining decisions to other people are becoming more valuable. I wrote about those in skills AI cannot easily replace for software engineers and in will AI replace software engineers. If you want to go further and build AI features yourself, the AI engineering roadmap is where I would start.

So use the tools, heavily. Just make sure that at the end of every week you understand more than you did at the start, not less.

Learn it on Sefism

FAQ

Does using AI make you a worse programmer?

It can, if you use it to skip the thinking while you are learning. Research from Anthropic found learners who delegated to AI understood less, while those who asked for explanations and concepts kept much more. Used deliberately, it can make you better.

Is it okay for students to use ChatGPT or Copilot for coding?

Yes, as a tutor and a reviewer. Try problems yourself first, ask for hints rather than answers, and rebuild anything it writes from a blank file. Keep some practice, like DSA, completely AI free.

How do I use AI to learn programming faster?

Ask it to explain code line by line, to compare code in a language you know with one you are learning, and to quiz you on concepts. Avoid asking it to just produce solutions to exercises you are meant to learn from.

Should I trust AI generated code?

Not without checking it. Run it, test the edge cases, confirm any APIs it uses exist in the docs, and be especially careful with security sensitive code. If you cannot explain a line, do not ship it.

Will AI coding tools replace junior developers?

They are reducing some routine entry level work, but teams still need people who can read, debug and judge code. Juniors who use AI well and understand what they ship are more valuable, not less.

Ask your own question

If your situation is different from the ones above, the career questions library has honest answers to the questions students and engineers ask me most.

Want a learning roadmap built around you, written answers to your own questions and a place to discuss your FYP? Create your free Sefism account. Members can also book a one to one session when they want to talk it through.

Stay in touch

  • LinkedIn: where I share roadmaps, career advice and honest takes on hiring. Follow, or message me.
  • X (Twitter): short practical thoughts on engineering and careers.
  • Instagram: quick tips and a more personal side.
  • Sefism Discord: meet other students and engineers working through the same job market and share what is working.
  • Sefism on YouTube: walkthroughs and talks.
aillmproductivitycareer growth
0

Keep learning

Tauseef Fayyaz

Written by

Tauseef Fayyaz

Lead Full Stack Engineer & Career Mentor. I lead an engineering team by day and mentor engineers through job hunts, promotions and career switches the rest of the time.

Comments (0)

Comments are closed for now.

No comments yet.

From the blog

All posts
Work with me

Stuck on something specific?

Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.

  • 1:1 Mentorship
  • Fresh Graduate Mentorship
  • Career Guidance

Brand deals, promos and partnerships: tauseeffayyaz@gmail.com