14

I asked a question that apparently offended a number of c++ programmers, and made me realize that there are some things I didn't know about C++. Here is a link:

How do you program safely outside of a managed code environment?

Unless I am free to express some ignorance, how am I supposed to ask a question (any question)?

To be clear, I'm not upset about this, and I welcome the comments and answers. But I do notice that some questions do not get answered, or are treated with disdain by the community, because the question is perceived as an ignorant one. Is this an "I'm superior to you" attitude?

3
  • 4
    Sorry but you don't remove the question ("no longer relevant") when you get the answer you're looking for. That's not how it works here. You asked a question. You got an answer. Others may have that same question.
    – cletus
    Commented Dec 1, 2009 at 6:01
  • @cletus, whatever. You overwrote my question while I was in the process of editing it anyway, so I guess we'll never know. Check the edit history.
    – user102937
    Commented Dec 1, 2009 at 15:42
  • You are absolutely allowed. Look at this old-dated beginner question: stackoverflow.com/questions/12051/… :)
    – Larry
    Commented Mar 24, 2014 at 13:15

10 Answers 10

18

I think ignorance is perfectly acceptable, the key is phrasing your question well. Your question as initially asked contained some phrases that I would expect could be quite off-putting to some people. For example, "diehard who still programs in C or C++, without the modern benefits", seems have assumptions built in that the "modern" way is "better", "safer" and "easier". As the question sits now "someone who programs in C or C++, without the managed-language benefits" I think it reads a little more neutral, more like you're honestly attempting to understand, and less like you're trying to insult the language(s) that the people who are qualified to answer your question must know and probably use regularly.

In essence what I'm trying to say is, if you're ignorant about a topic and going to ask others who are less ignorant for help, its certainly a good idea not to offend or attack them, and probably good to approach the situation with some humility and respect.

2
  • It had not occurred to me that some of the problems that managed languages solve had also been solved in c++ with libraries.
    – user102937
    Commented Oct 7, 2009 at 15:50
  • 1
    @Robert Harvey: Judging by some of your comments, you didn't realize that the C++ way could possibly be superior in some respects even after reading the question. Commented Oct 22, 2009 at 18:11
7

I'm OK with ignorance as long as you know you're ignorant, and can demonstrate to me that you know you're ignorant.

Because of that fact that incompetent people don't know they're incompetent, I know I and a lot of others will be a lot more helpful if you can demonstrate that you know you don't know what you're talking about. If you don't demonstrate this, a lot of people will just assume you're some pompous douchebag who thinks he knows everything but whose code winds up on the Daily WTF.

Does that make sense? Make it clear that you don't know much about the subject and that you're looking for enough information to know what you don't know.

8
  • I didn't know I was ignorant. I guess that means I shouldn't have asked the question.
    – user102937
    Commented Oct 7, 2009 at 15:32
  • 7
    I guess not. It's not your fault, though. When you lack too much knowledge, you also lack the knowledge that you lack the knowledge. That's just how humans are. Anyone who blames you for it is a dick. The important thing is that you know now that you you're missing a lot of information. That means you're learning, which is what the site is all about.
    – Welbog
    Commented Oct 7, 2009 at 15:35
  • @Welbog: this is common. The more you know, the more you realise how little you really know. Therefore, only morons think they know everything.
    – perbert
    Commented Oct 7, 2009 at 15:39
  • @voyager: Qui est Weblog?
    – Welbog
    Commented Oct 7, 2009 at 15:45
  • 7
    Welbog, it is going to take more than a dorky little mustache and a fake accent to fool us. We're trained observers. Commented Oct 7, 2009 at 15:55
  • 2
    Theese french, always rude when you talk to them in english.
    – perbert
    Commented Oct 7, 2009 at 15:56
  • 3
    You don't frighten us, English pig dogs. Go and boil your bottoms, you sons of a silly person. I blow my nose at you, so-called "Arthur King," you and all your silly English K-nig-hts.
    – perbert
    Commented Oct 7, 2009 at 15:57
  • 1
    If you realize that you aren't as wise today as you thought you were yesterday, you're wiser today.
    – Ether
    Commented Oct 21, 2009 at 22:55
6

I do notice that some questions do not get answered, or are treated with disdain by the community, because the question is perceived as an ignorant one. Is this an "I'm superior to you" attitude?

It's a, "wow, people really think that way?" attitude. Such as you might express upon encountering someone who honestly believes Disney Land is the happiest place on earth, or that every last drop of coffee in a cup of Maxwell House is good. Incredulity, mixed with a little bit of suspicion that you're being led on...

When things go well, when the asker is honest, humble, and doesn't try to cling too tightly to his preconceived notions, both sides learn something new, about each other, and about the subject at hand.

When things go badly, the asker gets labeled a troll or a shill and beaten soundly for it (and then up-voted to the sky, since that's just how SO works...)

5

I've noticed that when you're asking a question about a programming language, it pays avoid any emotionally laden terms at all.

It's like religion - you wouldn't start off a question about Christianity by saying, "If you are a diehard Christian who still believes in a monothestic god, how do you make sure that your soul is saved?" Well you might start off a question that way, but I cringe to think of the sort of anger you'd get back in the responses!

Things go better if you use neutral language. For example: "I have a question for practicing Christians. How do you make sure on a day to day basis that your soul is saved?" Something like that would (hopefully) trigger less of an emotional response, which is usually really healthy for the discussion.

In addition, it helps to start off by telling everyone that you're just getting started learning about the category. Everyone is nicer to a newbie... we've all been there.

So in conclusion:

  • Avoid emotionally laden language
  • Use neutral language
  • Admit that you're a newbie, and ask for help.

Good luck!!

4

It seems to me that there are (at least) two distinct types of ignorance at play here. Technical ignorance, and flamewar ignorance. When you are in an area where there are religious beliefs at play, it is a lot easier to set people off.

Some people really hate .NET and the CLR. Some people really hate .NET and the CLR and Java. Other people hate plain old C and C++. Nearly everyone has an opinion, and many people have, well, strong opinions.

Questions that seem to indicate a position in one of these wars are a bit like a red flag in front of a herd of bulls. If people think that you are a partisan, they will return the favor with interest.

If you post a question that says, "Gosh, I don't know much about plain old C++, I've only ever used managed code, can anyone tell me how to address ...," I doubt you'd get much guff.

In other words, if there is already a giant global pissing contest in process, it's hard to avoid getting wet.

3

You are free to be ignorant. Everyone is.

C++ programmers are free to be offended.

It has been proven here on meta that you can get offended by anything :)

In that question in particular, I think that they felt that you were saying something akin to your tools sucks, what extra work do you have to do to make sure your apps don't suck too much.

Just try to be a non-confrontational ignorant at all times :)

3
  • I'm offended by how unFrench you are.
    – Welbog
    Commented Oct 7, 2009 at 15:28
  • That C++ has many of the tools that managed languages have (in the form of libraries) was something that I was not aware of.
    – user102937
    Commented Oct 7, 2009 at 15:30
  • 2
    @Robert Harvey: Don't forget that all of those wonderful, modern--and the are wonderful, but not always as modern as you might think--conveniences were originally developed using tools like (or sometimes more primitive than) c++. By implication you *can provide that kind of support in c++, it is just not standard. Thus the libraries. Commented Oct 7, 2009 at 15:45
3

There are four sorts of men: 
He who knows not and knows not he knows not: he is a fool — shun him; 
He who knows not and knows he knows not: he is simple — teach him; 
He who knows and knows not he knows: he is asleep — wake him; 
He who knows and knows he knows: he is wise — follow him.

                                                       Arabian proverb

See Reasoning about Knowledge, an excellent book.

3
  • It's a nice-sounding proverb. However, I don't shun ignorant people unless they demonstrate that they want to remain ignorant.
    – user102937
    Commented Oct 23, 2009 at 20:15
  • 1
    But if they do not want to remain ignorant, they must, by implication, know that they know not and therefore open to being taught and not deserving of being shunned. Commented Oct 24, 2009 at 1:05
  • Wow - one more category than Donald Rumsfeld's categorizations! Commented Jul 14, 2010 at 13:56
2

It's all right to be ignorant. We all start that way, and we're all ignorant about a tremendous number of things (not all the same things). We all know how we do things, and sometimes wonder how other people do those things, even when they do them differently.

What you need is a little humility about being ignorant. When you're ignorant, ask questions in a more neutral manner. Remember that, when you're ignorant, there are things you don't know, and one of them is whether how you do things is in fact the best way. When you're answered, don't pick apart the answers from your point of view, but rather try to understand the other point of view.

For example, you were told that smart pointers and RAII make resource handling uniform in C++, after which you maintained that resources other than memory were a red herring because there were different techniques in C# (the "using" statement) and other languages. You did not seem to think that memory handling was a red herring in C++ because of smart pointers. In fact, garbage collection as usually practiced is often better memory management than smart pointers, but uniform treatment of resources has advantages, and it's good to be able to put deallocation code in one place (the class definition) and not have to remember to put it in every time you use the class. Both approaches have advantages.

It read like the typical Usenet language war: "My language is better than yours because I can do A by using B in mine, and I don't know how you'd do A in yours." I came to despise such flamefests and the flamers too.

Your question was edited to be reasonable: "I know how I do this: how do you do it?" in essence. You can take it as a model. Your comments were ill-considered, or perhaps unconsidered. If you ask for enlightenment, try to understand it. When other people are trying to give you good answers, realize this and try to learn.

If you think other people are giving you an "I'm superior to you" attitude in a technical forum, consider for a moment that you may be doing the same, or that they may have some justification. You'll learn a lot more that way.

1
  • I don't mind being corrected if I'm wrong, but I can't help it if people get offended. I found great value in the discussion. Anyway, in spite of my efforts to sanitize the question, I got downvoted again today, so I marked the question Community Wiki and voted to close it as no longer relevant. If anyone is still offended, they can do the same.
    – user102937
    Commented Oct 22, 2009 at 23:38
0

Something that the other posters have neglected to mention as yet is that a stead trickle (or stream, or sometime geyser) of questions founded on ignorance or misunderstanding is part and parcel of help environments that cater to (or allow) beginners.

The problem is that when you've explained a basic concept a couple of times, and voted up other explanations over and over again, it is easy to become impatient. One can start to think "I _already_ explained that! Why the hell don't you look it up or use google or something???" which may or may not be fair. Certainly they haven't explained it to you yet, and some topics are hard to search for. But the frustration is natural.

I try, when I start to feel that way, to not write any response. Not even a comment. Because I won't be able to be helpful. But I can see where they are coming from.

Oh, and I agree with some of the other folks here that you framing of the question left much to be desired.

0

It is ok to have some ignorance. You are trying to learn and know more so you are not ignorant. Just make sure to be respectful and word the question to the best of your knowledge.

Unfortunately, some people forget the reason/purpose of the SO site and are not always so pleasant to less informed people.