Citation needed.
- Understanding code: I can dump thousands of lines of undocumented code into a large context model and get back architectural outlines, API usage examples or even full documentation. I can also ask questions directly of the codebase.
- Debugging. The newer reasoning models are extremely good at deciphering a test failure or stack trace and pinpointing the potential causes of the bug, sending me right to the relevant code.
- Suggesting where to make edits. I've started asking models for a high level implementation plan based on the codebase and dumping in an issue thread - they frequently spot parts of the code I forgot I would need to update.
- "What should I test?" - dump in a diff and get back a checklist of branches I need to add test coverage for
At this point, if you can't find ways to make yourself more productive as a programmer with LLMs I have to conclude that you just aren't trying very hard.
Over my career, I've known many software engineers who were laid off. The ones I kept track of:
1. got another job, sometimes in another field
2. started their own business
3. retired
4. became a consultant
Who is going to pay laid off software engineers to spend time on inventing anything?
Fortunately, "AI" decreases productivity in software engineering, so this question is academic. But the Atlantic should mention these issues.