Thursday, 8 November 2012

Stack Overflow - it's hard work!

I've finally got around to creating an account at SO.
You can see how I'm doing here:

The reason for doing this is to try and improve my own knowledge. If I don't know the answer to somebody's question then perhaps it's something I should know. So I can go research that and add the answer. And sometimes even get it right!

But it's interesting to find out how much you actually know about something rather then carrying on with what you think you know.

Some variation on "unknown unknowns" perhaps.

I've been quite surprised that sometimes where I thought I had a real understanding of something in fact I did not. Quite the opposite in some cases.

And of course the opposite is true too, I actually do understand some of this stuff quite well! At least, nobody's contradicted me yet and on SO that's not a rare occurrence.

What does astound me however is the slight variation on the "what have you tried" that I see all the time.

If you don't already know linking to "what-have-you-tried" is the rote answer given when somebody asks a question and essentially expects you do do their homework for them.

If you’re a developer and you’re about to ask another developer a technical question (on a forum, via email, on a chat channel, or in person), you’d better be ready to answer the question “What have you tried?”
This of course isn’t specific to software developers, but that’s my field and it’s thus the area in which I’m most familiar with the issue which motivated me to write this. I’m (sadly) quite sure that it applies to your own industry too, whatever that might be.
The thing is, there’s a disease in the software development world; a sort of sickness. It’s an unusual sickness in that it’s often not something you acquire once you actually join the industry (like greying hair, caffeine addiction and an ulcer), but rather it’s something that new recruits already have when they arrive.
It's well worth a read. Some people seem to have taken it to the next logical step however, of trying one thing, or a small number, and then just plonking the lot in somebody else's lap. That's it. I tried, I failed now please do my homework for me.

I dread to think of the number of people being sold development (as it can't all be hobby programmers) time that uses SO to solve basic problems.

So for example, there are some people that can obviously code on SO but they ask questions like:

The documentation says to do X = function(something, something_else) and I did that but it did not work. Please tell me why. 
Where of course the answer is going to lie somewhere else other then what is on the screen. Typically just stepping through the code line by line would answer many of these sorts of questions.

But if you look at some of the people they ask questions like this over and over again, questions that you'd expect they'd answer for themselves with just a little more effort then required to write the question.

So, what have they tried? They have tried a little. And now it's your turn. The best thing about SO is the score system. The worst thing about SO is the score system. The score system gives encouragement for these sorts of questions to be answered, so they get their answers. And I've answered a few myself.

But that's not what SO is about, to me anyway.