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.

With the halfway point of 2018 approaching, it’s time to focus on the website that will host the content for the CPFAQ. I decided a few months ago that I would use MediaWiki software to host the FAQ. The advantage of a wiki is that it will allow me to write to write encyclopedia-style pages to supplement the main FAQ pages. This week, I have been thinking about how I want to organize the wiki, and I’ve created a few pages to get things started.

The Competitive Programming Wiki

I’ll be creating the CPFAQ inside a CP Wiki, which is hosted alongside my blog at the redgreencode.com domain. CPWiki will have three types of pages:

Canonical question pages

These pages are the FAQ content. Each page name is a canonical question title. The page content includes, at a minimum, links to relevant Quora questions. I think that will make the FAQ immediately useful to people who are looking for answers to each question. Eventually, I plan to expand each FAQ page to include an answer that summarizes the information from Quora and other sources.

Here’s a popular canonical question: How did (person) become a top competitive programmer? The (person) string in the question title is an example of the format I’ll use for some types of canonical questions. In this case, questions of this type are asked about many different competitive programmers, but they all have the same main idea: Tell me what a specific person did to achieve their competitive programming rank.

Encyclopedic pages

Along with FAQ pages, I’ll also be creating encyclopedic pages on the CP Wiki. These pages are like a specialized Wikipedia, written from a competitive programming perspective. In cases where Wikipedia has good coverage of a topic (e.g., Topcoder), the page doesn’t need to duplicate existing content. It can just include a summary, and links to other resources, including Wikipedia and Quora. But competitive programming topics sometimes run into problems with the Wikipedia notability policy. In that case, the CP Wiki is a good place for a full article.

Wiki utility pages

The MediaWiki software creates some pages automatically, and some of these utility pages are useful for creating a FAQ structure. For example, adding [[Category:FAQs about people]] to the markup for a page causes it to show up on the corresponding category page. This is one way to present a list of frequently asked questions without any extra work besides creating and tagging the question pages. Categories can be nested, so I also have a top-level Frequently Asked Questions category page that points to the subcategories.


Wikipedia editors use the concept of notability to determine if a topic should have its own article. There are many nuances to notability policy, but its main requirement is that there is enough information in reliable and independent sources to write a complete article about the topic. The policy isn’t perfect, but it has served the Wikipedia community well over the years as a way to maintain the quality of the encyclopedia.

For CPWiki, I’ll be approaching notability a bit differently. If a subject is on-topic for CP Wiki, then it will almost always be eligible for its own article. On-topic areas include competitive programming, coding interviews, and techniques for learning subjects that are required for success in those areas. Although I won’t use Wikipedia notability criteria to exclude articles, I may use them to prioritize articles. For example, I’ll write about a major online judge before I write about someone’s online judge hobby project (and I may never get around to the latter, unless it’s especially interesting).

Another policy difference between Wikipedia and CPWiki is what is considered a reliable source. Wikipedia does not allow user-generated content, like Quora or even Wikipedia itself, to be used as a reference. Again, this is a good policy for Wikipedia, with its open editing policy and high profile on the Web. But one of the main goals of CPFAQ is to highlight the best content from Quora. With that in mind, I’ll be evaluating Quora content based on what I know about the writers who contribute to Competitive Programming and related topics.

(Image credit: Anthere)