Wednesday 13 August 2014

Even newbies can help solve community problems

I was quite pleased yesterday when I got my first "accepted answer" for a Ruby-tagged question on Stack Overflow. I hasten to add that the question was one of converting CFML code to Ruby code, so I had a helping hand, plus it was simply a matter of seeing where the logic of the Ruby code didn't match that of the CFML. I think even someone not versed in Ruby at all could answer it. So I'm not claiming it as much of a personal achievement.

What is good about it is that it demonstrates that answering questions on Stack Overflow is not the sole purview of experts in a given field; even newbies and intermediate-levelled people can provide good input into other people's questions. Also, it's a great learning exercise. Stepping out of one's own comfort zones and into someone else's problem domain exposes us to technology and concepts we might not use every day. The code we use at work is very five-tagger (perhaps "ten-tagger" might be a better description; reading "Five-tagger? what n-tagger am I?"), and I never use CFML's UI tags, PDF tags, image-processing tags, spreadsheet tags, .net integration, etc. So when I see someone asking a question on those topics, it's a good excuse to roll my sleeves up and find out what the answer is. This helps both the petitioner as well as myself. Win. So imagine if you're a less experienced CFML developer (purely chronologically, I've been doing CFML for 14 years, so I have picked up a reasonable amount of knowledge along the way, so I don't think it's hubris to imply I'm "experienced"), there is even more scope to learn more new stuff.  Don't use CFCs? Check how people are using them in the real world. Don't use CFScript? There's a lot of CFScript code on show on Stack Overflow. Have never used a "closure" in your life? Here's your chance to see them in action.

Obviously this doesn't only apply to Stack Overflow. Adobe have their own ColdFusion forums, Railo has its Google Group, an there are various other forums and mailing lists about the place with people asking for help every day.

That said... and I can imagine Scott Stroz curling up his toes slightly at my solicitation for newbies to join the fray helping people on these forums... I make a point of only answering a question or offering advice if I am absolutely sure my advice is solid. I never post code I haven't actually tested, I never offer insight into functionality without first confirming the documentation, and I never offer editorial comment unless I can back my position up (with research, not with anecdote, hearsay, or hunch), and know others in the community have likewise reached the same conclusions. I say this because there are a bunch of people out there that offer pretty poor or meaningless advice on a pretty regular basis. It came up on a forum recently that someone suggested that offering any feedback is better than offering no feedback. This is fallacious. If you don't know what you're talking about: STFU. You are simply wasting everyone's time. But the easy route to knowing what you're talking about is to find out first. I don't mean to be giving a mixed message here: "Help out!", "No, don't help!". What I do mean is that if you're going to do a job... do it properly. Which might take some effort. But I think it's worthwhile effort for all involved.

Also bear in mind that it's completely OK to ask for help. You don't always need to sink hours and hours into solving something by yourself that someone else has probably already worked through and explained. I would fall back to Google for help probably a dozen times a day. So try to work something out for yourself for a while, but if you get stuck: see if anyone else has already solved it. And if they haven't be proactive and ask a question. That said... make sure you read the forum guidelines (for whichever forum it is) before asking, as there generally is a minimum level of "proof of trying to do it yourself before asking" required (especially on Stack Overflow). And read this: "Need help? Know how to ask for it"; and this: "Short, Self Contained, Correct (Compilable), Example".

I hope to see a few more people helping out or asking questions on the various CFML forums in the near future ;-)