Holding a Program in One's Head
21 hours ago
- Good programmers hold the entire program in their head, like a mathematician holds a problem, enabling deep understanding and easy manipulation.
- This ability is crucial early in a project to allow changing the problem being solved, not just the solution.
- Factors that help: avoid distractions, work in long uninterrupted sessions, use powerful languages, rewrite programs often, write rereadable code, work in small groups, avoid multiple editors on the same code, and start small with prototypes.
- Many programmers accidentally achieve these when working on side projects, leading to higher productivity and better design.
- Organizations often hinder this by treating programmers as interchangeable parts, scheduling meetings, and requiring multiple authors on code.
- Startups can exploit this weakness by focusing on problems that require deep individual concentration and allowing programmers to work without organizational constraints.