Athletes and musicians pursue virtuosity in fundamental skills
Elite athletes and classical musicians spend much of their time drilling fundamentals, prompting comparisons with programmers and other “knowledge workers” who rarely practice core skills in a structured way. Commenters debate whether this gap stems from differences in incentives and measurement — sports and music have clear performance moments and objective metrics, while software work is continuous, collaborative, and evaluated mainly by business outcomes. Others argue that fundamentals in knowledge work are harder to define, often domain-specific, and frequently exercised indirectly through real projects, teaching, and problem-solving rather than isolated “scales.”
Comparison of Athletes/Musicians vs Knowledge Workers
- Many argue the comparison is skewed: it pits top-tier athletes/musicians (p99 of their field) against average programmers.
- Sport and classical music are ultra-competitive with few paid positions, which forces rigorous practice in fundamentals.
- Knowledge work (especially programming) is less competitive; many can hold stable, well-paid roles as “average” contributors.
- Some suggest comparing similarly paid cohorts (e.g., $150k musician vs $150k programmer) rather than global elites to typical devs.
Practice, Performance, and Work Structure
- Athletes/musicians have short, high-stakes “performances” and large blocks of time for practice and drills.
- Knowledge workers’ “performance” is spread across the workday; they’re expected to produce continuously, leaving little explicit practice time.
- There is debate about whether day-to-day programming itself constitutes sufficient practice, versus needing deliberate drills on fundamentals.
- Some companies do budget time for learning, but several commenters report never seeing structured training in most workplaces.
Fundamentals and Deliberate Practice in Software
- Suggestions for “software fundamentals practice” include: building dev environments from scratch, end-to-end feature changes, integration tests, compilers, and fast implementation of common patterns.
- Others note that many computing “theory fundamentals” (automata, grammars) rarely matter in most day-to-day jobs, so fundamentals must be domain-specific.
- Memorization is defended by some as undervalued; others rely more on breadth and tooling.
What Is “Good Code”? Metrics vs Taste
- One camp argues for objective metrics: performance, build time, defect and regression counts, code size, dependencies, test coverage, test time.
- Critics say metrics are context-dependent, easily gamed, and cannot capture key qualities: clarity, safety to modify, ease of learning, and solving valuable problems.
- Extended debate highlights:
- Goodness is partly subjective and value-laden.
- Product metrics (business impact, usefulness) matter as much as code-level metrics.
- Over-optimizing the wrong metrics (e.g., performance, coverage) can harm the product and team.
Nature of the Work: Performance vs Creation
- Several commenters frame programming as closer to composition/research than to performance: success involves novel problem-solving, not repeating fixed routines under time pressure.
- Others point out subdomains (incident response, competitive programming, surgery-like ops) that do resemble performance and might benefit more from drilled fundamentals.