As it stands, I code mostly as a fun thing I like to do (I work it into my day job where I can). It's something I really enjoy. I've got a shelf full of books and an interest in the esoteric. I'll like casually reading about lambda calculus and taking long walks on the beach, but when I run into something I can't figure out, I have a problem.
It's painful to even think about going to some irc channels or forums to ask for advice on something I'm writing, even when it's the most sensible thing to do. I just think about how exhausting it'll probably be to cut through the vitriolic responses and get to some useful information.
I'm typically not looking for a dissertation, even. What I'm usually looking for is "Here's what I'm writing. What am I doing wrong, and what resource/book/article could I read to best get a grip on this problem?"
I don't want to face the prospect of mental exhaustion for something I do for enjoyment.
I think language/framework evangelists usually know about this kind of thing. You never see them say "Yeah, the community is great and if you have any questions head on over to our IRC channel. They're super abrasive in there, but if you really slam your head against them, you'll probably get an answer!"
A fair number of the people in these communities that offer help are doing so to help those of us who have questions.
They can be annoying, abrasive and downright rude. If you are polite and persist most of the time you will get your answer. I went through this in the late '80s on the C/C++ forums on FIDOnet and RIME/RelayNet. I managed to persist (and get pissed off a number of times) and get most of my answers. To this day I see people from FIDOnet and RIME/RelayNet still answering questions on web forums, StackOverflow etc. Jerry Coffin is one of them and the man is a saint. Bob Stout of Snippets fame has been around forever as well. The advice I read from Joseph Carnage on RIME was some of the most valuable ever and has a lot to do with how well I turned out as a developer.
I guess what I'm getting to here is to grow some thicker skin and try not to take it all so personally. A fair number of the guys answering the questions have seen the same questions a million times and gone to the trouble to write the FAQs for C and C++ and are presumably tired of answering the same old questions. Put yourself in their place and see if your perspective changes.
For me, I don't think taking something personally is what is exhausting. I have my own propensity for verbal sparring and for trying to find the psychological upper hand. Once I get into it, I don't care about conversation or communication, just about feeling like I was the most strategic combatant. It turns into drawn out verbal warfare, and it's draining for me to resist the urge to get into those fights when I get a condescending response. I realize that places most (or a lot) of the blame on me, for the exhaustion, but there it is.
It helps a lot that there are places like Stack Overflow and that the web is just so damned big and accessible, these days. I can almost always find an answer on my own, so it's not usually worth investing in a forum to get answers.
The downside is I miss out on community and getting to know prolific figures or interacting with other programmers as much as I could, and that's definitely my loss.
I also miss out on the large number of generally decent folk, which sucks, and it's a big reason I've tried to make a few more comments on HN that I used to, in areas where I think I have something to say. Most of the time it's worth trying to open up the line of communication. I just try to balance risk versus reward.
Basically, I think I'm pretty capable of tolerating the negative responses that can pop up, but is it worth enduring them for what I would get out of it? In my current context, I'm not sure.
I personally think that I've picked up very useful "learning skills" because I have my own social reasons for answering technical questions without outside help. So maybe your exhaustion might also be a benefit for this reason.
I can get away with it because I don't have any deadlines or anything like that, really. I can just hammer away until I figure it out.
It's definitely been useful, though. And you're right; learning skills are still skills for sure.
I joined #C to ask for some help, but people were trying to get me to discover the solution on my own, which is well and fine if you want to learn, but at that point I just wanted the trivial fix (it was something about an incorrect type, it was a 1-line fix and anyone with C experience could see it).
I asked them if they could just tell me how to fix it, because it was late and it wasn't really a good time for me to learn C, but they said something about them not being my personal tutors or something, and then just refused to help and treated me like an idiot for not knowing C.
In the end I just left the channel with very high blood pressure and asked a friend on IM who told me the correct line, and that was it.
#C: not even once.
It sounds like #C has chosen as its mission to teach people the C programming language. To that end, they see it as a derailment of their existential purpose to help people who "just want the trivial fix." To them, it's rather like going to a math tutor with your homework and saying "I don't want to know how to do it, I just want the answer." Correctly or incorrectly, they think that helping you in the way that you ask won't teach you anything, and that it will ultimately hurt you on the final.
Even among communities whose mission is to help people with specific questions, like StackOverflow, the folks answering questions still require a certain amount of buy-in: evidence that you've thought about the question enough to understand precisely what the problem is, and evidence that the problem doesn't have an easily found solution on Google. Without that buy-in, the social environment they've set up will inevitably devolve until it's really difficult to separate the genuine difficulties that can be solved from the white noise of people asking the same question over and over.
So while I wouldn't defend the people in #C wholesale, and there may be plenty of vitriol there, a refusal to help when someone just wants a quick answer doesn't sound unreasonable, and in fact may be all that holds their community together.
Sure, but they didn't have to be dicks about it. They could have said "we don't want to tell you if it won't teach you anything" and I'd have left. Berating me wasn't very productive.
> fact probably could not do so without sacrificing a great deal.
It was a "you're using sprintf("%d") when you need sprintf("%u")" sort of thing. Not exactly that, but very easy.
> it's rather like going to a math tutor with your homework
Not really, given that I don't ever work with C. It's more like asking for help with a flat tire and having the person say "I will ask you questions until you figure out how to do it". Thanks, but I just want to get to my job interview on time.
> the folks answering questions still require a certain amount of buy-in
I had done all the debugging I could and narrowed it down to that specific line, but doing anything more would require reading a large amount of material (which I didn't know where to find) on the intricacies of the C standard/compiler/etc, so it wasn't like I just went in saying "help me I don't remember the for loop syntax".
> a refusal to help when someone just wants a quick answer doesn't sound unreasonable, and in fact may be all that holds their community together.
I doubt that's what holds a community together, and I agree that it's not unreasonable. However, the way they treated me was.
A lot of people show up in programming communities asking for help with their intro programming homework. Once you see a few dozen of those, it's understandable if your knee-jerk reaction is at least somewhat insulting.
I'm almost certain that this anecdote arises purely due to the structure of the forum in which the question was asked, and has very little bearing on the vitriol and malice (or lack thereof) present in the denizens of #C.
Refusing to provide direct answers is #programminglanguage in general, otherwise you can just be helping a stream of beggars.
- People get initiated into programmer culture pretty young, before they learn to stop being pretentious. They really like how meritocratic programmer culture is, but they get carried away with it the same way that people who say "gays should go to hell" or "the weak have no place in society" get carried away. And maybe some people never grow out of it because we've reached asshole critical mass and they find themselves surrounded by like-minded people; and because they're rewarded for technical merit even when they behave badly. The result is your typical Dickensian villainy.
- The meanest IRC channel that I know of, #C, is full of people who are honestly not very smart. Every time that I've patiently and kindly tried to teach someone - while the rest of the channel was busy being huge dicks to that person - I've regretted it because the person just wasn't able to absorb and synthesize information. I'd argue that you can't give a $5 dollars to every beggar, and some people should be firmly kept out of the community until they get better, so as to avoid harming the community in the long run. It's a tough situation, and handling it well is tough even for mature people. Being rude isn't an unreasonable tool if your goal is specifically to scare people away (and hopefully towards a more productive endeavor for them).
The point is that there are imperfect people on both sides of our social boundaries. But note that this is a very specific point, and rarely justifies the vitriol that comes out of people in #C.