Red-Green-Code

Deliberate practice techniques for software developers

  • Home
  • About
  • Contact
  • Project 462
  • CP FAQ
  • Newsletter

Questions About Competitive Programming

By Duncan Smith Oct 19 0

Topics

If you have a question about competitive programming, Quora is a good place to find the answer. Quora’s Competitive Programming topic attracts experienced competitive programmers, and they have written answers to a variety of common questions that beginning and intermediate programmers have about the subject.

It has been a few years now since the Quora topic was created, and most questions about the fundamentals of competitive programming have been asked and answered. While there are still new questions about specific problems, and about current events, it’s rare to see a new question about fundamentals.

Introduction: Question Topics

Quora questions about competitive programming fall into four main topic areas, and ten or so total categories divided among those areas. When I see a new question arrive in the Competitive Programming topic, it almost always fits into one of those, even if it’s not a duplicate question. The four areas are:

  1. Getting Started
  2. Getting Better
  3. Pros and Cons
  4. Tools and Resources

1: Getting Started

Competitive programming is popular enough that it comes up regularly in Internet discussions (e.g., on Reddit or Stack Overflow), but it’s not so mainstream that everyone knows exactly what it is. This can lead people to Quora for information on the basics of the topic. That’s what this part is all about. These questions about competitive programming basics fall into three categories:

What Is It?

Some people just want to know what competitive programming is, or how it compares to other types of programming.

A famous Quora question: How is competitive programming different from real-life programming?

The basics: What is competitive programming?

(Also, my blog post on the question): What is Competitive Programming?

Other questions ask for definitions of terms or other specific aspects of competitive programming. For example:

  • What exactly is “print it modulo 10^9 + 7” in competitive programming websites?

How Do I Get Started?

Once a programmer finds out what competitive programming is, they may wonder how they can get started at it. That’s what these types of questions are about. The canonical question for this category is How do I learn competitive programming as a beginner?

What Are the Contests and How Do They Work?

People who have spent some time trying out competitive programming may have questions about what contests are available, or specific aspects of contests. For example:

  • What are the various online programming contests?
  • What can be the value of n in competitive programming when it is said that it should pass under 2 seconds?

2: Getting Better

This section covers the main topic of competitive programming practice: how to get better. Quora has advice in a number of areas for getting better at competitive programming:

How should I practice?

The canonical question about competitive programming practice is What is the best strategy to improve my skills in competitive programming in 2-3 months? I wrote a summary of the advice in Competitive Programming Training Tips.

What should I study?

Some questions ask what topics are most useful for getting better at competitive programming. An encyclopedic example: What basic data structures and algorithms should one learn before starting competitive programming?

How did specific people train?

It’s reasonable to think that, by studying and applying the practice technique of a successful competitive programmer, one might be able to replicate some of that success. This happens to be the approach that is generalized in Cal and Scott’s Top Performer Course.

Here’s the Quora question that usually comes up as an example of this study technique: How did Anudeep Nekkanti become so good at competitive programming?

Tips and techniques

Some questions ask for tips about specific aspects of competitive programming. For example:

  • What can I do to understand competitive programming problem statements?

  • What is the worst mistake you’ve made in competitive programming?

Algorithms, data structures, and math topics

This is a huge section, since there are so many different topics that competitive programmers need to learn about. Here are some examples:

  • Which is the best way to learn graph theory for competitive programming?
  • How does one become better at dynamic programming problems for competitive programming?
  • How to sharpen my mathematical skills in the context of competitive programming
  • How to learn Algorithms for competitive programming

Mistakes to Avoid

Why not learn from other people’s mistakes?

  • What are the common mistakes made by beginner competitive programmers?

Time and age

It’s strangely popular on Quora to ask questions about whether one is too old to do something. That trend continues in the Competitive Programming topic. For example: Can one start competitive programming at 16?

Even more popular is asking how long it takes to get good at competitive programming. Maybe this is inherent to people who want to learn programming, as Peter Norvig wrote in his famous essay, Teach Yourself Programming in Ten Years. Some examples of questions in this vein:

  • Is two months enough to get well-versed in competitive programming?
  • How much time should I spend daily for competitive programming?

Nature vs. nurture

Debates about nature vs. nurture are popular both in scientific journals (as I wrote about in Making Sense of the Deliberate Practice Debate) and in Quora questions. Here’s how one questioner puts it:

  • Is practice mean everything for competitive programming, or do I have to have an Einstein brain?

3: Pros and Cons

Because of the nature of online discussion, it’s not enough just to talk about how to start and improve one’s competitive programming skills. People also love to debate whether competitive programming is even worth spending time on. That’s what this topic is all about.

What are the Pros and Cons of Doing It?

There are plenty of people on both sides of the usefulness question, though Quora users on average have a more positive opinion of competitive programming than Stack Overflow users do. Here are some questions from both sides:

Pros

  • What have you gained from competitive programming?

Cons

  • What sucks about competitive programming?
  • What made you quit competitive programming?

Cons with attitude

From What do working software engineers think of competitive programming if they are not competitive programmers?:

This is a valid FAQ (2nd on the list) on competitive programming because it is a counter point to the perception many students and others have. If you remove it from the FAQ in Competitive Programming it will be put back on by one of the answers. If you do not agree take it up with the Quora admins. (Only an official note from the admins with an explanation to why it is not a FAQ will prevent it from being put back on. See FAQ discussion.)

Someone really wants to make sure the “con” point of view is represented.

Both

Some questions are looking for both pros and cons:

  • What are the advantages and disadvantages of having only competitive programming experience?

Should I Do It?

Quora users (and people in general) like to ask their questions from a personal point of view. So a pro vs. con question is often posed in terms of what competitive programming can do for me.

Should I spend time on competitive programming or something else?

People who take a serious interest in competitive programming must dedicate time to practice that they could use for something else. That’s the perspective that these questions come from. For example: Career-wise, which option is better: Open source contributions or competitive programming?

Is it worth doing in general?

Some people question the value of competitive programming independent of its effect on the time available to pursue other interests:

  • Is competitive programming really useful?
  • Should I quit competitive programming?

Is it worth doing to prepare for a specific goal?

Questions in these section want to narrow down the “should I do it?” calculation to a particular area where they want to improve:

  • Can competitive programming help you become better in theoretical computer science – algorithms research?

I’ve heard it’s useful. How do I make myself want to do it?

Everyone is doing it, and I don’t want to miss out:

  • What are some good motivations to encourage oneself for competitive programming?
  • Should I do competitive programming when I have lost the interest in it?

How do I balance it with other activities?

Finally, some people just want to fit it into their schedules.

  • How does an individual strike a balance between CGPA and competitive programming?

How Is It Related to Programming Jobs?

This pro vs. con subtopic is about programming jobs, and the activities that precede them (like university studies and interviews).

How is it related to programming interviews and resumes/CVs?

It’s no secret in the programming world that competitive programming has more than a few similarities with coding interviews. As a result, there are a ton of Quora questions on the practical benefits of competitive programming in this area. Here are a couple of popular ones:

  • If real world programming and competitive programming are so different, why do companies keep judging candidates on the basis of competitive coding based knowledge?

  • For a software engineer who doesn’t find competitive programming interesting but would like to join one of the big tech companies (for example Google, Facebook or Microsoft), what options do I have? Is it still possible to land a job at one of those companies?

How is it related to programming work and programming jobs?

While few amateur athletes go on to become professionals, it’s rare for a competitive programmer not to use their programming skills at work. The large number of questions relating programming jobs and competitive programming reflects this. Here are a few of them:

  • Where are people getting the idea that competitive programming is very important for a successful professional career?

  • Is excelling in competitive programming the only way to be successful in becoming a good programmer/software developer?

  • If I enjoy competitive programming more than software engineering, is there a job that suits that?

How is it related to university admissions and studies?

Some programming competitions target high school students. How does that experience relate to getting into and doing well at university? Quora users want to know.

  • What is the importance of competitive programming for a BTech computer science student?
  • What are the advantages of competitive programming for college students?

It may even be relevant for graduate students:

  • Does a good profile in competitive programming help in getting admission in top MS/Phd program at top US universities for Algorithms/Theoretical CS/Systems?

4: Tools and Resources

Competitive programming study requires a combination of academic resources like textbooks, and computer tools like compilers and editors. This topic area consists of questions asking for recommendations on the best tools and resources to use.

For another summary of these types of resources, see the Awesome Competitive Programming list.

What Tools Should I Use?

To practice competitive programming, you need a programming language. An editor and compiler may also be required, though online programming sites may hide these from beginners.

Which language?

  • What is the best language for Competitive Programming?

  • Is it really necessary to learn C++ for competitive programming?

What language features and techniques?

Using a language for competitive programming is different than using it for writing regular software.

  • What template do you use in competitive programming?

  • What are some cool C++ tricks to use in a programming contest?

  • What are some macros that are used in programming contests?

Learning a programming language for competitive programming

  • What are some good resources to learn C++ for competitive programming?

  • What is the best resource to learn Java for competitive programming?

IDEs, editors, and other tools

  • Being a competitive programmer which is the best IDE to use?

What Study Resources Should I Use?

Not every competitive programming problem can be attacked with logical thinking alone. Sometimes you need a specific algorithm or technique. Quora has a lot of recommendations for where to find those.

Books and other printable references

  • What are some good books for competitive programming?

  • How does Competitive programming by Steven Halim compare to Programming Challenges by Steven Skiena?

Quora itself

  • What are some of the must read questions about competitive programming on Quora?

  • What are some competitive programming blogs on Quora?

Blogs and Other Websites

  • What are some of the best websites to learn competitive coding?

  • What are some good blogs for learning algorithms and competitive programming techniques?

Courses

  • What are the most important math courses for Competitive Programming and upgrading my brain ?

Competitive Programming Sites and Online Judges (including sources of practice questions)

  • Where can I find categorized list of competitive programming problems?

  • What is the best coding competition site for beginners?

Video

  • What are some good sources of video tutorials for competitive programming?

In-Person

  • Where can I find a competitive programming coach?

Who Does It?

Quora is a bit like a social network, and competitive programming questions sometimes focus on people rather than programming. Here are a few notable ones:

  • Why are there few females in competitive programming?

  • Why are Indian engineers obsessed with competitive programming?

  • What does Professor Thomas Cormen think about competitive programming?

  • How do Russians learn competitive coding?

Conclusion: Asking Questions

A few weeks ago, I wrote a post called Getting Answers to Your Competitive Programming Questions, where I offered some advice on how to do just that. Since Stack Overflow is so good at answering specific programming questions, Quora is best reserved for general questions. It should be obvious by now that most of the good general questions have already been asked. Nevertheless, there may still be a few interesting ones out there. If you think you have one, go for it.

(Image credit: Dan Taylor-Watt)

Categories: Competitive Programming

Prev
Next

Stay in the Know

I'm trying out the latest learning techniques on software development concepts, and writing about what works best. Sound interesting? Subscribe to my free newsletter to keep up to date. Learn More
Unsubscribing is easy, and I'll keep your email address private.

Getting Started

Are you new here? Check out my review posts for a tour of the archives:

  • 2023 in Review: 50 LeetCode Tips
  • 2022 in Review: Content Bots
  • 2021 in Review: Thoughts on Solving Programming Puzzles
  • Lessons from the 2020 LeetCode Monthly Challenges
  • 2019 in Review
  • Competitive Programming Frequently Asked Questions: 2018 In Review
  • What I Learned Working On Time Tortoise in 2017
  • 2016 in Review
  • 2015 in Review
  • 2015 Summer Review

Archives

Recent Posts

  • Do Coding Bots Mean the End of Coding Interviews? December 31, 2024
  • Another Project for 2024 May 8, 2024
  • Dynamic Programming Wrap-Up May 1, 2024
  • LeetCode 91: Decode Ways April 24, 2024
  • LeetCode 70: Climbing Stairs April 17, 2024
  • LeetCode 221: Maximal Square April 10, 2024
  • Using Dynamic Programming for Maximum Product Subarray April 3, 2024
  • LeetCode 62: Unique Paths March 27, 2024
  • LeetCode 416: Partition Equal Subset Sum March 20, 2024
  • LeetCode 1143: Longest Common Subsequence March 13, 2024
Red-Green-Code
  • Home
  • About
  • Contact
  • Project 462
  • CP FAQ
  • Newsletter
Copyright © 2025 Duncan Smith