There seems to be more than a few computer science/programming Stack Exchange networks (is that the correct term?). Stack Overflow, being the first, has by far the most users, questions, and answers.

What is the reasoning for creating the others, and are there clear guidelines for which kinds of questions should be posted? I can see a large amount of potential overflow, many cases of people not getting a good answer to their question, because the person who has the answer isn't browsing that particular network at the moment.

I understand that they were probably created for organizational purposes, but wouldn't it almost make more sense to just have them as categories under Stack Overflow, keep them separated but still connected, instead of making people have to create multiple 'account's, one for each network?

I am sure there was a very good reason to break them up, but as someone that is new to SE, it can be somewhat intimidating to decide which one to post in to ensure you get a good answer. For example, if I am a computer science student, my first instinct might to be to post in the computer science network, until I see that it literally has 1% of the users as the Stack Overflow network, which still seems to be for programming/computer science related questions.

So my second instinct would then to be to post it into the Stack Overflow site on the basis that I have a significantly higher chance of my question being seen and getting a good answer. Then I notice that there is also a 'programmers' network, and I don't even begin to know where that fits in. I, and I am assuming most people, will probably just post on Stack Overflow to be safe.

My question is, other than the short little description blurb of each one, is there a clear cut set of guidelines which what each network is intended for, what kinds of questions should go to each one, and is anything being done to encourage people to post in these newer, smaller (more specialized?) networks as opposed to just posting in big daddy Stack Overflow?

Now again, this is for computer science/programming/"why isn't this code doing what I want?" related questions, I am not saying that if I had a question about Linux or WordPress or something I would have the same confusion.

Return to FAQ index

  • 85
    I'm not new to SE, and I still don't understand the overlap of topics across multiple sites, so don't feel too bad! – Cody Gray Apr 18 '12 at 5:34
  • I agree, there are some that feel almost too close to each other. Even SuperUser and StackOverflow can occasionally have questions asked that could fall into either. – Daniel James Mar 22 '17 at 21:48
up vote 289 down vote accepted

Before you choose a site…

First, make sure you're asking a good question. Some questions are off-topic everywhere, and there's no guarantee that any site exists that will take your question.

Good questions:

  • Are clear and understandable.
  • Have a specific problem statement, tailored to the site you intend to post to.
  • Don't ask for lists of things.
  • Don't ask for product or service recommendations. (except for Software Recommendations and Hardware Recommendations)
  • Don't require extended discussions or lengthy explanations.
  • Don't ask "which is better" without explaining what "better" specifically means to you, in a way that isn't a tautology ("best practice" is not any better than "better.")

Stack Overflow

We feel the best Stack Overflow questions have a bit of source code in them, but if your question generally covers…

  • a specific programming problem, or
  • a software algorithm, or
  • software tools commonly used by programmers; and is
  • a practical, answerable problem that is unique to software development

…then you’re in the right place to ask your question!

Questions seeking debugging help ("why isn't this code working?") must include the desired behavior, a specific problem or error and the shortest code necessary to reproduce it in the question itself. See: How to create a Minimal, Complete, and Verifiable example

Software Engineering

If your question is directly related to the Systems Development Life Cycle (except for troubleshooting, writing or explaining specific code), you can ask it on Software Engineering

If you have a question about…

  • software development methods and practices
  • requirements, architecture, and design
  • quality assurance and testing
  • configuration management, build, release, and deployment

…then you're probably in the right place to ask your question.

Database Administrators

Database administration, querying, modelling, including programming in built in server side languages (think: stored procedures).

Information Security

Everything that has to do with Information Security excluding the deeper aspects of cryptography and setting up your home antivirus.


The deeper aspects of cryptography ;)

Code Review

On Code Review, you share working code from a project that you own or maintain for peer review. The right time for a code review is after you are satisfied you have done your best, that the code is ready for publication/release, that all the features are in, and all the tests pass. It is the right place if you want a critique of your code that addresses issues such as:

  • security - "Have I covered the bases?"
  • efficiency - "It does the job, but can it go faster or is there a better way?"
  • maintainability - "It works now, but will I run in to problems down the road?"
  • edge cases - "Are there situations in which the code will break?"

If your code is not yet producing the output you require then the code is not ready for review. If you need help getting the code to a completed state and you have specific questions about how to do that, then Stack Overflow is the right place to ask.

Questions about the actual process of code reviews are off-topic and better suited for Software Engineering.

Computer Science

For questions about computer science, as in the academic discipline. As a rule of thumb, if your question depends on real-life languages/code/hardware/..., ask on Stack Overflow; if your question calls for abstract/mathematical models and reasoning, ask on Computer Science. Algorithms expressed in pseudocode straddle the border.

Theoretical Computer Science

For questions about theoretical computer science at research level. If you aren't at least a graduate student, see Computer Science.

Computer Science Educators

For questions about education within the context of computer science. The typical site user teaches computer science. Self-learning questions about designing a course of study or an approach to a topic are also possible here, but this site is not meant to teach students about CS directly.

Software Quality Assurance and Testing

SQA focuses on software testing questions, which run the gamut from technical queries about implementation of your automated tests, to organisational questions like planning training for your test team, or even how you go about persuading your manager to actually hire some professional testers instead of just crossing his/her fingers and hoping. It's aimed at professional software testers, and other related roles (programmers, business analysts) who perform software testing as part of their profession.

Programming Puzzles & Code Golf

That's easy, just browse through their challenges and you'll get the idea. Not for general programming questions, but for challenges for people to answer (in code of course). Challenges must have an objective winning criterion, generally code-golf, and clear specifications.


Many questions about Geographic Information Systems involve programming using libraries such as ArcPy, PyQGIS, ArcGIS API for JavaScript, OpenLayers, Leaflet, ArcObjects, etc and should be asked at the GIS Stack Exchange. If they are about the underlying programming language such as Python, JavaScript, C#, etc then they should be researched at Stack Overflow instead.

Web Applications

Web Applications is a question and answer site for power users of web applications. With your help, we're working together to build a library of detailed answers to every question about using web applications including:

  • bookmarklets, macros and scripts to automate some tasks
  • user styles to change the way a web application page looks

All of the above should be to be applied on a specific web application of your choice.

NOTE: Questions about web application design/deployment/hosting are offtopic.

Further reading


Blog posts

Meta questions

  • 7
    I feel like this answer (or a variation) should be included in most flagged and closed questions across the various CS-related Stack Exchange sites due to being off-topic/out of scope. I often ask myself which one of a small handful of ones to use, and usually end up at Stack Overflow after reading the guidelines for asking questions at each one's help-center. That process can be tedious, though. I'd love to have a cheat-sheet handy, if you will. It would help not only the newbies, but members that tend to develop the full stack, and find themselves all over the place, CS-wise. – kayleeFrye_onDeck Dec 16 '15 at 23:12
  • 4
    Shouldn't all sites for specific programming languages be mentioned here? I mean, TeX, Blender, ... – yo' Jan 6 '16 at 20:20
  • The exchanges above are more focused on concepts, with SO being a definite exception to that. Putting all the language exchanges here seems kind of wasteful, but only IMO. – kayleeFrye_onDeck Feb 19 '16 at 4:25
  • 4
    There is an omission of .What is the difference between and ?? – user15964 Jul 21 '16 at 7:01
  • 4
    Great answer! Could you please add some guidelines for posting at CrossValidated, Artificial Intelligence, Data Science and Computational Science? – Dennis Golomazov Oct 18 '17 at 23:49
  • I've landed here through a question that was marked as duplicate to this. I'm suggesting the same as with @kayleeFrye_onDeck and others. Until then, I'll mark this as favorite link for quick access. – Alex Sarafian Oct 19 '17 at 6:32
  • Where is – Adelin May 17 at 7:17

You must log in to answer this question.

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