Hello there!
Welcome to Algorithmically Speaking, where we discuss topics on the intersection of Computer Science, Software Engineering, and life.
As longtime readers of this newsletter must know, I used to do competitive programming back in my university days. I still do, to test my problem-solving skills once in a while. The hard training and the long hours I put in allowed me to fly to Europe to compete against the best programmers of my generation.
Competition is something that I have always carried with me, and it has driven a lot of progress and satisfaction in my life. Because of competition, I have achieved difficult goals and met wonderful people.
But competition can be tricky to handle. Competition is a double-edged sword that can turn against you at any time. I have written about it here, where
and I share the pros and cons of fostering a competitive mindset in Computer Science students.Today, I want to focus on the benefits of competition and the key aspects we must consider to maximize its potential.
Buckle up!
Competition Should be Against Yourself
Most people get this wrong. When there's competition, people tend to see opponents as enemies, but they are not the same thing.
Opponents are just another chance to validate if you have improved in the particular competitive setting you want to keep progressing. So, never see your opponents as some evil entity you must beat at all costs. Instead, focus on yourself.
It would be best if you strived to be better today than what you were the day before. I’m sure you’ve heard this multiple times. It doesn’t make it less accurate, though.
An objective way of measuring whether you have become better is more valuable than comparing yourself to others. Whether it is hitting a new personal best in your bench press or scoring max points in every exam in your semester, it doesn’t matter. Keep focusing on yourself and how you can improve.
The benefits of focusing on improving every day are not limited to the particular skill you want to master or the competitive scenario where you want to triumph. To sustain this effort of daily improvement, you will have to develop valuable skills such as will, perseverance, discipline, and patience.
Not many meaningful things in life come to us immediately. A major issue in today’s society is that people are so hooked on instant gratification that they fail to see that the reward after a hard, long-sustained effort is much more pleasant than, for example, scrolling mindlessly through social media.
You will be more competitive than most people if you are willing to dedicate one hour of your day to doing something hard, especially in this increasingly distracting world.
Hone your skills!
Competition is Better When Done as a Team
Progressively improving your skills is extremely valuable, but there is only so much that one person can do alone. So, it would be best if you aimed to join a team where the value you provide comes from the skills you practice daily and have honed over time but where the other members can contribute to the final goal (whatever that is) in ways that you can’t.
Now, this is also something that most people get wrong. Your team members are not your opponents. When you join a team, the goal stops being individual and starts being collective. Of course, your individual skills are a huge part of what you bring to the table, but even more important than that is understanding what role you should play to maximize the chances of your team reaching its goal.
If you join a football team, you individually practice passing and shooting the ball, but you collectively practice strategies and positioning and ultimately match your individual skills to the position on the field where you are most effective and useful for the team as a whole.
If you join a software development team, you practice your coding skills and problem-solving individually, but you collectively practice collaboration and task refinement. Ultimately, you focus on the tasks where you excel, letting others do what you don’t (yet) do as well.
In the first example, competition leads to winning a match, a more critical game like a derby, and eventually a championship. In the second example, it leads to completing a task or a feature and eventually delivering a finished product.
The role you play in a team can decide whether critical things get done or crucial matches are won. Understanding that a teammate is different from a competitor and equal to support that will allow you to keep competing with yourself is critical.
Ultimately, only people matter, and the skills of collaboration and effective teamwork are as helpful as any other in the modern world.
Competition has Two Modes
Yes, competition has two modes. Most people don’t know how to tell them apart. Let me explain.
Any competitive event (whatever that may be) cycles between the practice and the performance stages. Leveraging the benefits of these two stages is crucial in determining how much or how fast you can progress in the particular field that you want to keep improving.
The practice stage is the time for making mistakes and learning how to avoid them in the future. For example, what sets professional musicians apart is how many times they can practice a section of a musical piece until they get it right. That can be hitting all the correct notes at the proper time with precise accents. They repeat and repeat until they reach perfection. They isolate these sections and practice them individually, and once they have mastered them, they move on to the rest of the piece.
If you practice your guitar but make a few mistakes here and there and keep going through the song even though you know it is not entirely correct, then you are not executing the practice stage correctly. Deliberate practice is everything in this stage; pinpointing details and polishing flaws should be the main goal.
However, the performance stage is where you get to put into practice everything that you polished during your practice sessions. This is the concert on the stage, the match in the championship, the programming contest.
In this stage, if you make a mistake, you suck it up and continue from there. You can do nothing now if you did not hit that note right, or passed the ball to the other team, or pushed a bug in your production code. When it is time to deliver, you need to trust that all the time you’ve put into practice will come around to help you make the best decisions.
Mistakes happen occasionally, even to the most skilled or knowledgeable. The performance time is not the time to correct them. It is the time to do your best despite making mistakes.
After a performance session, you can recollect and work on your mistakes during your next practice session. This way, you create a feedback loop that allows you to keep improving over time.
Conclusions
To summarize, if you want to include competition in your life and make the best use of it, you need to understand that:
Your competition should be against yourself, not against others.
You should compete as a team instead of an individual as much as possible.
You should focus on separating the two stages of competition: practice and performance. Mastering both mindsets creates a feedback loop of eternal improvement.
And that’s it for today!
Did you like this article? Make sure to 🧡 click the like button.
Do you have any feedback? Make sure to 💬 comment.
Do you know someone who would find this helpful? Make sure to 🔁 share this post.
Here is how I can help you further
Interested in sponsoring this newsletter? Please reach out.
Want to work with me? Book a call, and let’s collaborate.
Interested in my book? Check it out.
Get in touch
You can find me on LinkedIn and GitHub.
This newsletter is funded by paid subscriptions from readers like yourself.
If you aren’t already, consider becoming a paid subscriber to receive the whole experience!
Please let me know if you want me to cover any specific topics of interest to you. I’m more than happy to do so.
Have a great day 🌞,
Alberto