Here’s everything about competitive programming being a waste of time:
Competitive programming is not a waste of time unless you despise doing it and fail to use it to your advantage.
You can win prizes, meet other professional programmers, hone your skills, and learn tons of things from competitions.
On top of that, it can open doors in your career by giving you networking opportunities.
So if you want to learn all about why some think competitive programming is a waste of time, then this article is for you.
Let’s get into it!
- Competitive vs. Real-Life Programming: Differences?
- Competitive Programming: Why Fun & Not Fun?
- 177 Funny Programmer, Developer, and Coding Team Names List
What Is Competitive Programming?
I’m going to discuss some things about competitive programming today that you might not have considered before.
In order to prime that conversation, I want to make sure everyone is up to speed on what competitive programming actually is.
You might be thinking of that scene from The Social Network where a bunch of college kids was drinking and typing furiously on keyboards.
That’s a bit of a dramatization, but alcohol and furious fingers aside, it’s not entirely off the mark either.
A programming competition is where programmers come together to try to solve a specific problem by writing code.
Typically, the competitions are timed, and the person (or team) who can complete the challenge the fastest is the winner.
There are a lot of different competitions, and each has unique elements, and it’s too much to cover everything here.
The gist is that people really do compete in sports-like environments to win prizes, and programming is a form of competition.
Is Competitive Programming a Waste of Time?
The thing about competitive programming is that in practice, it is very different from the type of programming you might see on a daily basis at a major tech firm.
If we refer to professional programming as the work that is done by computer scientists and software engineers at their nine-to-five day jobs, then professional programming doesn’t have as much in common with competitive programming as you might think.
So, is it a waste of time to compete?
If you derive personal value from the competition, then no.
It’s no more of a waste of time than going to a movie or taking a walk.
You’re allowed to do the things you do.
Yet, that perspective isn’t what a lot of people have in mind when they ask this question.
Instead, they’re wondering if competitive programming can help their career as a professional programmer.
In that case, it’s still not a waste of time, but it’s not a golden ticket to success either.
To really get into this seeming contradiction, I’ll take you through the ways competitions can help you as a professional programmer.
Then, I’ll go through the ways it doesn’t help at all.
How Can Competitive Programming Help in Your Professional Career as a Programmer? (5 Things)
Let’s start with why competitions are not a waste of time.
In general, they can help you to become a better programmer.
The competitions can also help you find professional opportunities.
#1 Honing Fundamental Skills
Professional programming and competitions are extremely different. In a lot of ways, they test and develop different skills.
But, all programming comes from the same core set of fundamental skills.
All code is built from elementary ideas, and those are put together into algorithms in order to make programs.
Competitions can help you hone your skills at that fundamental level.
In order to create competition code quickly enough, you have to truly master the core skills, and that can help you in your day job as a professional programmer.
#2 Expanding Your Love of Programming
It will be easy to overlook this, but most people enter programming competitions because they enjoy it.
On the other hand, some people who love programming can still burn out when they work an intense day job.
Long hours, minimal gratification, and mental exhaustion from working on projects that don’t excite you can take a toll (obviously this won’t resonate with everyone, but it can happen).
Competitions can remind you what you love about programming.
They can be invigorating and inspiring, and that will only help you as a programmer.
If you get nothing else out of the competitions, this is enough.
I am not talking about computer networking here.
I’m referring to the tradition of meeting people within your profession, and in so doing, stumbling into opportunities.
Now, programming competitions aren’t like college football with scouting agents in the stands and multi-million dollar contracts waiting for the champions.
But, they are places where a lot of professional programmers come together to share their enjoyment of the practice.
If you’re getting a whole bunch of programmers together, there’s a chance that some of the people in attendance work for tech firms or companies where you might also like to hang your hat.
It’s also possible that you will meet and befriend some of these people.
In general, programming competitions are networking opportunities.
The crazy part is that you don’t even have to compete to get into some great networking.
Just show up and meet people and see what happens.
Granted, this works best for in-person events.
There are a lot of online competitions, and the networking opportunities there are a little different.
#4 Winning Prizes
Most competitions have prizes for winners.
Some of those prizes are cash prizes—to the tune of thousands of dollars.
Most of us would say that winning a few thousand dollars from doing something you enjoy is not a waste of time at all.
Granted, you have to win to get the prizes, but there is a potential for a meaningful payout if that helps you justify entering competitions.
#5 Deepening Your Resume
The biggest thing that helps programmers get good jobs is building up their resumes and portfolios.
Having a prestigious degree is nice, but ultimately, people want proof of your skills.
Winning competitions alone isn’t enough to make you the most hirable programmer out there, but it doesn’t hurt either.
If you can mention a few tournaments wins in addition to some of the cool programs you have written, it’s going to help you catch notice, stand out from the crowd, and get competitive programming jobs.
Why Do Some Think Competitive Programming Is a Waste of Time? (3 Things)
All of that sounds pretty good, right?
If there are so many benefits to competitions, then why would anyone ever think that competitive programming is a waste of time?
Mostly, it boils down to the fact that you cannot learn to be a professional programmer solely by competing.
In fact, you can’t even improve your skills as a professional programmer solely by competing.
I know that I said earlier that honing your fundamentals is important, and that’s still true, but in the face of professional programming, that alone isn’t enough.
There are a lot of things that simply aren’t covered by competitions, and it’s important to know that.
So, let’s look at two specific aspects of programming that don’t really come up in competitions and why it matters so much.
These are the things that won’t see any benefit when you enter competitions.
#1 Complex Programming
This is the big one.
A lot of competitions last for a number of days.
In-person competitions last for a few hours.
Meanwhile, professional programmers might work on the same software package for years.
The scale of the projects is completely different, and the very small, simple programs that show up in competitions don’t help you acclimate to the overwhelming complexity of modern programs.
There are millions of lines of code, and it’s your job to understand them and often write them.
On top of that, managing complex code is a skill in and of itself.
How do you keep track of everything? How do you isolate issues that come up (and they will come up with that much code)?
These skills really aren’t reinforced by competitions, and it’s why some professional programmers would suggest that competitions are a waste of time.
#2 The Other Stuff
It’s also important to remember that being a professional programmer involves more than coming up with algorithms and writing code.
In the professional world, you might have to manage a team, troubleshoot hardware, collaborate with multiple teams of programmers, go to meetings, research problems, and meet with clients.
In fact, the big time sink that is largely missing from competitions is documentation.
By all means, some competitions will require documentation as part of the challenge’s design, but the scale of that documentation is tiny compared to professional work.
Consider software development that involves many millions of lines of code.
Now, imagine you’re in charge of maintaining that software and working on updates for it.
There’s no way you can navigate such complexity unless everything is documented well, and creating good documentation for that much code takes time.
Simply put, competitions aren’t helping you develop your talents in these other areas of work.
#3 Soft Skills
Soft skills can definitely fall in the “other” category, but I wanted to separate them for emphasis.
Soft skills is a term to describe how you deal with people.
We often picture programmers as sitting alone at a desk typing on a computer all day.
Those days definitely do exist, but as a professional, you’re trying to write programs that solve specific problems.
In order to do that, you have to work with the client to properly understand the problem.
Then, you have to translate that problem into something a computer can understand.
In essence, you are the translator between people and machines, and that requires the ability to work well with clients and genuinely understand what they want.
In many cases, they don’t know anything at all about programming, so they’re just listing off things that don’t exactly make sense.
It is your soft skills that can help you bridge communication gaps and really cut to the core of the issue so that you can solve it.
None of that exists with competitions. In a competition, you just follow the rules and try to win.