I'm new to coding with AI
Start with GitHub's free learning guide, then try asking for an explanation of a small piece of code.
Start with: Setting up Copilot for learning to code
RedLectern topic
Code assistance · explanation · debugging · development workflows · human verification.
For: Programmers · coding beginners.
After this page you can: Use AI assistance while checking correctness and understanding changes.
Page reviewed
Part of: Artificial Intelligence
AI for coding covers tools that suggest code, explain unfamiliar parts, help investigate errors, and propose changes to a project. These can support both experienced programmers and people learning to code. A useful first step is to ask for an explanation or a small suggestion, then compare it with the code and the task you meant to solve.
Treat generated code as a proposal to examine. Ask what changed and why, check that it fits the project, and run relevant tests or other functional checks. Tests can miss cases, and code that looks plausible can still contain incorrect logic, an unfamiliar API, or a dependency that needs checking. Use AI to help you investigate; keep responsibility for understanding and validating the change. For repository-aware tools that can make edits or run commands, see AI coding agents.
Start with GitHub's free learning guide, then try asking for an explanation of a small piece of code.
Start with: Setting up Copilot for learning to code
Use an error message or unexpected output as a starting point, then check the proposed fix.
Start with: Learning to debug with GitHub Copilot
Learn a review routine that includes tests, project intent, code quality, and dependencies.
Start with: Review AI-generated code
AI coding assistance can appear as inline code suggestions or as a conversational answer about code. Code completion means suggesting continuations or snippets while code is being written. Accept only a suggestion you can relate to the task; read it in context and ask for an explanation if its purpose is unclear.
Vibe coding is a loosely defined practice of building software through heavy AI generation. The phrase is associated with a workflow of describing, running, and iterating on generated software while paying little attention to its underlying code. Treat it as a label for an approach, not a correctness check. As a learner, pause to understand each change and make sure it meets the behavior you intended.
Documents inline suggestions offered while a person works in the editor.
Code completion
Suggesting continuations or snippets while code is being written.
Vibe coding
A loosely defined practice of building software through heavy AI generation.
Ask an AI assistant to explain a short suggestion that increments a number by one. In your own words, state what the suggestion changes and give an input and expected output to check.
For a suggestion that returns the input plus one, I would explain that it increments the input. I would check that input 2 produces 3 and input 0 produces 1.
When a program fails, give the assistant the relevant error or describe the output you expected and what happened instead. These are different clues: a program may stop with an error, or it may run and produce the wrong result. Ask for an explanation of the cause and a proposed fix, but inspect whether the explanation matches the actual code.
After a change, run the relevant test or reproduce the original case. Check whether the fix addresses the cause rather than hiding the symptom, and look for new failures or changed behavior. If the result is still wrong, share the new evidence and investigate again. Debugging help can guide your investigation, but the observed program behavior is what you need to check.
Offers examples of using an assistant to investigate issues such as invalid JSON and failing CI tests.
Write a two-sentence debugging request for a bug you know: include the actual result, the expected result, and a request to explain the cause before suggesting a fix.
A useful request distinguishes what happened from what you expected and asks for reasoning you can compare with the code.
Review a proposed change against the task and the project around it. Check whether it solves the intended problem, follows the project's conventions, and is readable enough for you to maintain. Look for assumptions, edge cases, unfamiliar APIs, and added packages that need verification.
Run relevant tests and static checks, and examine any warnings or failures. Generated tests may not cover all important cases, so consider what else should be tested. Passing checks are useful evidence, but they do not replace understanding the change or deciding whether it fits the requirement. For larger or sensitive changes, a second human review can help catch issues.
Explains how generated tests can help and why learners should review coverage and add missing cases.
Imagine an AI assistant changed a function and added one test. Name two checks you would make before accepting the change.
Check that the function matches the requested behavior and that the test covers a meaningful case; then run the relevant checks.
No recent updates are available.
Leo Porter and Daniel Zingaro · 2024
A beginner-focused way to ask for help, read generated Python, and test whether it works before accepting the code.
David Thomas and Andrew Hunt · 2019
A cross-language craft reference on maintainable code, debugging, testing, and the habits that help programmers reason about changes.
Kent Beck · 2003
A focused introduction to writing a test, making the code pass it, and then refactoring. Its verification practice is useful alongside AI assistance.