Proposal: Atomic Coding
There is no question that Stack Overflow gets many "questions" that are some variation on "here, do my homework" or "debug my code" when the problem could be greatly alleviated by having solid programming resources to pre-emptively eliminate many "gotchas" for novice programmers.
I myself come from Stack Overflow, and as an avid reader of the
C++ tag and as a programmer in college, I know that many students and amateurs on the web alike are frequently lost without proper direction or resources. Atomic Coding would give them this direction while breaking the learning process into atomic-sized Q&A.
Ideally, the each topic would be atomic and be simple enough to fit into the usual space for a Q&A format and compact enough to be informative, yet still highly digestible to the appropriate audience sans one "level of understanding"
Due to the intended purpose of Atomic Coding, I would suggest an adjusted ideal format for the AC question lifetime:
- Stage 1: Evidence: "Questions" would take a form closer to "Subjects" or topics. They would require evidence, such as a link to an external thread or website, that the topic is referenced by somebody than just the asker and show that it deserves to be answered in a definitive way.
- Stage 2: Formation: The subject would then be open to suggestions or answers to meet the requirements of the topic. The question's comments would remain as a forum for suggesting crucial topics that should make it into the article. This crucial phase of brainstorming would be central to the creation process and could result in splitting the initial topic into smaller ones for atomicity if people find the question too broad.
- Stage 3: Creation: Answers would then be given and would then be encouraged to be edited to be condensed into a minimal format, becoming extremely digestible and easy to read. A style guide would be present; and answers would probably include the additional composition of other resources, such as short code snippets or external example projects for further reading. "Lean and mean" would be the motto for the website.
- Stage 4: Finalization: The subject would be finalized, and then the topic would be protected. Future revisions or openings of the topic could be justified by updates to the tools used in the topic or new concepts that deserve a mentioning in the question.
- Activity surrounding the use of C++ smart pointers come up. People are unaware of the best ways to use them. Evidence is gathered, and then a subject is created. The name is "C++ Smart Pointers".
- The subject is subject to many different answers for the topic. Some comment to say to cover the difference between unique pointers and shared pointers. Some say to talk about
auto_ptrwas deprecated in the newer standards, that answer is voted down. The community, after some thought, decides to split "C++ Smart Pointers" into several questions, one of which is "How might I use unique_ptr in C++?" A topic list is aggregated from the community for the question that each answer must cover.
- The community begins pulling examples of paradigms and short code snippets to compose the article. A small list of links to reference and examples are created. The subject is worked on for months, and the topic list is continuously cut down until answers to the question consist of the most minimal and digestible language.
- After much work and countless revisions, the subject is finalized and saved.
- A revision to
unique_ptris announced in a future C++ standard. The subject is reopened to revision due to the changes.