If you have a programming problem that you can’t solve yourself, what are your options?
- Ask your local guru
- Post your question in one of hundreds of forums
- Search for the answer using your favourite search engine. and, for semi-completeness…
- …give up
Of these options, using a search engine is the most popular. Many developers aren’t fortunate enough to have an accessible guru and formulating a question that is good enough for a forum is a lot harder than typing a few words into a search engine textbox. In addition, it opens you up to ridicule and/or RTFM responses that you just don’t get with search.
What do Programmers Search for?
Brian d Foy reasonably points out that the perl documentation ranks highly for "perl documentation". But it’s not important. No-one is searching for that anyway.
Google provide some tools to check the approximate volume for a particular search. There are 80 – 90 thousand global searches for perl documentation per month, mainly in the form of "perldoc" or "perl doc".
Compare that against the number of monthly searches for "tcpserver" which is approximately 30,000. And that is just one problem out of tens or hundreds of thousands1.
Many more people are looking for the answer to a specific problem than for perl documentation. This makes perfect sense.
What type of person is searching for "perl documentation" ?
- People in the process of learning perl
- People considering learning perl (probably as one of a number of options) and wondering if there is good online documentation
In neither of those cases do we need to improve things. They will find the excellent perl documentation and realise that perl is a great choice of language.
People looking to solve a particular problem are obviously not searching for "perl documentation". Aside from research for this article, as an experienced perl developer I haven’t needed to search for "perl documentation" for many years. Having said that, I do search for "perldoc [specific term]" several times a month.
1. "Read File" gets 673,000 searches a month. "PHP Read File" gets 40,500. In comparison the number of searches specifically for the perl documentation is vanishingly small.



7 Comments
If you have a programming problem that you can’t solve yourself, what are your options?
In addition to the exposed options… I use to try 3 more:
- IRC
- Search locally (perldoc, distro specific notes, etc).
- Search answers into existing and public source code.
Perldoc is available via search engine. Unless I’m using perldoc -f to search for a specific function I type “perldoc IO::Handle” or whatever into duckduckgo.
Your other suggestions are good. I imagine IRC is like getting remote access to community gurus. I always base new scripts to scripts I’ve written in the past. Do you have any suggestions for good quality public perl code?
I like this post of mst talking about choosing a library:
http://www.shadowcat.co.uk/blog/matt-s-trout/choosing-a-library/
The same criteria may apply when looking for reference source code to look at. Greetings :)
I’m not sure what point you are trying to make. I don’t care if people search for “perl documentation” or “perl doc” or whatever variation they might choose. This has really nothing to do with Perl and everything to do with research skills. You choose appropriate search terms for whatever you are looking for.
I only responded to your assertion that people didn’t know where to find the Perl documentation. In that one case, “perl documentation” clears it right up. You’re turning that into some sort of tangential argument for something that I wasn’t responding to.
If I’m looking for something related to perl, I search for “perl problem-keywords”. If I need to do something with FreeBSD, I search “freebsd problem-keywords”. If I …. I usually am not disappointed. It’s not some amazing secret of the gurus.
You leave out one of the most important ways to solve problems, which might be why you have a problem. Read a book and learn about the problem domain. One of the reasons that people have such a hard time solving problems is that they never learn enough to grasp the subject. They want to drop into a big mess, learn as little as possible to solve the immediate problem, then move on. They never really learn about the subject that’s controlling their problem. The next time they have a problem, they really don’t know any more about what they are doing than when they started. A little upfront research saves a lot of future work. There’s a reason that some people ask questions and some people answer questions, and it’s usually research skills that creates the divide.
You leave out another important technique for solving problems: keep trying. If at first you don’t succeed, try again. Programming sucks. It’s hard. It requires a lot of thinking, coordination, and a lot of integration of skills. You have to know at least a little bit about everything. On the first pass to a problem you’re likely not going to realize everything that you need to know. If you give up, you’re robbing yourself of the chance to apply the things you learned about the problem in the first pass at it. Indeed, this is what helps you formulate good questions if you need to post to a mailing list.
The more hard problems you diligently work on, the more hard problems you’ll be able to solve. The more you learn about your subject, even for the bits that you don’t think are immediately useful, the easier time you’ll have.
This is a life skill that’s larger than programming, computers, and IT. If you don’t have this skill, you’re gong to have a tough time being successful at anything and always dependent on others to help you.
That much is clear.
I never asserted that people don’t know where to find the Perl documentation. Experts already know, and no-one else cares.
You are obviously not my target audience. Your viewpoint has been tainted by constantly working with novice programmers. Programming isn’t hard, it’s easy.
What I [currently] find hard is writing a post that clearly conveys my intended point. But I’ll keep practising.
Ted, I am not sure if understand you correctly or just reflecting my own hopes but I think you would like to get more generic programming questions to end up receive a perl related answer.
So if someone is looking for “tcpserver” you would like to have the first hit be an a place that explains how to build a tcpserver in Perl.
For that you first need to have one or more good documents about the “building a tcpserver in Perl” and then further SEO it. Having a perl.org URL for “the” perl wiki would be good. Having “nicer” URLs in it (without the ?) would probably also improve the situation.
OTOH having a better wiki engine (or just a newer version of it?) would probably increase contribution as well.
Then you need to convince people to link to that page.
I think I just went back to my previous idea of answering Perl related question on other, non-perl forums and linking to the “right” documents.
But I can go further. Writing articles about the subjects and linking to relevant “central document” will also help in SEO.
Yes, this is exactly what I want. You summarised it perfectly, thanks!
Ironman is a good start for people who are taking a pretty active interest in Perl. But the wider Perl community is much bigger, and the overall number of programmers is bigger than that. Wouldn’t it be great if everyone searching for “tcpserver” and “read file” was seeing a link to the perl wiki as the top link?
I’ve mentioned it before here, maybe I’m too excited about the idea.
Another advantage is that as the state of the art in perl programmiing improves, the code on the wiki can improve along with it. I recall reading an article mentioning that examples of poor quality perl code were far too easy to find.
And as you say, answering questions on a forum and linking to the good quality wiki article could form a good foundation of the overall strategy.
So the next thing [for me] to do, is to write a couple of wiki pages up and then link to them. And I should probably see if I can get socialtext to allow syntax highlighting.