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.
- 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 here and here)
- 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.")
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
The main focus is whiteboard questions, problems that you face while in front of your whiteboard designing your project. Everything that can be considered part of the SDLC, except for "fix my code," "write my code" and "how to use my development tools" questions.
Picture Programmers like a small conference room with a whiteboard. No computer, no books, no papers. You write your question on the whiteboard and experts walk by. Someone sees one that they can answer, they stop in and help.
Also, questions on freelancing and business concerns that require the unique expertise of software developers. We use this lovely diagram to help people understand if their questions belong on Programmers:
If your questions fall in the "all careers" circle, you should ask them on The Workplace.
Programmers welcomes some subjective questions, but they should still be suitable for the Q&A format. No polls, no lists, no product recommendations, no discussions.
Database administration, querying, modelling, including programming in built in server side languages (think: stored procedures).
Everything that has to do with IT Security excluding the deeper aspects of cryptography and setting up your home antivirus.
The deeper aspects of cryptography ;)
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 Programmers.
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.
For questions about theoretical computer science at research level. If you aren't at least a graduate student, see Computer Science.
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.
That's easy, just browse through their questions and you'll get the idea. The fun (?) side of software development.
- Meta questions