How to treat debugging and easy-to-google and very basic questions?

A lot of the questions on SO are debugging questions with little or no value for anyone else than the asker. Usually, these questions belongs to one or both of these categories:

  • The asker lacks basic knowledge about the topic
  • The asker does not know how to do basic debugging

When it comes to the first category, it’s common with comments that SO is not intended for tutoring. An example could be a question like this:

Why does this print wrong value? (C language)

double pi = 3.14;
printf("%d", pi);
Spoiler

To print a double variable, you should use "%f" instead of "%d" and if compiled with the parameter -Wall you would get the warning warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘double’

This problem could be easily solved by either reading the documentation or compiling with warnings and read them. Or to the very least, if OP included the warning in the question, the question would be far better, and other people could find it by googling that warning.

When it comes to the second category, it’s common that someone tries to implement some well known data structure or algorithm, such as linked lists or quicksort. In these cases there are TONS of example code available out there, but they want help with THEIR particular code. Often it’s obvious that they have not even looked at working code and that they have no clue how to debug. The problem is usually some simple logic error, like OBO or something.

Sometimes the asker is humble and eager to learn and says something like “I don’t expect a complete solution. Just a hint in the right direction.” And while I do appreciate that, such QA-pairs is simply not suitable for a QA site that people want to search.

Don’t get me wrong. I understand that it can be tough for beginners. My objections to these questions are these two points:

  • Usually, these questions are very unlikely to help someone else
  • Most of the times, the asker would benefit way more from being taught how they could have solved the problem on their own instead of being given the answer.

SO is basically flooded with these kind of questions. I wonder if there is a better way to handle them. A few spontaneous thoughts:

  • Separate these from the QA into a forum that is more suitable to guide the asker step by step and giving leading questions.
  • Create something similar to the documentation project that SO abandoned. It could have a quick debugging tutorial for instance.

Most of these questions have duplicates, but they are usually very tricky to find. Closing them as dups is not worth the effort.

What to you think?

4 Likes

For sites that want to try to help people with this kind of problem (not something to assume, but some are more interested in this than others), a “tutoring” or “mentoring” category could be used to separate this kind of content from other Q&A. (Questions might come in in the wrong place, but if we make it easy to move things to other categories, that’s not a big problem for most communities.)

2 Likes

I just saw a pretty good example on SO that got deleted.

#include <stdio.h>
int main() {
   int i = 1;
   for (i = 0; i = -1; i = 1) {
       printf("%d ", i);
       if (i != 1)
           break;
   }
   return 0;
}

output of this code is -1. Can someone explain to me how?

This is a perfect example of a question where the best (imo) thing to do is to just link to a page that describes in detail how a for loop works.

I think this can be a bit dangerous. If not handled in a good way, that tag can be used as an excuse for bad questions.

My proposal some time ago was to create two specific communities, one for learning the basics which explicitly is for beginners, and one community for community for professionals, where homework/beginner questions are not allowed. Users should be able to swiftly migrate questions between the communities.

This way you don’t risk user burn-out from having to view the flood of inane beginner stuff every day - users who are fed up with that can simply stay away from the beginner site. Similarly, beginners don’t need to worry about asking a stupid question.

Compare this with “English Language Learners” vs “English Language & Use” communities on SE. I think a whole lot of communities would benefit from a similar setup, particularly the technical and scientific ones.

I don’t believe in handling this with tags. SO tried that back in the days with a “homework” tag, which did more harm than good. Beginners need a different kind of help than professionals and beginners can often benefit from teaching others basics too.

1 Like

This seems to be more a policy issue rather than a technical one. We’d like to defer those to a Meta community which will be started, once we have a running software.

Furthermore, I do think, that our software plan is able to allow communities – if they want it – to develop a system to manage such questions. Keep in mind, that many communities won’t (ever) need this.

Currently, our software should support these use cases:

  • a Wiki
  • a FAQ (canonical posts) center
  • separate spaces in one community, possibly with different “entry requirements”.
  • a Question Sandbox (for getting feedback before asking on the main Q&A space)

We are also planning on revising duplicate closure to make it more effective and useful to the asker. We also decided to have more just-in-time help and guidelines for better question asking.

Are there any other measurements needed for now? (for now = at least, unless we have tried these) Can you imagine other use cases we’d absolutely need to implement for now?

Moderation note: Please keep the discussion confined to technical means rather than policy issues.

4 Likes

Not tag, category – separate section of the site, like meta, a blog, a sandbox, etc.

Categories solve that while bringing all the people interested in the topic to one site instead of splitting them (or asking some of them to track two communities). Smaller communities are at greater risk of failing; if a topic area is already specialized, further dividing it is likely to do more harm than good. SO is the exception, not the norm, on SE.

Absolutely. This is for each community to decide.

3 Likes

The thing is, you might be only be interested in advanced areas of a topic and not in helping lazy students of that topic who can’t even bother read the first chapter of a book before asking on the Internet. For programming specifically, there are already hundreds of sites directed towards beginners and learning. There is no obvious need to create yet another such site, but there is a need to have a site with trustworthy expertise.

Trying to have that while at the same time being under constant bombardment with homework crap isn’t constructive. The solution might be to ban homework questions entirely on community basis, but it might be worth considering mechanics to allow swift migration between “sister communities”. Not necessarily MVP, but such communities might eventually pop up. On SE there’s the mentioned English communities, but also the math communities with different sites for professionals and beginners.

1 Like

Then simply don’t read the category dedicated to the latter. Problem solved.

Codidact is not for programming specifically, it is for all sorts of topics. If a programming community doesn’t want a corresponding category, they are not forced to make one.

If there is one category for beginner questions and one for expert-level questions, then you simply can read the expert-level category and ignore the beginner category altogether. Nobody forces you to click the beginner tab.

4 Likes

Agreed. I sympathize with beginners, because it is tough in the beginning, but bringing them under the same roof is probably not a good idea.

Well, I guess it’s up to each community, but I don’t see the reason. If the question is good, it is good. Whether it’s a homework assignment or not does not really matter.

1 Like

A key piece to making this type of “double category” setup work is to make migration easy for high-trust-level users to do. That way the beginner who comes in via Google on a similar question (in their mind, being a beginner they don’t know the difference between the easy & hard questions) and posts a question in the “expert” category can have it easily moved without a huge ordeal and without seeming too harsh/unwelcoming to the “beginner” category where it can get answered properly by those who are willing to help.

2 Likes

Then don’t. Each community is free to create the categories that work for it. I participated in a lot of communities on SE. None of them were about programming. There is a whole world out there of communities where the pathologies of SO do not necessarily apply. And if they do, we can give communities tools to either channel it (if they want to do mentoring etc) or to say “not here” same as other sites do. The platform affords the possibility; the community decides what to do with it.

4 Likes

We tried this on SO. There was a homework tag some 6-7 years ago. It didn’t work that well since nobody asking a question used it. The tag had to be appended by disgruntled users who are therefore forced to read the post before they can edit it and add the tag.

Perhaps the communities can handle it, time will tell. I think it will be very interesting to discuss the scope of the various programming communities, there’s lots of things that could be improved compared to how SE set the scopes (and silently changed them over time).

What I guess I’m fishing for here, as far as MVP is concerned, is if question migration has been considered and how/if it will be handled by the site. It might not be something needed to be considered for MVP, but as communities grow and mature, the need might rise. I think most of us will agree that the SE migration system didn’t work well and generally caused more harm then it did good.

Moving a question to another category (for example, Q&A to Meta, or Q&A to Mentoring, or Sandbox to Q&A) is an edit, not a migration. I was just looking at that use case last night; I’m not sure whether we should treat it as a routine edit (same workflow as for other edits; category is an editable field) or if the bar for changing a post’s category should be higher than for other edits and use a separate workflow.

Migrations across sites aren’t in MVP. (First we need to have overlapping sites…) Migration on SE is broken, and I once proposed there that migrating a question should be in the hands of the author, not the community – the community can close a question as off-topic, but it’s up to the author to accept community suggestions that it’d work better on another site and move it there. This would cut down on the ping-pong when a migration is rejected and the confusion when a new user can’t find the question where it was asked, doesn’t have an account on the other site so doesn’t get notifications, etc. I have ideas for a better workflow for this, but I’d like to defer cross-site migrations.

3 Likes

Given that SO does not have categories, there is no way you could have tried it.

1 Like

The difficulty of moving to another category should definitively depend on the category. A newcomer should not be able to move a question to the canonical category, for example, but would need to be able to move a question from the sandbox to the main site.

Also, moving negatively scored questions from the sandbox to the main site should not be possible, but moving negatively scored questions from the main site to the sandbox should be.

1 Like

Correct. The problem is that the closest equivalent on SO is tags. And tags have practical limits. They just don’t work well for “categories” as we envision them. Some of the features they have that could be useful, like Tag Wikis, are underused for, I believe, technical reasons (not presented in an obvious way and therefore not seen and not used).

1 Like

Definitely. We need to be able to set bars for categories. And if a category doesn’t have questions (for example, a wiki or blog), you can’t move questions to it anyway. So there’ll need to be a check for “can this go there?” anyway, to check post type, and we can hook in other requirements there.

These are matters of site policy. A question might have been edited into good shape but the votes haven’t been removed, for example.

3 Likes

Not entirely. The site policy defines the rules, but the software needs to support them. That is, the software needs to allow setting up score requirements on moving questions between categories, with different requirements per direction.

I think when moved to the sandbox, the question should lose its negative votes. Again, this is a site policy that would need support from the software. That is, to support this possible site policy, there would need to be a setting whether moving to a certain category causes the post lose no votes, upvotes, downvotes or all votes.

3 Likes

Please don’t group debugging, easy-to-google and very basic questions. Those are 3 distinct categories.

Very basic questions are generally fine. We all sucked at programming at one point, and plenty of other people could very well have the same issue. An exception here is when the asker lacks the underlying knowledge required to understand a direct answer and reading a few chapters in a beginners book is the best way to understand the issue - that would not be a good question. Also, when they don’t even have a basic grasp of the syntax of the language, one could perhaps answer their immediate question, but again they should just read a few chapters in a book, because one question at a time is not a good way to learn that.

Easy-to-google questions are not ideal, but as long as the question isn’t already duplicate on the site, I’d say it’s fine. It’s not realistic to try to not have only things you can’t find elsewhere online. Rather the goal should be to put all that knowledge, and hopefully a whole lot more, in one well-organised high-quality place. Although questions that are particularly easy to Google are also generally quite low quality, but then the issue is low quality, which should be dealt with in the appropriate way (depending on the situation).

Debugging questions are generally not fine, but there can be exceptions. The problem with these questions is that it’s often roughly impossible for someone with the same problem to find it (which is almost the exact opposite problem that one or both of the above have). If this is not the case, then it can make for a good, reference-worthy question.

“Why don’t I see the decimal places when trying to print a double?” with 2 lines of code is a fine question that could be helpful to many others, even if it’s a “dumb” question where the solution could be figured out in many ways.

“Why does my code output -1?”, or something with 50 lines of code (not a hard limit), is not fine. When there are a whole bunch of things happening in the code, or the exhibited behaviour isn’t a direct cause, and most often seen as a result of, the actual problem, no-one will be able to find that question.

It’s worth noting that a number of these questions could go from the latter to the former through an edit. If someone asks about a specific error, but posted too much code, removing that code and turning it into a canonical post addressing possible causes of the error could make for a great question. On SO these edits would be considered too extreme for anyone but the author to perform, but it’s up to us to decide whether we want to stick to this. I personally prefer allowing more extreme (but reasonable) edits, since the alternative is to potentially lose out on some really great questions, and possibly struggle more to get rid of the bad questions. Of course this doesn’t mean every such question must be edited, it’s just giving the option of doing so.


The first two are applicable to just about every site.

The last one, while specific to a programming concept, is also actually quite applicable to many sites. On a workplace site, for example, someone could say way too much about their exact situation in a way that’s quite similar to posting way too much code (although it can be much easier to edit it). Or someone’s ultimate question could be overly vague, not helpful to others and in need of an edit (or it’s just unsalvageable).

3 Likes