CPFAQ: Merging Questions


I’m working on a project this year to build a competitive programming FAQ. This is one in a series of articles describing the research, writing, and tool creation process. To read the whole series, see my CPFAQ category page.

If a CPFAQ page has a canonical title and contains a list of Quora questions that all relate to the title, why not just merge all the Quora questions into one canonical Quora question? Good question.

Question Merging vs. Quora Content Review

Last week, I mentioned the canonical question Will competitive programming success help me get a programming job?, and I associated it with five similar Quora questions. After I published last week’s article, I found another Quora question that someone asked a few days earlier: Is it important to participate in competitive programming to get a high-paying job? Since I had a list of similar questions available, I tried merging the new question into one of them: What is the importance of problem solving contests for landing an interview and a job at Google, Microsoft, Amazon, etc.? Less than an hour later, the merge was reverted by Quora Content Review (QCR), a Quora system account.

Like most changes to Quora content, QCR changes can be reverted by any user. I could have re-merged the question to see if it stuck the second time. Maybe the QCR algorithm would take the hint. But would it be worth the effort? Quora content is messy, and it’s hard to get motivated to clean it up when the system is working against you. So that’s why it’s convenient to have my own FAQ pages, where I can group similar questions together without fighting any bots.

What Should Be Merged?

Quora’s policy on merging questions says two questions should be merged “when they ask the same question or substantially identical questions.” It also allows two questions that “are very similar (but not identical)” to be merged, as long as the surviving question title can be edited in such a way that all the merged answers still make sense.

Although phrases like “substantially identical” and “very similar” are inevitable when explaining question merge policy, they are too vague to settle whether any particular pair of questions should be merged. The real merge policy is defined by which actual questions get merged and stay merged. That policy results from many decisions by Quora bots, Quora’s human employees, and the Quora community.

A Merge Example

The Competitive Programming FAQ has its own “merge policy” which, if written, would sound similar to the Quora merge policy. But Quora questions in the CPFAQ, rather than being merged, are instead listed under a canonical question title. There’s a simple reason for this: I don’t have control over which question merges Quora allows, but I can list similar questions on the same FAQ page.

Since merge rules are better defined by example than by policy, let’s look at the question I mentioned above: Will competitive programming success help me get a programming job? Here’s why each of the six questions that appears on that page fits under that canonical title:

Like most of the six questions, this one mentions specific online judge names and specific company names. But make the wording more general, and this question title resembles the canonical title. Something like: Can joining a competitive programming site and getting a good rank increase my chance of getting a job at a top software company?

The wording of this question focuses on hiring strategy. A more general version might ask: Do top software companies hire on the basis of competitive programming ratings? But the intent of the question is the same: does competitive programming success lead to a job.

This question is more specific than others in the list. A literal interpretation would assume the question author is asking if someone can get a job at Google just based on their HackerRank rank. One of the Quora answer authors even uses that literal interpretation, answering simply, “Nope, you need to clear interviews.”

Based on my experience on Quora, I don’t read too much into the specific wording of questions. So I would interpret this question as something like: Will having a good rank on a competitive programming site help me get a job at a top software company?

This question focuses on contests, but those are just one particular way to talk about competitive programming. The question could be written as: What role does competitive programming experience play in getting an interview and a job at a top software company?

This one mentions a specific contest, rather than a specific online judge, but it’s nevertheless a question about the relationship between participating in the contest and getting the job.

And here’s the most recent question, asked earlier this month. It includes no contest names, online judge names, or company names. And it specifies a “high-paying” job. Are those differences enough to justify a separate question? I doubt the answer authors will care about the specifics. The current answer, written by a Top Writer, is the type of generic comment found in many competitive programming answers.

Merge Philosophy

There’s room for debate about whether any specific pair of similar questions should be merged. People have different “merge philosophies.” Many question authors believe they should be able to ask very personal questions, and are “disappointed” when their questions get merged. I’m near the other side of the merge philosophy spectrum. I think most Quora question titles are too specific. Based on my canonical question statistics, I would use merges to cut the number of competitive programming questions on Quora in half. And I’m starting with the most popular questions, which people are more likely to have already merged. I might prefer merging even more once I get into lower-ranked questions.

But although I do sometimes merge Quora questions, I’ll mainly express my merge philosophy through FAQ pages. I think they will help people find key facts and opinions about the topic, even when answers are scattered across many similar questions.

(Image credit: Hikosaemon)