AI Coding Assistants: What They Actually Do Well (and Poorly)
AI coding assistants are genuinely useful, but understanding their real strengths and failure modes matters more than which specific tool you pick.
What They're Genuinely Good At
- Boilerplate code -- getters/setters, standard CRUD scaffolding, repetitive test structure
- Explaining unfamiliar code or an error message in plain language
- Suggesting a reasonable first draft for a well-understood, common pattern
- Translating logic between languages you're already comfortable in
Where They Still Struggle
- Deep, project-specific business logic that depends on context the assistant doesn't have
- Confidently generating code that looks correct but has a subtle bug -- especially in edge cases
- Architectural decisions that require weighing real tradeoffs specific to your system, not a generic best practice
- Security-sensitive code, where a plausible-looking suggestion can carry a real vulnerability
Example: Catching a Subtle Generated Bug
An assistant asked to "write a function to check if a user is old enough to register (18+)" might generate age >= 18 based on a birthdate calculated with a naive year-subtraction, which is wrong for someone whose birthday hasn't occurred yet this year -- a classic off-by-one-year bug. A developer who reviews the generated code (rather than accepting it blindly) catches this in seconds; one who doesn't ships a real bug that could pass casual testing but fail for real users near their birthday.