I used to measure coding progress by how much code I produced. But a larger diff is not proof of better work: useful progress is code that solves the right problem and is understandable, testable, and safe to change. Writing more can be practice; volume alone cannot tell you whether you are getting better.
Why code volume is a poor measure of improvement
Lines written count output, not judgment. A short change that removes a confusing branch or fixes the right bug may be more valuable than a large feature built on an incorrect assumption. Conversely, a substantial implementation can be good work when the problem calls for it. The useful question is not simply how much code you wrote, but what the change accomplishes and what it costs the next person who has to understand or modify it.
As an Amazon Associate I earn from qualifying purchases.
That distinction also matters when practicing. Repetition can build fluency, but producing code without checking whether it works or fits the problem leaves important parts of the craft untested: reading unfamiliar code, choosing an approach, noticing edge cases, and revising a solution after feedback.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →What evidence says about code quality and productivity
A 2022 Google study examined developers within Google and found that perceived code quality, technical debt, infrastructure tools and support, team communication, goals and priorities, and organizational change and process were linked to perceived productivity. In its lagged analysis, increases in perceived code quality tended to come before increases in perceived productivity—not the other way around. The authors described this as “the strongest evidence to date that code quality affects individual developer productivity.” That is a finding about Google developers and perceived productivity, not a universal causal rule or a personal training prescription. Read the Google Research paper.
#1 Best Overall
The practical implication is modest but important: quality is not decoration added after productive coding. Making code easier to understand and change can be part of getting work done. It is still possible to over-engineer, and quality has to serve the actual problem; the study does not say that every task needs the same amount of polish.
Improvement includes the work around writing code
DORA’s Core Model treats engineering effectiveness as more than an individual’s typing speed. Its capabilities include code maintainability, documentation quality, a climate for learning, fast feedback, continuous integration, and test automation. DORA also tracks delivery through change lead time, deployment frequency, change fail percentage, and failed deployment recovery time. Those are measures of an engineering system’s delivery, not a direct score of how much one programmer has learned. Explore DORA’s research model.
For an individual, these ideas point to useful kinds of practice without proving a single best curriculum:
- Read and maintain existing code. Trace how a feature works, then make a small change without breaking its surrounding behavior.
- Test and investigate. Write a test for an expected behavior, run it, and learn to follow a failure to its cause.
- Reduce needless complexity. Refactor only when the change improves clarity or makes a real requirement easier to meet.
- Build for a clear outcome. Define what a user should be able to do, implement the smallest coherent change, and check whether it delivers that result.
These activities exercise judgment and feedback as well as code production. The available evidence does not rank them or establish which one will improve every learner fastest.
Rank #3
Feedback can make practice more informative
GitHub’s January 2024 summary of developer-experience research conducted with DX across more than 20 companies reported that blocking time for deep work was associated with 50% more productivity, intuitive processes with 50% more innovation, and fast code reviews with 20% more innovation. These are relationships reported in that study context, not guaranteed effects for every developer or team. They do suggest that improvement depends partly on having room to focus and a way to learn from the work, not just on increasing the number of changes produced. Read GitHub’s DevEx summary.
Code review can provide one such feedback loop. A 2021 Google Research field experiment covered 5,217 reviews involving 300 professional engineers at one company. The paper describes review as a way to support software quality and spread knowledge of coding practices. It also found that reviewers could often guess authors’ identities in anonymous review, and that anonymity could get in the way of offline, high-bandwidth conversation. Review is therefore not automatically a lesson: its value depends on the quality of the feedback and whether people can discuss the reasoning behind a change. Read the Google Research field experiment.
Rank #4
AI can increase output without proving skill growth
AI-assisted coding makes the distinction between output and improvement more visible. DORA’s 2025 report draws on more than 100 hours of qualitative data and survey responses from nearly 5,000 technology professionals worldwide. It characterizes AI as an amplifier of existing organizational strengths and dysfunctions. That is an organizational finding; it does not establish that accepting more generated code makes an individual a better programmer. Read the DORA 2025 report summary.
If you use a coding assistant, treat its output as a proposal to understand, test, and revise. The learning is not in the volume it generates; it is in whether you can explain what the change does, spot where it may fail, and decide whether it belongs in the codebase.
Best Value
A more useful way to judge a coding session
Instead of asking whether you wrote enough, look at the outcome and the feedback you got. For a small task, that might mean you can explain the intended behavior, identify the relevant existing code, make a focused change, and check it with a test or another form of feedback. For a larger task, progress may mean discovering that the initial approach was wrong before building more on top of it.
There is no evidence here for a universal number of hours, lines, or exercises that makes someone a better coder. Writing code remains essential practice, but the stronger measure is whether your decisions and results are becoming more useful, understandable, and maintainable.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




