Well, we try to concentrate on programming and related Computer Science-related discussions, but sometimes discussions diverge into something different and we're OK with it. Some things that are on-topic:
- Getting help with specific programming languages technologies, including those that have dedicated channels on Freenode and/or elsewhere, including but not limited to Java, C#/.NET, PHP, Visual Basic (Classic, .NET, Visual Basic for Applications, or whatever), C++, C, Python, Perl, Ruby, JavaScript or whatever. We do not intend to imply we endorse using any of these technologies (and different members of the channels may have different opinions of them) but we still support them.
- Help with someone's programming or CS homework is also on-topic on ##programming . It is considered unethical to write your homework for you, but you can get different kinds of help.
The reason we agree to discuss such things as discussing such things help the channel grow, make the content of the channel more lively and interesting, and because the traffic generated by them is still not overwhelming enough for us to consider a different policy. (Also see what “Joel on Software” said about Internet forums becoming too fragmented.).
Some discussions that are explicitly off-topic:
- Discussions about global/national politics — these tend to deteriorate very quickly, and many people find them annoying. If you still wish to discuss them, head over to #politics.
- Discussions about religion for similar reasons.
- Personal insults, Ad hominem attacks, sexual/racial/political harassment, etc.
- Illegal activity (as forbidden by Freenode policy).
None of these things will get you banned immediately, but you will be warned and told to stop, and devoiced only if you persist.