Six emotions experienced by a Stack Overflow treasure-seeker

By: on March 15, 2019

If you’ve been unlucky enough to have been experiencing problems in the general areas of Spring Boot or RabbitMQ recently, you may have turned to Stack Overflow for a bit of non-judgemental support. Some scrutiny of your config files for typos, perhaps, or a gentle word of advice from seasoned experts on the exact meaning of a certain field. Maybe things are about to get better, you think.

However, your hopes are dashed when you find that instead of enjoying the eyes of an expert with, say, 5 years’ experience in the field, your most enthusiastic would-be-solver is a certain pollyshaw, who has 2 days’ experience, consisting of a half-finished Pluralsight course played at 1.2x, a few online tutorials, and a few Stack Overflow answers provided to beneficiaries even more unfortunate than yourself.

Because, you poor thing, I like to use Stack Overflow as a training ground.

I first adopted this hobby a few years ago when I had a job where I wasn’t really supposed to write any code myself (boo!) but I had to oversee a number of projects which were using ASP.NET MVC and RESTful APIs. And I had a lot of Word documents to write. It was a dark time in my life. To leaven the boredom and to try to keep up with the developers, I’d spend a loosely-defined lunch hour or so trawling questions tagged with my favourite topics, sniping at the ‘What’s wrong with my SQL select’ questions, creating toy projects to replicate people’s problems, or scanning the HTTP spec in the hope of finding citable support for my argument on which verb should be used for a certain action.

There are two things I particularly love about Stack Overflow:

  • The gamification which produces social goods (awesome durable answers for posterity) and individual goods (answers for those seeking them, meaningless but strangely satisfying points for answerers.)
  • The fact that it’s firmly non-personal. I’ve only ever recognised one person I know in real life on a SO post. There seem to be people who go round actively removing all the non-business ‘fluff’ from questions – e.g. ‘Thanks in advance’, ‘I hope I can find someone who can help’, ‘Hello’. Having said that, I must say that I find a remark of the nature of ‘Any advice appreciated’ encouraging when I’m tempted to answer a question on a subject that I’m particularly ignorant about.

So, how effective is answering random SO questions as a method of learning new things? In the last week or so, I’ve set up Spring MVC projects, both stand-alone and hosted by Tomcat, used JPA to connect to both an embedded H2 database and a docker-hosted PostgreSQL instance, investigated transactions, set up RabbitMQ listeners and producers both inside web sites and stand-alone, read the MQTT spec, created a JavaScript client of an MQTT service using Paho MQTT and thought of an idea for a pull-request to Paho MQTT to make it more compliant.

Maybe I might have done most of these things if I’d just done online training courses and tutorials. But I don’t think I would have had as broad an experience or been as motivated to do it – plus, with Stack Overflow you’re solving problems which people are actually experiencing in real life (bar those amusing questions which say ‘Quick answers please! I’m in an interview!’) and therefore you might encounter soon too. And, of course, where I provide useful answers, my learning has actually created a social good.

Sadly, this method doesn’t work for every technology. It works best for things that are extremely popular, and so attract lots of questions from people who are just starting out. I had a go at using it when I was learning Kotlin last year, and it seems that Kotlin is not yet popular enough for there to be a huge number of beginners who ask questions easy enough for other beginners to answer.

I’ll conclude with my list of the six emotions experienced by a non-expert solver:

  • Anxiety – when you’re not too sure of your answer and think you might get voted down
  • Despair – when you just can’t replicate the issue in the question
  • Guilt – when someone else’s comment requested extra info which helped you answer the question, enabling you to get the first correct answer, and then they upvote you
  • Smug benevolence – when you get an answer accepted, ideally accompanied by an effusive comment of thanks
  • Weariness – when someone has asked the community to provide a complete architecture for a multi-channel notification system and tagged it ‘spring-boot’
  • Shame – when the questioner points out that the problem you ‘identified’ could never happen based on some subtlety of the code, demonstrating that they know considerably more than you.
Share

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*