Friction Between Programming Professionals and Beginners

March 4, 2016 at 7:43 am 11 comments

It’s not obvious that professional programmers are the best people to answer questions for beginners, yet that’s often recommended as a strategy for providing support to CS students when there are too few teachers.  The below article gathers some stories about user experience, and offers advice on how to make the interaction of programming professionals and beginners more successful.

Where is the most obvious place to ask a programming question? Stack Overflow.

Stack Overflow is a community of 4.7 million programmers, just like you, helping each other. Join them; it only takes a minute. Join the Stack Overflow community to: Ask programming questions, […] — Stack Overflow (the front page)

It sounds like exactly the right place to be. It even sounds friendly. But actually asking questions on Stack Overflow is often far from friendly, for a beginner programmer.

“I gave up programming after the last time I asked a question on StackOverflow.”commenter on reddit

Stack Overflow users ands moderators are quick to downvote and close questions, for a multitude of reasons. These reasons are often surprising to first-time users.

I’m going to pick on Stack Overflow as an example in this article, because it is the most obvious place to ask questions, but the same problems can be seen anywhere that beginners ask questions.

“I must have gone to a couple dozen IRC rooms, whatever online communities I could find. Everywhere I went people shat on me, and I never got an answer to a single question.”— commenter on reddit

Source: Friction Between Programming Professionals and Beginners – Programming for Beginners

Entry filed under: Uncategorized. Tags: , .

How we actually get to #CSforAll in the US: Jan Cuny wins SIGCSE Outstanding Contribution Award Notional Machines and Misconceptions in CS: Developing a Research Agenda at Dagstuhl

11 Comments Add your own

  • 1. Mark Ahrens  |  March 4, 2016 at 8:03 am

    I completely agree with this article’s premise….StackOverflow is not a great place for beginners to get their questions answered. I found the majority of SO users were smug and condescending and when I asked what I guess was a trivial question, I started to get downvoted. I ended up Googling answers and sometimes ended up on SO, rather than asking directly of the SO community itself.

  • 2. Raul Miller  |  March 4, 2016 at 8:22 am

    I agree with your premise, here.

    And, I imagine I have some insight into how this happens:

    First, for a variety of reasons, StackOverflow tries to minimize redundancy – people do not want to be spamming answers to the same questions over and over. Meanwhile, questions from people who do not yet understand concepts like “file” or “program” (for example) tend to require a good bit of conversation to address.

    Second, as a professional programmer, I am aware of many other professional programmers who I simply disagree with, on a variety of issues. I’m not sure how a beginner would get any benefit from our opposed points of view.

    Third, we all have a tendency to overgeneralize. Abstractions are useful tools, but only when they are used in the right contexts. And throwing millions of beginning programmers at StackOverflow is bound to create lots of not-useful contexts.

    And it’s not like any one person is going to have time to talk things through with millions of people.

    Also, we tend to remember (and talk about (and mis-remember)) the exceptional incidents, and we tend to take personally comments other people make (when they are, in turn, trying to deal with their own issues and tend to be barely aware of us). Speaking abstractly (and, thus, only sometimes relevantly), this is a recipe for a lot of hurt feelings and failures. Too much of that, and people move on to something else.

    Anyways, human social institutions tend to evolve in not-entirely-pleasant ways – even the most inviting and optimistic groups will eventually attract people who make things worse. To some degree, this can serve to protect the groups, though. So there’s that… Also everyone has some flaws and everyone has some positive aspects, so conversations about these issues tend to become muddled, quickly. (And I expect I am doing my own share of muddling, here…)

    It’s kind of amazing, actually, that anything gets done.

  • 3. Bonnie  |  March 4, 2016 at 8:34 am

    Stackoverflow is NOT a suitable resource for beginners, or even intermediate students! It is barely a resource for professionals, since the answers are often wrong, and even if correct, are usually written in some kind of terse code that takes forever to decipher. And the hostility – don’t even let me get started!

  • 4. gasstationwithoutpumps  |  March 4, 2016 at 4:40 pm

    I have found StackOverflow to be a very useful resource—not for asking questions but for finding the answers to questions. There are a few nasty commenters and quite a few less well-informed ones, but for the most part I’ve found a lot of good answers to questions through StackOverflow—things that would have been difficult or impossible to find through official documentation.

    I think that one thing that helps is to search first, and only ask a question if it hasn’t already been answered.

    It also helps that I’m not a beginner, and I can often tell when a commenter is uninformed. For a beginner, just phrasing a question so that it makes sense is very difficult, and judging the expertise of those who answer is nearly impossible.

  • 5. chaikens  |  March 5, 2016 at 11:18 am

    Teachers and professional programmers know that students would do best to figure out themselves assigned hw problems and even some self-chosen challenges. The pros who politely tell obvious students that, close the questions or even give snarky answers are exercising responsibility. I also agree Stack Exchange is effective only to people who know what they are doing and who are lucky; they will use other resources as well such as Google search and documentation.

    • 6. Mark Guzdial  |  March 5, 2016 at 12:30 pm

      Is that satire? Most beginners asking questions on Stack Overflow are end-user programmers, not students. Students need more worked examples than most teachers provide. No beginners deserve disrespect.

      • 7. chaikens  |  March 5, 2016 at 1:55 pm

        I didn’t realize most of the beginner questioners are end user programmers. Perhaps we might find better strategies to convince end user programmers that it is (sometimes) more worth their time to struggle with learning fundamental concepts than to seek a quick fix. This is problematic because end users are experts in their own disciplines, and may want (or afford!) to learn only the minimum of programming to get their task done, and it can be true that a quick fix is all they need. End users also might know or discover when it’s wise to hire a contractor or pay for tutoring from a consultant, or to buy software. I agree teachers should use more worked examples, but also should teach HOW to learn from them (trace, experiment, explain, identify where principles apply, not just read, copy fragments and memorize, etc.) And teachers should identify the kinds of problems to demand their students eventually solve themselves.

        End users seeking to script or customize a particular application might do better at a user group than Stack Overflow.

        Another resource for professional level worked examples is open
        source software, and it’s cool for teachers to adapt examples from that.

        • 8. Mark Guzdial  |  March 5, 2016 at 2:23 pm

          Could you say why you believe “Perhaps we might find better strategies to convince end user programmers that it is (sometimes) more worth their time to struggle with learning fundamental concepts than to seek a quick fix”? Intuition? Observations in your classroom? The Educational Psychology literature disagrees — see the paper from SIGCSE2016 keynoter John Sweller, Why Minimal Guidance During Instruction Does NotWork: An Analysis of the Failure of Constructivist, Discovery, Problem-Based, Experiential, and Inquiry-Based Teaching. It’s less efficient and less effective. It also privileges those who have had prior background and education.

          • 9. chaikens  |  March 5, 2016 at 5:02 pm

            It is my classroom experience that students struggle even when they are presented with what we try to make a complete and coherent exposition. I’m skeptical that minimal guidance helps (at least in foundational courses), am gratified research bears this out, and agree about the unfairness of minimal guidance. The challenge is to motivate the students to engage by re-treading the intellectual pathway we showed them, including examples of how the principles apply, and then working on increasingly novel problems. By struggle, I meant reproducing what was taught plus the usual frustration followed by success in programming. My own experience in taking or auditing courses, observing students, studying for reaseach and study advice I hear in colleagues’ classrooms courses convince me of the adage “There is no royal road to geometry.” The guidance provided to engaged classroom students is harder for end users to find.

            My point was that sometimes an end user (or a IT pro trying to use a new technology) would do better to study foundational material including doing the exercises (which could be texts in any format, MOOCs, or even a college course) than to seek a quick fix, although sometimes the quick fix is better. One experience that leads me to this was interviewing returning student advisees who decided that learning foundations in the classroom would help in their IT or programming careers.

  • […] Overflow is an often used resource by programmers today. It’s also a barrier to women entering computing. Here’s a blog post summarizing a recent study on why women find Stack Overflow so […]

  • 11. becomeawebdeveloperblog  |  September 23, 2016 at 7:46 am

    Reblogged this on Transformation Through Web Development and commented:
    I’ve found this phenomenon in other areas of IT, not only programming. The perception is that there is so much information out there, that most solutions can be found simply by Googling and that asking a question is lazy. Sometimes, though, it is better to have someone explain the solution. It can lead to better understanding and less wasted time than searching hours on end to the solution of a problem that others have solved.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Trackback this post  |  Subscribe to the comments via RSS Feed

Recent Posts

March 2016
« Feb   Apr »


Blog Stats

  • 1,270,243 hits

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 4,569 other followers

CS Teaching Tips

%d bloggers like this: