I usually ask learning-related questions on Stack Exchange sites and unintentionally get myself voted down with bad questions.

When checking my questions like a year or so later, I see that the reason I asked "stupid" questions was the lack of knowledge, but as a student I do not have as much as professionals.

One time, I asked here for instance about two's complement numbers without me even aware I did that. I just found it in a programming example. I was attacked for "not having the basics", while I was not even there in the curriculum.

How can I ask a question as an undergraduate student without making myself less reputable?

  • 6
    related: meta.stackoverflow.com/questions/261592/… – rene Nov 30 '19 at 16:59
  • 2
    I assume you mean beyond what is stated in the Help Centers' How to Ask page? – rene Nov 30 '19 at 17:04
  • @rene See, I feel it is more applicable to experienced people on a certain topic. It is a bit hard to be good if I do not even know where do I wrong. But the first link you provided is something relatable to this. – Balázs Börcsök Nov 30 '19 at 17:08
  • 1
    So you think the help center articles are not meant for students? What needs to be added then? – rene Nov 30 '19 at 17:21
  • @rene I am discovering them right now. Thanks to the help. – Balázs Börcsök Nov 30 '19 at 17:24
  • 3
    It would be interesting to know why you didn't visit them earlier. I mean there is a ton of info there exactly meant to prevent experiences like you had. We obviously fail to bring them to you in a correct manner and in time. – rene Nov 30 '19 at 17:26
  • When I enter a new site there is no energy barrier to get to these kind of posts. The kind of discussions like meta.stackoverflow.com/questions/261592/… gives actually a very good insight into what intriguied me. – Balázs Börcsök Nov 30 '19 at 17:29
  • One of the biggest problems I see with student questions is that the questions simply do not include enough information or show all the work and research the student has done. Yes, there are some where the student wants to be fed the answer, but some, after much back and forth in comments, actually include the required work. Many people do not have the patience to elicit what the student has done to try to solve the problem, and no demonstrated effort on the student's part will get the question voted down and/or closed. – Ron Maupin Nov 30 '19 at 17:29
  • 1
    I can see what is your pint @RonMaupin. Actually, imagine this: most fellow students do not even bother to research and they do come with questions to me. It can be frustrating. I guess this is something like that, but on a next level. One time, I asked here for instance about two's complement numbers without me even aware I did that. I just found it in a programming example. I was attacked for "not having the basics", while I was not even there in the curriculum. – Balázs Börcsök Nov 30 '19 at 17:33
  • 1
    Also, for some sites, like Network Engineering, education, certification, or homework questions are off-topic. We like to help people understand the concepts and how to arrive at the correct answers, but we will not give the answer to such a question and close it as off-topic, but we will give you information about the concepts so that you can arrive at the correct answer on your own. Some people really do not see the difference, and given an example of how to arrive at the answer still insist on being given the specific answer. – Ron Maupin Nov 30 '19 at 17:52
  • 1
    There are no stupid questions, especially on a site, that is dedicated to answer all (even very basic) questions. There are only badly phrased, inconcrete or incomplete questions, that are a problem. But this can be fixed by investing the neccessary time to write a good question. This can even be fixed afterwards by editing a bad question, to make it a good one. – allo Nov 30 '19 at 18:13
  • We do need (and want) the stupid/basic questions, but by their very nature they have most likely been asked before. Thus a duplicate exists, and it can be consumed instead of posting a (new) question. Finding that duplicate can very hard in some cases, though. – P.Mort. - forgot Clay Shirky_q Dec 3 '19 at 2:52

I started out on Stack Exchange as a high schooler, and am currently an undergraduate in college, so I do sympathize with your situation. Looking at some of my earliest questions, they seem . . . bad. At least by my current standards. Bad enough that I almost want to delete some if I could, to save myself the embarrassment.

So, how did things get less terrible? I've learned a couple keys to writing a question, as a student:

  • Be clear about what you know - and what you don't know. This is going to help answerers write at the proper level for you - and it's actually a big problem in some cases. Make it clear at what level you've been able to attack the problem, and what knowledge-based roadblocks might be troubling you.
  • Put a good deal of effort into the question. There are, on some sites, a good deal of folks - often students - who dump a question that they urgently need an answer to but aren't willing to put in any work for. Those folks are typically not well-liked; after all, nobody wants to help out someone who won't help themselves. Putting effort into solving the problem is always a must. (Of course, by going to Meta and asking about how to ask a good question, you've already set yourself apart from those other folks. . . So show that effort in your questions, too.)
  • Don't be embarrassed about your skill level. We've all been there - none of us was born knowing how to solve systems of linear equations, for example. The best answerers will keep this in mind, and I find that most experienced folks tend to do so. There's nothing wrong with not knowing something (though see the other bullet points).
  • Be open to (constructive) criticism and advice. I think many of us are here to learn - and that learning might include learning about how to phrase questions better, how to format Markdown properly, what the site's scope is, etc. - stuff beyond the actual subject matter itself. People are going to point it out to you, and while a few comments might be overly abrasive, folks are, for the most part, trying to help you get better.

We've all been in shoes like yours at some point in our lives - some of us recently, some less recently. Keep an open mind and an optimistic attitude, and things do tend to turn out for the best.

  • 2
    Not being embarassed about your skill level is a really big point that I completely forgot. And to be fair, it's sometimes difficult if you have like 10 years or more of experience with a topic how somebody would feel who just started learning about that yesterday. – MechMK1 Nov 30 '19 at 19:33

Learning how to ask a good question is an acquired skill.

First of all, you should realize that most people don't start out asking perfectly-framed questions. Many people ask badly-scoped questions, forget necessary context and sometimes don't really get across what they want to know. This is normal. Falling down is part of learning how to walk.

In the spirit of helping people improve their questions, I'll share my personal experience with what I consider particularly good about questions.

A question needs a clear answer

Nothing is more frustrating than reading through a question three times and still not understanding what OP actually wants to know. In order to avoid this, I usually put a clearly defined question both in the title and on the bottom of my question.

Provide relevant context

Sometimes questions turn out to be an XY-problem, so it's always good to explain why you are asking something, and why you did the things that you did. Of course, if your problem is "Why does this code result in this exception?", then usually it's irrelevant to mention what the program you are writing is supposed to do.

In that example, however, it's vital to include a Minimal, Verifiable, Complete Example. As the name suggests, this example code should be as small as possible, clearly demonstrate the problem in question and be ready to be copy/pasted and run.

Being able to tell what context is relevant and what context isn't is a skill that needs honing over time, but it's a good thing for a student to be at least aware of.

Make sure the question is in-scope of the site

I'm usually on Information Security, where one of the rules is that questions aiming to break the security of a specific system, without demonstrating a deep understanding of the techniques involved and identifying a specific problem, are off-topic. Simply put: We are not hackers for hire.

Other sites have similar rules, so it's best to join the relevant meta for that site and ask if a specific question is on-topic or not. Usually, the people there will either say yes, or they will point out alternate ways to get to that information.

Use Markdown formatting (correctly)!

A question without any kind of formatting, even if it is just basic linebreaks, will not get any answer from me. Try this by editing my answer and removing all formatting. It looks unreadable, even though the information has not changed.

Likewise, excesive formatting actually hinders readability and only creates


work for the editors who have to remove the formatting later.

Expect some barrier to entry

This is very important advice. While the community at large tries its best to be as welcoming as possible, sometimes actions are misunderstood or interpreted as hostility. Putting a question on hold, editing it, asking for clarification, etc...

All of these actions aim to aid Stack Exchange as a whole, and are not meant as an attack to the person. If your new question is downvoted, stick around and ask how to improve it. As I said above, it's a vital part of learning.

You can also ask on the relevant meta-sites or the chat room of that site if there are problems with that question.

As a foot-note, I would like to mention that showing effort in asking better questions is a very good thing. Putting in the time and effort to ask better questions will inevitably result in people wanting to put in the time and effort to answer questions.


One of the reasons for closing questions is:

This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.

there was also previously:

This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center.

In general, I think these sentiments are why your questions are not having much success on Stack Overflow.

Try to avoid writing questions that are written specifically for you to get an immediate answer for a specific problem in your code.

Instead try to write generic questions that are able to answer your problem, yes, but that are also designed to appear in search results for an entire class of similar problems.

People will be far more excited to upvote and and answer questions that they think will also help others in the future. That's one of the primary motivators for this site and for the community here.

Much of this revolves around editing your questions and posted code to be as generic as possible, but also targeted at a specific problem:

  • Quote error messages for SEO purposes.
  • State the question in (possibly multiple) ways that you think people will search for that same problem
  • Clean up code and logs to remove any personal or unimportant information.
  • Edit and post only essential code blocks:
    • Perhaps only post a single for loop block, rather than the surrounding function and main() declaration or the entire file.
    • Perhaps only post the function declaration, rather than the implementation, if that is all that is needed.

You should also edit your questions as new information becomes available. Return to your questions to update them to the latest and improve formatting, even years later.

One time, I asked here for instance about two's complement numbers without me even aware I did that. I just found it in a programming example. I was attacked for "not having the basics", while I was not even there in the curriculum.

You should not have been attacked for not knowing the basics (please flag those messages; they will be deleted).

But once you've been alerted to the proper term for something, or additional information, edit your post to include the new facts.

If the new information causes your question to be closed as a duplicate, view that as a net win. You can now use those well-answered questions to solve your root problem.

Not the answer you're looking for? Browse other questions tagged .