Stack Exchange is winning the internet and this is not a good thing

Stack Exchange results tend to be the first ones on Google and this isn't always a good thing

I have blogged about how much I like the Stack Exchange sites in the past and my opinions on their usefulness haven’t changed one bit, but I am noticing a trend that I wanted to discuss briefly.

Let’s say I am new to a programming language and I want to know how to concatenate two strings, time was that the canonical result from a Google search would be a link to some spec documents or some general advice around the language. This isn’t the case anymore, now you often get a Stack Overflow answer as your first result.

I just tried this by searching the following term: “concatenate strings in go”:

Concatenate Strings in Go
Concatenate Strings in Go

The first three results from my search (I say my search because Google weights each search individually to the user making the search) all point to Stack Overflow, interestingly the second result is actually pointing to a Ruby answer, which is weird but it highlights the strength of Stack Overflow answers on the Google search index. This is why I have said they are winning the internet.

Why I don’t think this is a good thing is because whilst for someone who is already happy with the language and has a very specific question this is excellent, but in the case of needing to concatenate two strings we can infer that the user doesn’t have much of a background in the language and I don’t think this straight to the point question and answer setup is the best for this person.

The question they find will more often than not talk about an edge case where the first answer might be best suited to that edge case but perhaps not best suited as a general rule of thumb, and indeed other answers that are perfectly valid in a general case may be voted down in this specific case and a rookie user will not pick up on that.

The fact that Stack Exchange answers appear so high in search results often means as well that people assume that if it isn’t on the Stack Exchange they should ask it, which leads to too many questions being asked that could be answered by reading the manual or doing a tiny bit of experimentation.

This extremely efficient mechanism for finding out the exact answer to your question is creating a generation of very efficient, but perhaps not entirely well rounded developers who can churn out code very quickly but perhaps don’t understand the code as well as they should.

I should point out, this is in no way the fault of Stack Overflow, they are providing an excellent service and they are clearly doing their fair share of Search Engine Optimising to be able to achieve such results, I think that if any physical thing is at fault here it is maybe Google, they are charged with finding people the most relevant result and whilst on paper an exact match between your query and a Stack Overflow question should result in Stack Overflow being the canonical link, I am not sure it is the most relevant link in practice.

To be honest to call Google at fault is clutching at straws, the real issue I think is that too many developers are happy to dive in and ask someone to do their thinking for them before properly trying to solve the issue themselves, I don’t know how we fix that.

By the way, here is the best way to concatenate strings in Go, via Stack Overflow of course :-)

package main
import "bytes"
func main() {
    var buffer bytes.Buffer
    for i := 0; i < 1000; i++ {
        buffer.WriteString("a")
    }
    println(buffer.String())
}

I spoke to Jeff Atwood on Twitter about it and this was his response:

@tosbourn this is an old debate, "go read the whole book first" versus "answer my specific question". Good devs will seek background.
Jeff Atwood (@codinghorror) April 16, 2013

Joel Spolsky also got back to me about it:

@tosbourn @codinghorror devs page-fault in the minimum knowledge to get the job done
Joel Spolsky (@spolsky) April 16, 2013

Recent posts View all

Freelancing

Getting the most out of your agency

Here are some tips based on years of working with, for, and as an agency on how to get the most out of any work you do.

VS Code Web Dev

Select multiple lines in VS Code

How to select multiple lines to edit at once within VS Code