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.