If you want to get better at something, you need a plan. Improvement doesn’t happen on its own. But once you have that plan, a bigger challenge is executing on it along with your other responsibilities.
One way to increase your chances of following through on changes is not to try to make big changes all at once. Instead, make small changes, but make them regularly. Let’s see how that works.
Making 1% Gains
James Clear, writing on this topic, uses the example of cycling coach Dave Brailsford, who got his team to the Tour de France by making small improvements in many areas. This strategy is known as the “aggregation of marginal gains.”
One advantage of the marginal gains approach is that it focuses on untapped areas. Rather than searching for further improvements in an area you have already worked on, you can target an area that has obvious optimizations because you haven’t yet tried to improve it yet.
Another benefit of this approach is that it takes less effort to make a small improvement than a large one. This is especially important if you already work or go to school full-time, and improvement is a side project. You might only have energy for small improvements. Nevertheless, these small improvements can add up over time. To illustrate this, James Clear’s article includes a graph showing the compounding effect of marginal improvement (and its evil twin, marginal decline).
And Hanging On to Them
There’s no way to make marginal gains in multiple areas without at some point switching your focus from one area to another. That’s when problems can occur. The marginal improvement approach assumes that you’ll be accumulating multiple small improvements over time. That only works if you can maintain earlier improvements as you move on to new ones.
The standard way to make an improvement stick is to structure it as a habit. For example, to improve your ability to focus on difficult work, you could set aside time every day to work with no external distractions (like email). That will gradually train your brain to work effectively in a distraction-free environment.
Eventually you may reach a point where you don’t have to remind yourself to ignore your email during periods of focused work. You’ll be in the habit of doing it, and it will just happen. However, as Scott Young suggests in Why is it So Hard to Create Permanent Habits?, it’s rare that a habit will maintain itself without any effort at all. Instead, most habits become metastable, meaning that they are stable in normal circumstances, but they can be disturbed by outside forces. Take the email example: Maybe you have a week with a lot of back and forth conversations on email, as a result of a short-term project. Once that week is over, you might have to make a special effort to switch back to your desired email habit.
Due to habit metastability, if you’re trying to aggregate many small improvements, you can’t just keep adding new changes to your routine. You also have to revisit previous changes to make sure they don’t disappear. One way to do that is using these two principles:
- Always be working on several small improvements: A benefit of marginal gains is that you can fit them in to your regular schedule. If you have a few improvements going at all times, you’re more likely to have a net positive result even if you lose a few.
- Work on both new and old improvements: To avoid losing previous improvements, refresh them periodically as part of your regular improvement schedule. Scott Young suggests being on the lookout for situations where a habit is disrupted (e.g., the high-activity email week), and making a special effort to avoid losing it.
Relationship to Deliberate Practice
The marginal gains technique is appropriate for improving minor skills. If you’re working on getting better at programming, a minor skill might be typing speed. Typing faster can make you slightly more effective as a programmer, but it won’t be a game changer. Deliberate practice, in contrast, targets fundamental skills, like those that can directly increase your value to an employer.
Despite these differences, deliberate practice and aggregation of marginal gains have some things in common:
Planning and goals: While the marginal gains technique may target minor skills, that doesn’t mean you can approach it haphazardly. If you want those minor skill improvements to add up to something substantial, you have to work on them intentionally. As I mentioned above, this probably means creating habits.
Feedback and measurement: A minor result is not a fuzzy result. To make it worth your time, use objective measurement and other forms of feedback to make sure you’re getting results that you’re happy with.
Deliberate practice and aggregation of marginal gains can work well together. Deliberate practice requires up to a few hours per day of focused effort. Marginal gains, as the name suggests, can be made at the margins of your main event. As a result, you can end up with a better outcome over the long term than if you focus solely on the fundamentals.
Examples from Competitive Programming
The core skills required for competitive programming success include algorithmic problem-solving ability, programming language fluency, and mathematical thinking skills. Working on those using deliberate practice techniques will give you the biggest bang for your buck. But once you’re executing on a plan to cover those core topics, you can pick up marginal gains in other areas. Here are some examples.
Typing speed
If you’re elite enough in programming competitions, typing speed can be a factor. (See the top few answers at What is it like to type extremely quickly?). But even if you don’t participate in competitions, it’s convenient when your typing speed is close to your thinking speed, so your brain doesn’t have to wait for your fingers. While coding may involve more thinking than typing, when you do need to type something, it’s nice to be able to burst it out into your editor.
Reading comprehension
This one isn’t quite a core skill, but it’s important as minor skills go. You have to be able to read the problem statement quickly and accurately, or you may end up solving the wrong problem. If you’re getting tripped up by the convoluted language that problem setters use, it may be worth targeting this area. I wrote some ideas on how to do that in Competitive Programming Training Tips.
Tool proficiency
The minor skill counterpart to programming language fluency is programming tool proficiency. Getting slightly better at using features of your editor or IDE can give you some of those marginal gains that you’re building. There are also some tools that are more specific to competitive programming. Often these will help you use a particular online judge more efficiently.
Productivity habits
Productivity habits can make everything you do slightly more efficient. Eventually that adds up.
Small Improvements
Though it’s essential to target fundamental skills for the long term, it’s also useful to make progress on minor skills. Not only are those small skills useful, but you can work on them when you don’t have time or energy to tackle the big ones.
(Image credit: 5chw4r7z)