Introduction

I’ve been working with computers since I was ten or eleven years old, and the biggest lesson I’ve learned is that there is always someone who knows more than you. They’ve gained that knowledge partly through experience, but also because they’ve learned how to ask smart questions.

I love the work I do on the web, and I want to be as helpful and encouraging as possible. But we’re on the web, and our collaboration spans hundreds or thousands of kilometers, multiple timezones, a common language which is often a second language to one or both of us, different cultural conventions, and different levels of ability. Time and energy are extremely limited resources for both of us, so it makes sense that we all learn to ask smart questions as efficiently as possible, so that we can get smart answers as quickly as possible.

That’s the spirit in which I wrote this article. It’s okay to be a noob, because we all start out there. And it doesn’t matter at what age you start out either. I’ve learned a lot from kids who aren’t yet old enough to drive, and I’ve learned a lot from people who remember the moon landings quite distinctly, and all of that has propelled me forward.

That’s really the main point behind this page: it’s okay to start as a noob, but you need to level up. You need to ask better, smarter questions, not so that you’re not wasting my time, but so that you’re not wasting your time.

I originally posted this on my personal blog, and I took some lumps for it. I attempted to be humorous, but as my sense of is based largely on irony and sarcasm, a lot of people took offense. Remember, the purpose of this article is to help you learn and grow.

This is a long page, so the tl;dr version is this:

  1. We really want to help you or we wouldn’t be here.
  2. You can make your job easier by making our job easier.
  3. Levelling up is a part of life, both on the web and in real life.

Other, Similar Pages

Some of this article was based on this post, which is maintained by Eric S. Raymond and Rick Moen. (They have nothing to do with this blog or this post, so please don’t pester them with your problems. They ask that if you link to their post that you mention this.) Some of it was also based on this page in the WordPress Support Forum. If you read those two pages, you’ll notice a definite theme: follow these guidelines and you will get the best help we can give you as quickly as we can give it. Seriously. We really do enjoy helping people, but you’ll get better help, and faster help, if you follow the guidelines we lay out.

Here are some other pages that give you more-or-less the same advice:

Do’s

1. Read and obey the forum rules.

Usually these are posted somewhere on the front page of the forum. Failure to read these rules may result in anything from being ignored because you are doing something wrong to being banned because you are doing something evil (like spamming). It took us hours to come up with these (and that after spending hundreds of hours working in the forum), and it takes you only a few minutes to read them. If you have questions about them, feel free to ask.

2. Spend some time lurking in the forum first.

All forums have a culture, meaning that there are certain expectations about the way people are expected to behave. Lurk in the forum for a while, and get to know that culture. That way, you are unlikely to make a social gaffe.

Don’t underestimate the power of a forum’s culture. When you visit an online forum, you are suddenly working with people from all over the country and all over the world, all speaking various dialects and languages, and all with different social customs and expectations. When we find ourselves rubbing shoulders on the internet, we work out a hybrid culture that helps us to get along as we work out our problems. Knowing about a forum’s culture is like knowing whether you are supposed to drive on the right side of the road or the left side of the road. Observe, learn, and adapt your behaviour to the culture you find yourself in.

3. Post in the correct section.

This is very important. Most forums are broken down into various sections (or “sub-forums”). You have to post in the correct one. This is why:

Each subsection serves a particular purpose. These subsections were not set up arbitrarily; they were set up to help categorize people’s needs, and match those needs with the people who can provide them. “Feedback” is not the same as “Support”; neither involve reporting bugs. Those people who patrol the forums looking to help people generally have a specialty (some, but not all, are generalists). If you post in the wrong section, it means that the right person to help you may not see your post; likewise, if you post in the right section, you don’t want someone who can help you have to slog through irrelevant posts to find your thread.

If I am a moderator in a a forum, and you post in the wrong section, I will not hesitate to move your post to the correct one. This is not to be cruel; it is to help you get better, faster help. I will often, however, provide a gentle admonishment to read and follow the forum rules and post in the correct section.

Posting in the wrong section is something most people do early on; if you do it, don’t take offense when we move your post. One of the reasons I suggest that you read the forum rules and spend some time lurking is that it enables to you avoid making this kind of mistake.

4. Include a link to your site.

It is often difficult, if not impossible, to help you if I can’t examine the code behind your site. I need to see what your browser is seeing. You can include a picture if you want, and if you are having problems describing what you are seeing, then a picture is invaluable. But what generates that picture is code. Yes, I really do need to see the code most of the time, unless you are just asking a general question.

You don’t need to be embarrassed by what’s on your blog or website. This is the internet, and there’s pretty much everything on the internet. If your blog is about your tea cozy fetish, don’t worry. We all have our own interests, and we don’t judge. I won’t help you if your blog sells pornography, or promotes violence or intolerance or illegal activities, but other than that I am more interested in your code than your content.

That said, there are some people who are doing things on intranets and can’t post a link to their site. That’s fine; just try to post code snippets (and screenshots) whenever possible and appropriate.

5. Use a title which accurately describes your problem.

If you are trying to align a widget to the left, then the title of your post should reflect that. “Trying to align widget to left” is a good title; “widget alignment problem” not quite as good; “help with widget” even less good; and “help!” no good at all.

Try to remember this general formula: “object — deviation.” In other words, tell us the specific thing you are having an issue with, and what that issue is. The best title for the above problem would then be “Widget won’t align to left.”

6. Provide essential information in your post.

I often see posts with a title of “Error Message” and a body that says “I keep getting this. How can I avoid it?”

When it comes to getting help for your website, there are three essential pieces of information we need to know:

  1. The expected behavior. In other words, tell us what experience you expected a visitor to your site to have. This is not the place to talk about code—we need to know the end-goal you had in mind for your visitors.
  2. How you attempted to implement this. Tell us what code, which plugin, or what modification you used. This is the place to talk about code (if any) and include code snippets.
  3. The end result. Don’t just say something didn’t work. If you were trying to change a red element to blue, there’s a difference between its staying red and its changing to orange.  If you get an error message, don’t just say that you got an error message, tell us what the error message said. Copy and paste it, or include a screen capture. There are literally millions of possible error messages; knowing which one you received is essential.

7. Before you start a new thread, search the forum first to see if your question has already been answered.

There is nothing more annoying than seeing a new support request and realizing that it is almost identical to a problem you answered last week or yesterday or even ten minutes ago.

  • First, if you had searched, you might have had your answer immediately and would not have had to wait for someone to reply.
  • Second, many people feel that not searching the forum first shows that you are not willing to do your homework.
  • Third, someone now has to spend their very limited time directing you to the post in which your query was already answered, if they choose to do so.
  • Fourth, you are cluttering up the forum and everyone else now has to search through posts like yours to get the information they want.

[notice]That said, you can also search whichever of the following resources are available: the FAQ, the wiki, the manual, the source code, or the Google.[/notice]

If you do search for a solution to your problem and didn’t find one, tell us. Searching is as much an art as it a process, and we can help you with that, too. Sometimes you don’t even know what the thing you are trying to change is called, and that makes searching almost impossible. (The same thing happens in hardware stores.) Just knowing what something is called, or what keywords to use in your search, can make all the difference in the world.

Feel free to point us to which forum posts you did find that are close to your problem but not spot on, because that gives us an even better starting point to help you from.

8. Be nice.

Use your manners. Say “please” and “thank you.” Some people don’t like it when you say “thanks in advance” and expect you to thank them afterward (especially if they solved your problem for you) while others don’t mind. I’m not really bothered either way. (But see #5 in the “Do Not’s” below.) You will know this if you follow rule #2 and lurk for a while in the forum to learn the culture.

That said, the answers you get may be short and brusk, almost to the point of rudeness. We’re not being rude; it’s just that our time and energy are extremely limited when we respond to you. So is this a case of “do as I say, but not as I do”? Yup, it is. I know it’s disappointing, but when you are getting help for free, sometimes you have to put up such contradictions.

9. Be patient.

Don’t expect us to answer your problems immediately. We are doing this for free, in our spare time, after we get out of work and after (and often before) we do the stuff we want to do. Time I spend with you, a complete stranger composed entirely of electrons and photons, is time I could spend instead with people I love and whom I can (but usually don’t want to) hug. In some forums, the response is very quick, and in others, it is very slow. (And if you had followed suggestion #2, you would have some idea of what to expect.)

Be aware that in most forums, bumping is frowned upon. To bump a post means to add another thread to it, so that it goes back up to the top of the forum list. Nobody likes to review a post that has no new information in it.

What is okay is getting back to us with more information. If you post something and then do some more research and try out something new, don’t hesitate to come back and tell us. The fact that you are continuing to research this on your end shows that you are actively seeking a solution, and others may be more willing to help you out as a result. If nothing else, you start thinking out loud and solving your own problem. I’ve seen threads that consist of a single person doing just that, trying new things and posting the results until they’ve solved their own problem. This is a wonderful thing when it happens, because not only does it serve as a good resource for others with a similar problem who are searching the forum, it also models an effective problem-solving strategy.

If you need immediate help, of course, you can get it, but you will have to pay for it. For many of us, this is both a hobby and a profession. For some of us, this is a hobby on top of another, different, profession. We are happy to help you for free on our schedule. If you want us to help you on your schedule, well…that will cost money.

10. Describe your system set-up.

Give us as much information about your system as possible: your operating system, your browser (including version number), and which version of your theme and WordPress you are using (and sometimes, which version of PHP and MYSQL you have installed on your server). A lot of times, problems can be solved simply by upgrading to the latest version of one or more of these items.

This may be the most important bit of information you provide us with. There is a huge difference between Windows, MacOS, and Linux, just like there is a huge amount of difference between Firefox, IE, Chrome, and Safari. If you don’t tell me, I don’t know if you’re seeing this on Safari 4.5 on MacOS 10.5.4, Firefox 8.1 on Windows.

11. Tell us what you have already tried, if anything, to solve the problem.

The best advice I can give you is this: go slow and take notes. Lots of them. If you haven’t tried anything to solve a particular problem, that’s okay, but if you’ve tried ten different things and can’t remember which of them you undid, it really complicates things. Often, by working backwards through your notes, you can undo whatever is causing your problem and that will tell you (and us) a lot about how to fix it.

If you haven’t tried anything to fix your problem, that’s okay. If you looked at the monitor and freaked out, well…we’ve all been there. Sometimes it’s better that you haven’t tried anything. Just let us know.

12. Learn some coding.

If you are going to be running a website, you are going to have to learn at least a little bit of HTML, CSS and PHP, even if you are using a CMS like WordPerfect or GetSimple. There’s no way around that, I’m afraid. You can’t plant a garden without getting a bit of dirt under your fingernails. You can’t drive an automobile without putting fuel in the tank. You can’t get on an airplane without buying a ticket. Running a website is in the same exact class.

I don’t expect you to become an expert, and the other people helping you don’t expect you to become one, either. But if I say you need to include a closing </div> tag in your widget, you should know what a closing </div> tag does, or you should know how to find out.

There are lots of ways to learn about coding. You can always use the Google (remember, Google is Your Friend). For example, you could just Google “</div>” and take your chances. (Actually, your chances are pretty good on this one.) Because the <div> tag is a part of HTML, your better bet would be to Google “HTML div.” If you want to know about CSS that applies to <div> tags, you could Google “CSS div.” Don’t be helpless: learn how to help yourself.

Do take the time to visit http://www.w3schools.com/. They have a lot of information and tutorials, all for free. They do have a lot of ads and they do try to sell you a training/certification course or two, but they still have tons of useful information available for free. (Disclaimer: I’m not affiliated with them and don’t get a thing if you click on that link, so click with abandon.)

I sometimes run into posts in which the poster’s words or tone indicate that they just want a solution to their problem and don’t really want to take the time to learn even the most basic coding to help themselves out. Then they constantly come back with more demands for help which they wouldn’t need if they had bothered to learn how the code I previously gave them functions. Again, this is a case of “my time is more important than yours.” No, it isn’t, and when I’m helping you for free, I eventually just quit helping you. I know that sounds rude, but it’s just fatigue. I’m more than willing to help you if you are willing to learn at least a little bit of coding, but if you aren’t, then you don’t need help, you need consulting, and that will cost you money. Read Do #9 above.

I would much rather spend my time helping those who are going to learn and grow and eventually give something back to our community. Nothing pleases me more than to see someone who has until now posted nothing but requests for help respond to someone else’s query with “Hey, I know how to do this! This is how…” Their excitement at experiencing mastery of a coding issue is almost palpable, and I am happy for them, for the person they are helping, and for the development of our community.

13. If your problem is resolved, tell us what worked.

A lot of forums have the ability to add a “Resolved” tag to your post, letting everyone know that your problem is solved. Marking your issue as resolved lets us cross off another item on our to-do list, especially if we were one of the people helping you, and is one of the most polite things you can do. But if you do mark it resolved, please make sure to tell us which solution worked for you.

The reason is simple: a forum exists not just as a way to get people who need help together with people who can help, but as a repository of knowledge. It’s like an open-air lab journal, with everybody recording their experiments and their results. As a result, others can come to the forum and search first to see if their issue has a solution. (Remember #7.) There is nothing more frustrating that finding someone who has marked their thread resolved without letting others know how it was resolved. Lend others a hand, and tell us what worked.

Likewise, if we spot a pattern or trend in what works, we can sometimes work out bug fixes that way.

Don’t’s

1. Don’t spam—ever.

As someone who runs several websites, I can assure you that there is nothing more annoying than spam. I use a lot of spam filters on the sites that I run, and spam still gets through. It’s annoying, and I do everything I can to smash it. (Seriously, when will these people ever learn? 'rel='nofollow' exists for a reason.)

Nothing will get you booted off a forum quicker than spamming. If you want to include a link and are unsure whether doing so would be considered spamming, don’t do it. You could ask a forum moderator, I suppose, but if it seems even remotely spammy, I would recommend against it.

2. Don’t mark your threads as “Urgent” or “Emergency”.

Your problem is urgent to you, just like mine is to me. Marking your thread as “urgent” or “emergency” doesn’t automatically bump you to the top of my to-do list, or anyone else’s. In fact, I may just drop it to the bottom of my to-do list, which is just a step away from my “if I ever get the time” list, which isn’t all that far from my “things to do during the zombie apocalypse” list.

If you mark your thread as “urgent” thinking that I will drop what I’m doing and help you first, before I help anyone else or even get my own stuff done, you are wrong. It’s kind of rude, to be honest, and a sure way on some forums to ensure that you never get any help at all. People here have long memories.

If nothing else, think of what a help forum would look like if everybody titled their threads as “Help! Urgent!” All posts would all look alike and there would be no way to distinguish among them.

3. Don’t post raw code.

In most forums you can, and are expected to, post code between backticks () (which are usually* underneath the "˜" in the upper left-hand corner of your keyboard) or between <code>` tags. The reason for this is simple: if you fail to do so, browsers may attempt to parse the code and can cause the page to break. (Or they can break a database—this is what happened on Wil Wheaton’s blog.) You can tell if you’ve done it right, because instead of looking like this:

#respond > h3 {font-size:14px;}

it will look something like this:

*It depends on your keyboard layout, but that’s where it usually is in most English layouts. See this article for more information on other keyboards.

4. Don’t code dump.

Please don’t include more code than is necessary. There’s nothing worse than looking at a help request with about three or four screens (or in some cases, over 1200 lines) of code in it. I’m more than happy to help you, but you have to do narrow down what others need to look through.

If you want to show us what you changed, and that change involves something like trying to change the color for a bunch of different elements, we don’t need to see every single instance. Just give one example of what you changed. We get the idea.

Sometimes you don’t even have to include the code. For most things, I keep a copy of the current versions of WordPress and the Graphene them on my computer, so you can just say that you think the problem is somewhere between lines 790 and 820 in the “foo.php” file. I can find that faster using a text-editor I am familiar with than scanning your post and counting lines.

Keep in mind that browsers have a “view source” function we can use to see HTML and CSS, so we can see those things just fine—you don’t need to post a bunch of code in those cases. Of course “view source” isn’t of use for PHP and similar coding languages, so post a bit of code. If you need to post more than a bit (and you can find out how much constitutes a “bit” by reading the forum rules and observing the forum culture), then make use of pastebin.com. You can read about how to use it here.

I am incredibly sensitive to code dumps, as are most people. Large amounts of code just put people off. In an introduction to A Brief History of Time, Dr. Steven Hawking noted that someone advised him that for every equation he included in his book, the number of readers would decrease by half. Similarly, for every 10 lines of code you include in a post, the number of people who will read your post (much less think about it and respond) decreases by half.

5. Don’t beg, grovel, or apologize.

At least not excessively. I’m here to help you with computer issues, not personal issues. As Spock said, “I have no ego to bruise”—or to massage. Just being polite is enough for me. You don’t need to clutter the forum with non-help-related issues. This is a help forum; neither sycophancy nor argumenta ad misericordiam have a place here.

People who work with computers, while not entirely unemotional, have an extraordinary ability to put those emotions on the back burner. We’d rather deal with emotions after we deal with the problem at hand*, which helps explain why we find posts marked “urgent” so annoying.

I can’t say it any better than Eric S. Raymond does:

Much of what looks like rudeness in hacker circles is not intended to give offense. Rather, it’s the product of the direct, cut-through-the-bullshit communications style that is natural to people who are more concerned about solving problems than making others feel warm and fuzzy.

*And even then, only if necessary.

6. Don’t ask for something that will work in all browsers, in all operating systems, from now until the end of time.

It just doesn’t exist. Those of us who have been around on the web for a while know this. If you ask for this, it means either that you are a complete noob who has yet to do his/her homework, or that you are a complete noob who will never do his/her homework. If you are in the former category, I can work with you and help you to learn and grow. If you are in the latter you probably aren’t reading this post.

Using an older version of Internet Explorer? See #9.

7. Don’t highjack a thread. Start a new topic if necessary.

Highjacking a thread means that you are reading a thread about something—say, getting an image to line up in a certain way—and you suddenly burst in with a completely different question. If you’ve spent any time at all on the internet, I’m sure you’ve seen this. Someone will post a response in a thread that says something like “wow, your apple pie recipe sounds delicious, but what should I do about my cat’s psoriasis?”

In real life, this is known as a non sequitur. Please, oh please, don’t do this. It’s annoying, and it impacts our efficiency rating.

We like to keep things neat. One thread, one topic. Resolved or unresolved. Black or white. 0 or 1.

I understand if you are reluctant to start a new thread because it seems like a bold new step for a noob. But if you have searched through the forum and haven’t found anything relevant, and you let us know that, we will actually applaud you for starting a new thread, because that is what you are supposed to do. People who start new threads for new topics and don’t code dump? Brent Rambo approves!

Brent-Rambo

Not starting a new thread also means that you may not get an answer because the thread’s title has nothing whatsoever to do with your problem and other people will never see your question. Keep things nice and neat. If you are searching the forum (thank you!) and find a post from six months ago that comes close to answering your question, please don’t add on to it. Just start a new topic, and include a link to this old post. (See “Do #6” and “Do #10” above.)

8. Don’t expect a lot of help with Internet Explorer hacks.

I know, 1.2% of your readers are still using IE6 and you want your website to appear to them the same way to them as it does to those readers of yours who are using a new version of a real browser, like Firefox or Chrome. Do them a favor and recommend that they upgrade to Firefox. I have met more than a few people who didn’t know that there were other browsers beside IE available. Educate your readers and they will be thankful and will come back to your site for more.

Some people have pointed out to me that they work for a company that simply won’t upgrade their operating systems or browsers, and IE6 compatibility is an absolute must. If this is the case for you, then the issue is not IE6 compatibility, but rather that your company is afraid to upgrade. If that is the case, your company has some serious internal issues. You might want to let them know that older versions of IE are on their way out, and point them to the IE6 Countdown page, which shows that less than 1% of people in the west use IE6. There are similar pages (and statistics) for IE7, and pages for IE8 and IE9, as well.

Other Issues

1. I’ve found a bug.

Really?

wpid-icsxomk.gif

We all like to find new things, but when you post this, what you are basically saying is that despite the hundreds or thousands of hours that have gone into the development of this project, and the hundreds or thousands of hours that have gone into alpha- and beta-testing this project, you’ve found a bug after you’ve only been using it for five minutes.

Well, that does happen. In fact, it happens a lot. Coders are people and they do get things wrong. (Facepalms exist for a reason.) But I would like to point out a couple of things:

  1. Just because it doesn’t work for you doesn’t mean it’s a bug.
  2. If I can’t reproduce the problem on my end, it probably isn’t a bug.

Coders are incredibly pragmatic people. If you say you’ve found a bug, then you need to be able point it out in the actual code. Keep in mind what I’ve said about old versions of software and Internet Explorer. Just because it doesn’t work in IE6 doesn’t mean it’s a bug; it just means that IE6 is old and it’s time for you to upgrade.

If you think you’ve found a bug, we need to be able to duplicate it on our end. First, make note of the exact circumstances in which you encountered it. Then try everything you can to eliminate it. If it only shows up in a certain context, make a note of that and be sure to tell us.

2. Use the tools that are available to you.

This includes the manual, the wiki, the FAQ, the forum, the Google, and especially, Firebug.

A note about searching: unless you are using some terribly uncommon platform to create your website, it’s generally easy to find answers to your problems. Just remember to add the name of your platform to your search string. Trying to add images to a Joomla site? Try googling “add images Joomla”. Trying to do the same thing in WordPress? Try googling “add images WordPress”.

The same is true of error messages: just google the name of the error message along with the platform you are using. Are you getting “Parse error: syntax error, unexpected T_STRING” when writing PHP? Then google “unexpected T_STRING PHP”.

The same principles apply to an application’s support forum; you can, of course, leave off the name of the platform.

3. Beware of faulty assumptions.

I have seen many posts that blame this or that piece of software for problems without the user bothering to check for other, simpler solutions. Remember Occam’s Razor. You just updated WordPress and now your computer won’t run? Is it plugged in? Is it turned on? Is the circuit breaker tripped or the fuse blown? Is your power adapter working correctly?

There are endless variations of this. Someone tries to enter a password and no matter what, it just won’t work. Check the CAPS LOCK key, since most passwords are case-sensitive. Someone clicks “yes” on a message without reading what it says, when what it says is “You are about to reformat your hard drive. All of your data will be lost. Continue?” Someone enters the capital letter “O” instead of the numeral “0”.

Usually, though, this is because someone changes two things in a row without checking to see what the first one does first. For example, someone will change their permalinks, choosing a permalink structure that actually breaks their blog, and then just as they are about to navigate back to their page, suddenly remember that they want to tweak their style sheet as well, which they do, but which has no effect at all on their blog. They then go to their site and see that it is all screwed up. Because the style sheet is the last thing they changed, they automatically assume that those changes are what broke their site.

Another variation occurs when a person uses plugin A without any problems, then disables it and installs plugin B, which also causes no problems. They then assume that both plugins work just fine, so they re-enable plugin A, then go and do a bunch of other stuff, only to find that their site is broken. They then assume that the problem is with that bunch of other stuff they did, when the problem is a simple plugin conflict between plugin A and plugin B, which they had never tested together.

4. Beware of the “I haven’t changed anything, honest” error.

This error is usually accompanied by the word “suddenly” or sometimes the phrase “all of a sudden.” Errors don’t just happen suddenly or all of a sudden. Something else has to occur in order for an error to happen. When I press people who profess this error, it usually turns out that they had just either

  • updated WordPress
  • updated their theme
  • updated one or more plugins
  • added several plugins
  • deleted several plugins
  • edited core WordPress files
  • edited core theme files
  • discovered the joys of FTP
  • clicked on a link promising sweet SEO goodness which then infected their site with a virus

or some combination of those things.

In all fairness, sometimes it’s not something you did. Hosting providers do make updates to their systems, and they usually inform their users by sending them an email containing all the relevant details. My advice is to check your email regularly and do not ignore emails from your host. If something is amiss, and you honestly have not done anything, check with your host, and then check with your ISP. If nothing else, you may have a virus on your computer which is causing problems, so head to your local library and check out your site from there.

Do You Have to Follow All This Advice?

Nope. You don’t have to follow any of it. You can just jump on a forum, act like an idiot or a boor, and take your chances. You might get banned from the forum—I’ve seen it happen, usually for spamming, and on occasion for profanity.

What is more likely to happen, however, is that nobody will look at your post, or, if they do, they won’t bother to respond. Take a look at this link: http://wordpress.org/support/view/no-replies That’s the section of the WordPress forum that contains posts that no one has responded to. It goes back seven years, and has 6,840 pages, with 30 posts per page. Think about it: over the course of seven years, there are 205,000 (and counting!) posts that no one has responded to.* Do you really want to be one of those?

*Update 2014.08.25: They have since pruned this section of the forum to just the last 12 months, which still contains 16,920 posts.

Published on: 16 August 2014

Lasted edited on: 27 August 2014