I noticed that this question, "Teaching kids to program - how to teach syntax?" was closed a few days ago on the the grounds: "Questions seeking career or education advice are off topic on Programmers"

I always thought that the traditional understanding of "education advice" were questions such as "should I go to university and study computer science", i.e.. someone asking for advice on how or whether to proceed with his/her education. This is further reflected in the immediately following sentence in the close reason: "They are only meaningful to the asker and do not generate lasting value for the broader programming community."

In my mind, the question is clearly not only important to the asker because it's not tied to his specific situation. eaching kids how to program is becoming ever more popular and having a good way to teach something does not only apply to kids. Shouldn't we, as programmers, all care how we teach our craft?

Also looking at the the official scope of p.se, the question not qualify for any bullet point of the two "about" lists. The question also seems to fit pretty well into the "constructive subjective questions"

Looking at , I can see that there are closed and open teaching questions, among the open being In plain English, what is recursion? and What's a nice explanation for pointers?

To me, this seems inconsistent and I'm wondering on how to handle such questions in the future.


4 Answers 4


I think the questions that you have identified fall into two categories - those about explaining things to people we might encounter while working (non-technical managers, customers, developers who have not been exposed to a concept before) and teaching to people who can be perceived as students. I think these are very different types of questions.

I'm entirely convinced that questions about teaching people who have no background in software development how to develop software is off-topic. The Help Center describes Programmers as "a site for professional programmers who are interested in getting expert answers on conceptual questions about software development" (emphasis mine). This is not a community of teachers - generally we don't have expertise in teaching, understanding how people learn, how to effectively deliver content, developing course content, and other things that a professional educator would know. I wouldn't be surprised if some of our users have experience in teaching, mentoring, or related topics, but it's not at the core of our community.

As far as explaining technical content in plain English to people who have experience in the subject matter but not the particular content or to non-technical people are things that professionals have to do. I know that I've had to explain a bug and why it wasn't found in testing to customers before, and it's hard. I'm not ready to say that these are or should be on-topic, but it's easier to justify them as something that we, as a community, are likely to have experience in. I'm not going to say that they are on-topic - it's easily something that can be discussed. But given the current scope, it seems to be more likely to be on-topic.

To me, that's one of the most important criteria to know if a question is or is not on-topic. If it's not something that a typical professional working in software development has to deal with, it's likely to be off-topic.

  • 3
    Seems, it's "We don't like n00bs" also now :)
    – mlvljr
    Commented Apr 14, 2014 at 20:17
  • 4
    @mlvljr That's a very unfair characteristic. We always have been geared toward professionals, from day 1 of the site. And Stack Exchange has always been about building communities of knowledgeable people.
    – Thomas Owens Mod
    Commented Apr 14, 2014 at 20:51
  • Okay, okay, you must know better (I was referring to the older "we don't like fun" SE mem, which was popular around at the time of humorous questions extermination) :)
    – mlvljr
    Commented Apr 14, 2014 at 21:03
  • 1
    Don't most senior development positions include something like "mentor others" in the job description? I think a very high percentage of the users here have that type of expertise. I also think it is dangerous to think that experts in a field shouldn't be involved in figuring out how to teach others in that field. Yes, professional teachers are imperative but they can't do it without us.
    – Beth Lang
    Commented Apr 17, 2014 at 14:12
  • 1
    @BethWhitezel I can't speak for most, but even if it's not in the job description, it may be professionally relevant. Of course, if it's not unique to software development, it's off-topic here and should go to The Workplace. But for those are are on-topic here, that's why I differentiate between teaching someone with no experience (eg - your kids, your mother) and teaching or mentoring someone in a professional context (an intern, a junior developer, a non-developer on a cross-functional team).
    – Thomas Owens Mod
    Commented Apr 17, 2014 at 14:21
  • I respectfully disagree because the answer is different for different professions and so I think it has it's place here as a programming specific question. But that is what is great about SE. It's a community that can facilitate differing opinions and puts the power in the communities hand to figure out what will work for all of us.
    – Beth Lang
    Commented Apr 17, 2014 at 14:28
  • @BethWhitezel Maybe I wasn't clear. Questions about mentoring another professional are (most likely) on-topic here if and only if they are unique to software development. Questions about mentoring another professional that aren't unique to software development are off-topic and should probably go to The Workplace. Questions about things outside the professional workplace (like teaching your mother or your kid) are totally off-topic.
    – Thomas Owens Mod
    Commented Apr 17, 2014 at 14:33
  • I don't understand are you saying that questions about mentoring PM's, managers, netops, and support people are off topic? Or questions about teaching customers/users a little about programming is off topic?
    – Beth Lang
    Commented Apr 17, 2014 at 14:37
  • 1
    @BethWhitezel No. I'm saying that those questions, if they require the knowledge or experience of professional software developers, are on-topic and belong here.
    – Thomas Owens Mod
    Commented Apr 17, 2014 at 14:39

Well, 17 people thought the question was topical enough to upvote, 9 felt it was topical enough to answer, and 22 felt it was topical enough to upvote an answer. Then gnat runs his searches 2 years later, unilaterally decides it's off topic, which puts it into the review queue, where it's easy to find 4 other people to agree with him.

Meanwhile, those 17-22 people who thought the question was good have no idea it was closed. This happens so frequently that I run an SEDE query occasionally to catch these situations, and cast reopen votes.

So many of these closed questions go unscrutinized because they are not noticed, that eventually it becomes the status quo that these questions are off topic, even though no discussion to that effect actually took place, let alone a consensus being reached.

So we have a system where one person can easily find 4 backers to decide something is off topic, over the objections of 17-22 others who receive no notification. Does that make it truly off topic? I don't think you can honestly claim such, but that's the system as it is set up.

  • 1
    Upvotes are about usefulness and popularity - not topicality. Additionally, looking at the timeline one can see most of those were from August 2012 - and the site was different then it is in April of 2014 when it was closed.
    – user40980
    Commented Apr 17, 2014 at 17:06
  • I have to agree with you there. The ongoing tightening of what is on topic on this site is neither useful nor popular. Commented Apr 17, 2014 at 17:33
  • 2
    @KarlBielefeldt: Tightening the scope actually increased the traffic here. See meta.stackexchange.com/a/200144 Commented Apr 17, 2014 at 18:13
  • That was two years ago, @Robert. What's the excuse for continuing to tighten the scope further since then? Commented Apr 17, 2014 at 19:25
  • 2
    @KarlBielefeldt: The SE principles that encourage thoughtful, answerable questions that are interesting to the experts are well understood. Commented Apr 17, 2014 at 20:17
  • 2
    @KarlBielefeldt - the site is still growing. Not at the same rate as after things started to get cleaned up, but there's still steady growth. I dropped a copy of the image in chat along with a link to the reference site.
    – user53019
    Commented Apr 21, 2014 at 14:56

I disagree with the close reason of the question used as an example, but not the fact that it is closed. I would have closed the question as being too broad.

The problem with "How to teach X" question is that there is no generally accepted answer, which makes it impossible to tell for the other users which answer is right or best.

As an anecdote, my girlfriend is studying to become a teacher. On of her most frequent complaints is that the curriculum of her studies change every year, because someone has convinced the university administrators that their studies have shown that all the teaching techniques used over the past twenty years are rubbish and that all new teachers must learn their brand new shiny teaching technique.
So, even among professional teachers there is no consensus how to teach stuff.


My father taught me to program back in the days of old. He was a college chemistry lab director before he retired and had never taken a computer science class, nor was computer programming ever in his job description or duties. The point I want to make here is that he was never a computer professional, but he was an educator and able to teach me how to program.

Programmers.StackExchange is defined as:

Programmers Stack Exchange is a Q&A site for professionals and students in software development and related fields who are interested in getting expert answers on conceptual questions about software development.

Teaching a child how to program is in no way part of the scope of a professional or student answering questions about software development.

Asking about how to teach a child how about syntax (because the asker is a programmer) is no more on topic here than asking how to teach a child to balance a checkbook on The Workplace because the person asking is an accountant for some company.

As programmers, we are not at all necessarily skilled in pedagogy. There is a great deal of background necessary to be able to properly answer these questions that fall outside of the realm of programming (and even the explaining a topic at a conference - which would be too broad).

Consider the guidance given in Why was my question closed or down voted? which addresses the point that no two people (children in this case) are the same - nor are their instructors. Each question will either be excessively nuanced to that individual or be hopelessly broad trying to answer for everyone.

I will point to On "engineering" and teaching pointers. from chat where over the course of an hour and several hundred messages we worked through the how to teach pointers in C to an instructor who also helped guide us with the particulars for his class.

While we (professional programmers) do have experience that can be useful, the aspect of teaching it to non-programmers is not a good question for the main site, but often a good topic in chat where we can get at the particulars of what is being taught and the language and the level of the students. Those particulars make it a less than ideal main site question because it would involve could involve one question for each language and level of student understanding (and the cartesian product of the two).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .