I'm dialing back my LLM usage
Overall sentiment
- Many experienced developers report initial enthusiasm followed by dialing back usage, especially for large, integrated features.
- Consensus: LLMs are powerful assistants but poor autonomous programmers; value depends heavily on scope, context size, and user discipline.
- Thread repeatedly contrasts “AI as tool” vs “AI as replacement,” with most arguing strongly for the former.
Where LLMs work well
- Small, localized tasks: single functions, tests, log statements, small refactors, simple scripts, boilerplate/scaffolding, CRUD wiring.
- “Super-StackOverflow”: quick conceptual explanations, surfacing APIs, brainstorming designs, pointing to docs or man pages.
- Frontend/UI glue (HTML/CSS/JS/Tailwind) and repetitive patterns (e.g., model wiring, controllers, tests).
- Code review and lint/static-analysis help: often catching real issues, though mixed with noise.
- Architecture comprehension: summarizing large code areas, generating diagrams and docs, helping navigate under-documented systems.
Where LLMs fail or backfire
- Large, tangled or legacy codebases; background “agents” often get lost, loop, or create messy diffs.
- “Vibe coding” entire features/apps: leads to balls of mud, loss of mental model, and feeling like “the new guy on your own project.”
- Subtle bugs and hallucinated APIs; plausible-but-wrong answers can waste more time than obviously wrong ones.
- Poor at obscure or niche solutions (e.g., specific DNS records, shader code, SIMD) unless heavily guided.
- As autonomous agents across a repo: many report loops and breakage within minutes, not the promised fully-automated workflows.
Mental models, ownership, and code quality
- Strong emphasis on programming as “theory building”: if you don’t build the theory, you can’t truly maintain or debug.
- Reviewing LLM code is likened to endlessly supervising a zero-trust junior; reading bad code is slower than writing good code.
- Several insist: if you commit it, you own it—“but AI wrote it” is not a valid excuse.
Effective usage patterns
- Treat LLM as a junior pair-programmer: you decide architecture, write design docs, keep high-level control, review every change.
- Keep tasks small, write tests first, use modes that separate “ask/inspect” from “edit,” and stop using the model after 1–2 bad iterations.
- Some adopt rules like “I type every character myself; AI only suggests” to retain understanding and skill.
Skills, cognition, and long‑term concerns
- Fear of “steroid” effects: short-term productivity boosts, long-term erosion of problem-solving and coding skill.
- Worries about choosing easy AI-amenable work (more code) over hard engineering work (thinking, design, coordination).
- Debate over whether next-token predictors can ever handle true program “theory”; some see hard limits, others expect continued incremental gains.
Hype, economics, and skepticism
- Many note a repetitive HN pattern: “LLMs are great but messy” vs “I’ve 2–10×’d output with agents,” often without code shown.
- Some attribute aggressive pro-agent narratives to VC incentives, influencer culture, and native advertising.
- Broad agreement: LLMs are already very useful tools; using them as autonomous coders for complex, long-lived systems remains risky and immature.