TL;DR: Should I give a “time out” to ‘newbies’ who have been ‘newbies’ for (subjectively) too long, or am I being too harsh?
Let me start with a graph.
Now let me explain what the graph means.
The red and yellow lines in this graph are two people who have been in the Ruby on Rails community about the same period of time. The person represented by the red line has gained more skill over a shorter period of time than the person represented by the yellow line. Let’s say the total time for this graph is 18 months. Both people, for all intents and purposes of this story, are gainfully employed as Ruby on Rails developers. Where they work, what they are paid and what they’re building aren’t important to this story. What is important is the role that these two people play in the #rubyonrails channel on Freenode.
Yellow is in the channel nearly every single day continuously asking questions. Red (not me, by the way) is there, again, nearly every day, answering questions from people like Yellow. Occasionally, these questions take anywhere from mere seconds all the way up to (in more than one case) 5 hours to answer. These questions are usually relatively simple things, like defining custom validations, working out nested resources or figuring out syntax errors in ERB code.
Now, I don’t personally have a problem with people who take up the channel’s time by asking question after question after question, month after month after month. That’s what the channel’s there for. If we didn’t allow all those questions then why even have the channel in the first place? My problem is that I think that a lot of the answers to these problems can be solved in a better way than asking anonymous strangers on the internet for help. Like reading free and not so free about the topic, for instance. Or finding an anonymous stranger who can consistently volunteer their time to help build the thing that they’re having issues with, and become not-so-anonymous, perhaps even a friend.
Basically, IRC is a shitty medium for discussing big programming architecture problems, but a great one for teeny-tiny problems.
In IRC-land, Red only has so much patience to help Yellow in their quest for learning. If it appears that after a long time that Yellow isn’t actually learning anything from what they’ve been told and they aren’t applying any actual critical thinking to the problem space, then Red may get annoyed at the “slow-goingness” of the progress. I’ve seen this happen. Hell, I’ve been annoyed myself that some people just don’t ‘get it’ sometimes. But what I realised is that, as the above graph shows, different people learn at different speeds. As an extension of that, different people learn better from different resources. Some people may learn better from just brute-forcing a problem. Others may need hand-holding and a walkthrough of the problem several times before they finally understand.
I don’t know what the “correct” answer is to this problem. Do you maintain the status quo and let Yellow keep asking questions, day in and day out and hope that, over time, there is actually something to show for it; that they actually reach a higher form of competency? Or do you encourage them (perhaps forcefully so) to look into other means of improving their knowledge in the field? I just don’t know.
WDYT, Lobsters?
If somebody has been entering a chat channel almost every day for 18 months and has still not absorbed knowledge that is (for all intents and purposes) being entirely handed to them from others, they should be seeking out other forms of learning if not abandoning the subject altogether. People need to be able to recognize when they are not picking up on something, whether this is programming or any other hobby/line of work. This is not to say that this person is dumb or stupid, merely that Rails (and perhaps programming altogether) is probably not for them. Should they be advised forcefully via a kickban from #rubyonrails? Probably not. But at this point, I wouldn’t be afraid to be blunt with them. Tell them that they clearly are not picking up on the topic and suggest they try out another activity that they’ve been wanting to do.
I would lean more heavily on the “they clearly aren’t learning in a format that is best for them” response.
I agree that helping them realize their limitations is important to convey using verbiage that’s sensitive to their feelings is important. In a high number of cases, it takes a bit more directness to properly explain to the individual that they should look for even more fruitful outlets with which to better expand their knowledge.
I don’t think bans are necessary unless offense has been aggrieved in an intentional way by the foreveranoob. I feel like sometimes we lose the chance to have great interactions with wonderful people because of the medium we use doesn’t really speak well to the way they communicate when put in the situation they find themselves in.
We, the regulars of #rubyonrails and other community outlets, should do our bests to distinguish between being a catalyst for issues and being knowledgable helpers. Being cognizant of people’s individual learning tools and doing our best to work with them when possible is valuable, even if sometimes not feasible.
A simple story for non-empirical evidence. An individual who had been working in a framework that my community finds distasteful had come into the channel and wanted to understand some things about rails. She got a little frustrated at the situation, and I decided to give her a few ‘tough love’ comments. She took them rather well, sometimes people do and don’t, and it made her more driven to find her answers. I didn’t hand them to her, I didn’t hide them, I just gave her enough information to enable her to look deeper with a bit more clarity. She needed to know what to look for, not the answer, nor did she need someone to deride her chosen path for achieving her goal at the time.
Today, she’s a really great friend of mine, also a helper in our channel, and a very enjoyable rubyist. (She quit .NET and works as a rubyist by day now.) Happy endings for all.
[Comment removed by author]
It’s hard to make this claim without knowing how the Reds in the channel are helping the Yellows. They could, by all means, be merely providing help in arriving at the answer before becoming eventually frustrated and just giving up either by moving on or providing the answer. As a member of the channel, I can confirm that this usually happens.
I think this boils down to a simple problem: it’s relatively easy to give someone an answer, it’s much harder to help someone build the critical thinking skills to come up with their own answer.
There is a short feedback loop involved with giving someone an answer. They ask, you answer, they say “Ahhh”, you say “Yeah!”, they’re happy you have a solution, you’re glad you could provide one and you feel good about yourself.
Helping someone build lasting knowledge and research techniques is a tedious process, it has a long feedback look at it can help generate the kind of knowledge growth you describe Ryan… after a while.
You’re correct that IRC (or IM in general) is not the best place for that kind of learning. This is the realm of mentorships, where meatspace usually dominates, but where some recent attempts have been made to find online solutions:
| In IRC-land, Red only has so much patience to help Yellow in their quest for learning.
This speaks to me of a problem with some IRC users more than a problem with Red and Yellow.
Do you know Yellow people personally? What are their goals in learning Ruby or Rails or insert-technology-du-jour? Are they trying to get a programming job? Are they just dabbling in their spare time?
Context, here, seems key. For lack of context, I would leave Yellow well enough alone and/or help as I can.
This is why most oldschool newsgroups and irc channels used to tell people that they aren’t going to get answers there that show up on the first page of search results when you enter your question into google. I remember getting booted from #java on dalnet many years ago for answering a super basic question on exceptions, when I asked why the response was that they didn’t want it turning into what you describe here. I know nowadays everything is super newbie friendly, but by supporting those kinds of people you aren’t doing them any favours (in the long run), and the time you sink into them can be spent exploring more interesting problems.
It’s like any free social service, there will be people who exploit it and aren’t getting the intended benefit of the service.
It’s difficult to apply contraints, to limit the exploitation, because that may negatively affect or scare away people with genuine need.
Time invested in regulating the people could have been better spent helping the people. The new power of regulation causes corruption. It becomes difficult to get new moderators because they have to be thoroughly vetted to prevent corruption, etc, etc.
/libertarian bias
Amy Hoy described them as help vampires.
My standard response has been to start answering questions with things like “What have you tried so far?” and “Why didn’t that work?” Very infrequently it prompts critical thinking and self-improvement, which is nice. My only other answer is to disengage.
I think at a certain point the more experienced ‘answerers’ should move on and simply help others in the channel. I find that teaching can be a good learning experience in itself so let some of the more advanced beginners help these less advanced beginners.
It’s win-win, the advanced beginners gain more confidence and skill through teaching, the less advanced beginners get some help without monopolizing the advanced user’s time.
[Comment removed by author]