Like it or not, IRC is still one of the predominant chat protocols in the computer industry. Hundreds of others have come and gone, but none have ever truly replaced it. It lacks the bells, whistles, and gongs of many other protocols, but that only seems to add to its value. It's decentralized, virtually bug free, and it works with nearly everything, on any box with an internet connection.
That's why this will always be true...
I first signed onto IRC in my youth, forming many friendships and even starting a prank war (which I won). I moved away from it for several years, rediscovering it via the
#python chatroom in high school. I make no secret of the fact that this was the first professional programming community I was ever a part of, and I still consider room regulars like
habnabit_ to be among my early influences and mentors.
Used correctly, IRC is an irreplaceable piece of your professional network, providing tomes of useful advice and many helpful contacts. But, like any "ancient" communication protocol, IRC has its own culture and its own rules. If you want to survive and thrive on IRC, you have to know how the community operates.
NOTE: Although these rules and concepts trace back to IRC, you can easily port most of them to any chat protocol.
In most cases, these are considered the unwritten rules of IRC. Many people will expect you to follow them yourself. In many rooms, serious offenses may not even be followed by warnings; you might just be kickbanned.
However, because IRC is decentralized and largely unpoliced, not all networks, rooms, or communities follow these rules. If you find yourself in one of these dark alleys, you'll need to decide for yourself whether its worth staying or going. In general, it's rarely worth staying in rooms where netiquette is ignored - it usually turns into a contentious, soul-draining experience where cliques and double-standards abound.
In the end, you are responsible for yourself. Wherever you are, and however much the rules seem to be ignored, your best bet is to follow netiquette.
When you first sign onto a community, select and register one or more nicknames. You are unlikely to find yourself trusted or granted access as an "unregistered" user. Instructions for registering a nickname on Freenode IRC can be found here. Other networks may have their own instructions, but it usually follows the same process.
Once you've registered a nickname, be sure you sign in every time you log onto IRC. Many IRC clients support SASL, which automatically does this sign-on step for you.
When you first join a room, be sure to read the topic, which is displayed when you first join (and probably also at the top of your IRC client). That will give you an idea of what the basic rules are.
Always follow any room rules. If you don't like the rules, we don't care. You're expected to read the posted rules (including links to full rules and community guidelines), and to comply. Don't expect warnings if you violate them.
Stay on topic. If the room is for Python support, then keep the conversation on Python support. Many communities have a dedicated "offtopic" room for all other conversations.
Respect the OPs (room moderators). They often go undercover, but if one "ops up" (displays their OP status), you should listen to what they have to say! Most OPs will warn once, then kick, then kick-ban.
If you aren't comfortable with how the room is being moderated, check the community rules to see if there is a formal place to file a dispute. If not, or if you don't feel there's a point filing a formal dispute, just leave the community. Not every room is for everyone.
The most important thing to remember about IRC is that it is an international platform. You will encounter people from all countries, cultures, and walks of life. You should be respectful and culturally sensitive at all times. This isn’t really a matter of “political correctness”; you should simply communicate in ways that are less likely to be misinterpreted.
On that note, if you do insult someone accidentally, just apologize and take notice of how you could have communicated better. Intercultural communication is an acquired skill, so most people will gently correct you. (Of course, if someone is habitually insulted by everyone and everything, there’s nothing you can do about that.)
A good, quick check on your choice of phrase is to ask “does this assume something about the other person?” Keep phrasing generic until you know more about the person.
I have personally chatted with amazing people from all over the world - France, Spain, Germany, Scotland, Isle of Man, Mexico, Canada, Cyprus, Russia...and the list goes on! Most people enjoy talking about their country and culture, so there’s never any harm in asking “where are you from?” (If they don’t want to tell you, just let it go.)
Above all, show everyone the same respect you want others to treat you with.
One of the main uses of IRC is for answering questions. These are some absolutely critical rules you should follow for that:
When asking your question, include all relevant software version/system information, code, and error messages. Use a paste tool for lots of text. (see Flooding and Spamming)
Post your question and wait. Getting help on IRC is a crapshoot - a person with the knowledge to answer your question has to be present and active. If no one can help, typically no one will say anything to you.
Refrain from posting your question again until it has disappeared off the screen some ways AND it has been more than ten minutes. People don’t tend to ‘read up’ more than about a page or two (although there are exceptions). Once you’re certain your question has been “buried”, you may repost it.
If you don’t get an answer quickly, don’t get impatient. Posting stuff like “Well?” or “ANYBODY??” doesn’t help - it actually decreases the likelihood that someone will help you.
Stay in the room! Mark yourself as
/awayif you have to, but as long as you are technologically able to stay in the room, do. It isn’t uncommon to receive an answer several hours after asking the question. (That rule goes both ways, so don’t feel bad if you miss a follow-up question by a few hours because you were away from the computer).
Avoid cross-posting. Wait until your question is “buried” in a room, or until someone has expressly told you that no one can help you in that room, before posting it again on another room. If you wait a long time in a quiet room, it is generally okay to repost the question in a second room, but be sure to update the first room with the answer once you have it!
Text-based communication is an odd medium. We naturally read tone and other non-verbal cues into text. Even right now, you’re almost certainly hearing a “mental narrator” reading this passage in a particular tone (hopefully a friendly one!)
This can quickly become a problem in IRC, especially when heated topics come up. Some rooms even go as far as to ban religion and politics altogether, but people still find things to fight about. We refer to the level of conflict in a room as its temperature.
Controversial topics aren’t necessarily bad within the appropriate time and place; you can learn a lot by discussing culture and current events with people around the world. In fact, it is possible to have these conversations without causing problems. Here are a few rules:
Put a check on your “mental narrator”. Assume the best about the other person.
Keep an eye on the “room temperature”. If people are getting obviously upset, seriously consider dropping the conversation. Simply saying “This topic seems to be getting a bit heated. Let’s talk about something else.” goes a long way towards lowering the room temperature.
If you feel your temper rising, stop talking.
People are more important than “winning” a debate. It’s okay to “agree to disagree”, no matter what anyone says. I have personally dropped topics I feel passionate about, simply because I value the friendship over proving my point.
If you are asked to drop a topic, drop the topic. Similarly, if you ask someone else to drop the topic, consider it dropped and refuse to engage further. (Ignoring an argument is a powerful tool.)
If the debate is getting out of control, and you cannot escape it in the room, leave for a few minutes to cool down. Although a few would mislabel this as “rage-quitting,” it is actually a mature way to handle explosive “no-win” situations. Check the room every few minutes to see if the debate has ended, and then rejoin. If you have to use this tactic, never resume the debate!
When you include someone’s nick in a message on IRC (assuming they’re in the same room as that message), they will be “pinged”. This is a very useful feature, but you should be careful not to abuse it.
If you’re in a large, busy room, you should almost always ping the person you’re talking to on the first message in a chain. This helps the other person track the conversation.
Only ping someone if you really want their attention. There are usually common shortened versions of nicknames (like “codemouse” instead of
CodeMouse92__) that people will use to refer to a person without pinging them.
If someone asks you not to ping them, don’t ping them.
It is possible to private message people on IRC. Most people are okay with you just starting a private conversation, but if you’re unsure, you should ask first (either in the public room or in an initial private message).
Either way, respect the person and consider private messaging a privilege. Some people are okay with occasional messages, but not long or frequent conversations.
Of course, you have the same rights as anyone else in this matter. Be polite but clear regarding your own private messaging boundaries.
Also, consider whether the conversation may be useful to the whole room. If someone asks a public question and you unnecessarily PM them the answer, you've just robbed the rest of the community of the solution.
You should avoid posting large amounts of text. Even if you can seemingly fit it all into the box on your client (e.g. Hexchat), IRC has a maximum message size, and your client will trim what’s in that box into the right number of pieces needed. Trying to post lots of text will flood the room, which is a massive annoyance.
To avoid this, we use sites like bpaste.net for posting code, error messages, and other long bits of text. Check the room topic for the preferred pasting tool, defaulting to bpaste if nothing else is requested.
(By the way, Pastebin itself is discouraged, because some international users cannot view that site.)
Additionally, you should not post the same message over and over. This is considered spamming, and it will usually get you warned and/or banned from a room. (see Asking Questions).
Under no circumstances should you ever go into a room with the express purpose of starting a debate or stirring up trouble, no matter how funny you think it is. This is called "trolling", and it is one the most grievous crimes you can commit on IRC.
In general, you should also avoid using profanity and other offensive language. Different rooms have different policies on this, but there’s never harm in keeping your language clean. (It also promotes use of more creative, descriptive words - linguistically, the f-bomb is just meaningless filler.)
Excessive use of offensive or hurtful language, especially directed at a person, is known as flaming. This is not okay. Ever. Period.
If the room you’re in has a bot that is designed to be used by room participants, it’s a good idea to learn how to use it correctly. You should never abuse a room’s bot features.
There are also rogue chatbots, which are designed to automatically troll channels. Since no one has ever beaten the Turing test, we can usually spot these pretty quick. If, for some reason, someone begins questioning if you’re a bot, don't be insulted. Just mix up your sentence structure (bots cannot do that very well) and make sure you aren't always talking about the same things.
Now, a few of my good friends from IRC would want me to point out, there is a place for a different sort of "trolling". Within the scope of a close-knit community, regulars who have proven themselves trustworthy will sometimes tease each other in ways that resemble trolling. However, this is an earned privilege.
It is easy to assume that, because we know each other through IRC, we don't have a real relationship. Nothing could be further from the truth! Just within
#ubuntu-offtopic, where I spend most of my time, I count many of the members as some of my closest friends. We have a deep level of trust in one another. Some of us have shared phone numbers and mailing addresses. Standing invitations to dinner exist, real life meetups happen. We've had arguments and settled them, trusted and been trusted, and when the chips are down, care enough about each other to help in very tangible ways. We are just as close within the context of IRC as we would be in a face-to-face friendship. But, just as in real life, these friendships have formed over time.
Thus, if a newcomer wanders into the room and begins interacting in the same deeply familiar manner, they naturally will not be well received. This is the same as a random stranger walking in on a private birthday party or wedding and pretending to be "one of the gang". It's creepy. It isn't that we have a "clique," as many newcomers have made their way into our inner circle. We just have close friendships, and those take time to form.
This is one of the reasons that you shouldn't take apparent "exceptions" to netiquette as license to ignore the rules. It may just be that you haven't yet proven yourself. Through regular positive interaction, you too will find yourself a trusted part of the community, with trusted friends of your own.
You have entered the single largest online community of nerds on the planet. We have our own unusual way of communicating.
If someone sounds like they’re insulting you, assume they’re being sarcastic or silly - they almost always are! Responding to an open insult as if it were true and/or a compliment is the best way to respond. Those who insult intentionally can’t really work with that sort of response anyway.
Here’s an example from my own chat logs. The other person actually didn’t mind my being there at all:
[rfleming] Oh great... it's CodeMouse92
Aside from this taking place within a solid IRC friendship, this is not uncommon in general.
Beware double meanings and connotations! Computer programmers and ITs especially like word play, so you’re likely to have such a message intentionally misinterpreted as a joke. Play along, or politely clarify if necessary. For example:
[phunyguy] well, my state is actually pretty up in the air right now so I said why not
[phunyguy] ldunn, don't say it
*CodeMouse92 notices that phunyguy did not ask HIM to not snark that statement
[CodeMouse92] phunyguy, Your state is up in the air? I hope you're in a small one, otherwise you're going to have a hard time finding an airfield big enough.
[phunyguy] CodeMouse92, oh so it was YOU that said it. I thought ldunn and Flannel would be the ones.
Again, while it may be tempting to join in on this sort of conversation right away, do not try this at home...at least, not until you have had enough experience in a room to know the social expectations and general rhythm. Form trust within the community before you let your snarkiness shine.
I spend nearly all of my time on the Freenode IRC network, and I've found both good and bad rooms. Most languages, and many open source projects, have dedicated rooms (either official or unofficial).
Here are a few I've found helpful:
#c++-friendly: C and C++ support questions and technical discussion. (I actually co-run this room.)
#python: Python support questions and technical discussion.
#ubuntu: Technical support for the Ubuntu operating system. (See also,
#ubuntu-server for IT-related support and discussion.)