Write a post about optimization and getting better

This commit is contained in:
Anthony Wang 2021-10-26 08:54:45 -05:00
parent 79fee0ddfc
commit 83da573636
Signed by: a
GPG key ID: BC96B00AEC5F2D76

View file

@ -0,0 +1,42 @@
---
title: "Optimization"
date: 2021-10-26T08:21:56-05:00
description: "The easy things are easier than you think and the hard things are harder."
type: "post"
tags: ["life", "school", "gaming"]
---
*Inspired by a [friend's blog post](https://michaelcao.substack.com/p/optimization) and the [95%-ile theory](https://danluu.com/p95-skill/)*
Let's start with Super Smash Bros. Ultimate. Now, I know that all you competitive Super Smash players are going to absolutely bash me for my conclusions about the game, but this post is about casual Super Smash, not the crazy competitions, so I'm automatically immune to your criticism. Anyways, now for the main point: Super Smash Bros. Ultimate, like most games, is one where you can beat 95% of people using "one weird trick".
Now, I can here all the competitive Smash players that didn't read the first paragraph screaming. But the truth is that the average casual player is pretty bad at Smash. They basically make the same fixable mistakes over and over again, and it's not too difficult if you actually try, to get to the 95th percentile level.
It depends on the person, but I've found this strategy works quite well:
1. Get really good at two or three moves and practice them like crazy. (Note that you still have to practice, of course)
2. Spam those moves repeatedly against your opponent.
3. Watch your replays and avoid making the same big blunders over and over.
[And you can now beat the highest-level CPUs!](https://tube.exozy.me/w/mUm4CZ5SDLRr4xa25fmoju) What about real people? Well, (most) real people aren't that dumb, but they are good at making mistakes. As long as you avoid big mistakes yourself, you'll always have an edge against your opponent.
Alright, so now you can beat most people, but what about getting even better? (Again, disregard competitive Smash players. They take the fun out of Smash. Just kidding.) Well, that's where things start breaking down. The higher up you go, getting better gets exponentially harder. Like for real. I'm not misuing "exponentially" here. This is where the real optimization begins.
What people don't understand is that getting to the 95th percentile is a lot easier than they think and improving beyond that is a lot harder than they think.
Take competitive programming for example. Here's something I wrote about CP (That acronym always makes me feel uncomfortable. I also feel uncomfrotable about whether I'm using acronym correctly here or if it's an abbreviation or initialization. Whatever.) a few months ago:
> All tips fall into one of two categories: practice, and learning from your mistakes.
>
> The first category is pretty easy: do a lot of problems and spend a lot of time on CP. You'll automagically see improvements.
>
> The second category is much more interesting. There are people out there who have done 1000+ problems and are still newbies. Why? Because they are making the same old mistakes over and over again when solving problems. One useful tip might be to record yourself solving problems and doing contests, so it's easier to see when you are wasting time, what makes you stuck, etc. You don't even need to go to this extreme of recording yourself. If you make sure to reflect after solving problems and doing contests, such as what areas you are weak on, which types of problems cause you to get stuck, etc, you can fix these mistakes with pretty easy fixes like doing more problems of a topic if you are weak in that topic. You'll automagically see improvements.
I've been [stuck in the 2000-2200 range on Codeforces](https://codeforces.com/profile/Ta180m) for one and a half years by now. At that point, it's very very difficut to get better. You're all out of things to optimize. Or easy things to optimize. Is spending 20 hours a week grinding Codeforces just to raise your rating by 100 points a good use of your time? Has it all just become a waste of time?
But even at that level, the small improvements and optimizations do add up over long periods of time. I have improved at Codeforces, even if my rating has gone down during the same time.
If you think about it, for many things, it's easy to get better at first, but you quickly begin to run out of things to optimize.
If you read my [friend's post about optimization](https://michaelcao.substack.com/p/optimization), it's all about knowing when to stop. But when exactly to stop? No one knows.