What topics can I ask about here?

Programmers Stack Exchange is a Q&A site for professionals and students in software development and related fields who are interested in getting expert answers on conceptual questions about software development.

If you have a question about...

  • software requirements
  • software architecture and design
  • algorithm and data structure concepts
  • quality assurance and testing
  • development methodologies and processes
  • software configuration management
  • software engineering management
  • software licensing

and it is not about...

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

Subjective questions are allowed, but subjective does not mean "anything goes". Please keep it professional. If this is a question you'd be uncomfortable discussing with your colleagues in a work environment, it's probably not appropriate here, either. For more information about subjective questions, please see the Help Center page about what not to ask as well as the Good Subjective, Bad Subjective and Real Questions Have Answers blog posts for details and examples.

Please make sure that your question is not too broad or strongly rooted in opinions. We should be able to answer your questions in the equivalent of a few pages of text and graphics and provide references to support claims. If you have questions that warrant an extended discussion, feel free to come to chat.

Before asking, look around to see if your question has been asked. If you see similar questions, be sure to check out their answers and differentiate your question from other, related questions. It’s also OK to ask and answer your own question.

If your question is not specifically on-topic for Programmers Stack Exchange, it may be on topic for another Stack Exchange site. If no site currently exists that will accept your question, you may commit to or propose a new side at Area51, the place where new Stack Exchange communities are created.

For more details, please see our curated FAQ on Meta Programmers Stack Exchange.