# Dealing With The “Drowning Programmer Syndrome”

Recently I've answered questions for users on the site whereupon answering the question, I discover much to my horror that they have managed to conceal a much greater lack of knowledge that it appeared that they had.

They are in over their depth and they are clutching at straws. Every piece of code that causes a compile or run-time error is a show stopper for them. The crux of the problem is that the person tries to implement your code snippet and point blank can't do it.

Here is a recent example

I don't want to appear elitist here - obviously we were all at that stage at some point. I think we do need to consider the issue though.

How do other other people on the site handle this? Should we tell people that they need to go back to the drawing board? Is there some mechanism for mentorship that we can offer? Should there be? Should I just be more disciplined and tell them to create another question to solve their next problem?

I want a way to deal with this, as it's bad for everyone at the moment - I'm not keen to answer questions that look like they might turn into this sort of time-suck and they end up with a ton of unanswered questions, probably turning them off using the site.

Any questions, comments welcome.

• Looking at your answer, I was curious what you were talking about, until I saw you had 22 comments. That's rough, dude. You were more patient than me because that is pushing way beyond the limit. – Programmable Medley Apr 17 '15 at 15:33
• If you see my last comment, you'll see I was getting past my limit... I couldn't take any more. – Caspar Harmer Apr 17 '15 at 18:28
• First of all, I gave you an up-vote to say to say, "sorry you had to go through that." Secondly, it sort of put a sour taste in my mouth that question you spend hours on, you'll get two up-votes on, but ones you spend maybe ten minutes tops on, gets like 6 up-votes. I've dealt with similar questions like this once or twice, mainly because I knew no one else was going to answer/ no one seemed to answer and it seemed like an interesting challenge. – Programmable Medley Apr 18 '15 at 8:04
• Just don't contribute to these sorts of queries. This is akin to the "plz-send-me-the-codez" thing. If it is any comfort, I have seen this time and again "on the job". – Pittsburgh DBA Apr 20 '15 at 18:18
• Yes, that's ultimately it eh. The ability to recognise a bad question and the discipline to just leave it. – Caspar Harmer Apr 20 '15 at 18:38

Personally, I try to have people break down their questions. I do that with the intend that smaller questions are easier to solve, but also because you get to see the most basic questions and real level of understanding someone has.

When people are trying to copy/paste code and try to make it work, I personally feel we need to break that down to for instance the following questions:

• How does a trigger work
• How can I use the documentation to my advantage
• How can I access objects and fields in apex

If people don't focus on the basics, they'll indeed drown or have a very hard time writing code. Some will manage, some won't, and a lot of bad production code is going to be written along the way. That is a risk to their organisation and data, and I do feel we have a role to play in guiding people here. By not answering them the code they hope to have, but by helping them understand. Step by step. We can help them write the functional things they want to build later on.

• I like that approach - this way, the person asking has a series of concise answered questions that they can use to build a full solution. And the person providing the answer doesn't feel they have to answer an endless series of questions just to get an accept on the original answer. – Caspar Harmer Apr 17 '15 at 7:36
• Firstly, lol at the 22 comments on that question and I agree with @Samuel. This is also an issue with the questions of the type "Test class issue" and "0 Code Coverage", which occur multiple times throughout the day. To be honest, I don't even look at those questions anymore, I just simply skip them. I am worried that pointing people back to school with put them off, and I really don't want to write test classes each time... I'm seeking for ideas how to deal with these sorts of questions – Boris Bachovski Apr 17 '15 at 11:53
• Yeah, I should have stopped way sooner. But I felt my answer was worthless until the asker got it all working. Perhaps it's just discipline - and asking the person to open a new question for new stuff - that will help address the problem. – Caspar Harmer Apr 18 '15 at 1:20

This is sadly a pretty ubiquitous problem in online help forums of all kinds -- as the popularity of the underlying technology and the membership of the community increases, the noise:signal ratio naturally does too.

What can we do? Well I personally am with @Bachovski in that I don't answer questions, or often even look at them, if the question points to a lack of basic research or understanding. As members of this community, each person should have their personal standards for the types of questions and question-askers they want to assist with.

I do think it's an important part of the membership - and mod's - jobs to assist people in learning what is an appropriate question, what's not, and how to get help here. Adding comments when questions are closed, asking for clarifications, and pointing out where people went wrong in the question they asked are all activities that help improve the quality of the community... but they're long-term, low-reward, boring activities and aren't ultimately likely to counteract the side effects of a community rapidly growing in popularity.

I'm much more likely to help out on a question multiple times when it's clear the person is trying to learn and is asking questions that show they've at least done a little research. A big part of the onus is on the asker to ask questions that get answers.

As community members, the best we can do is help people ask better questions when they're off base. There will also be lazy and uninformed people who pollute the community, but being a community that has standards around what types of questions get helpful answers also helps us in the long run. I have no qualms about down-voting questions and answers that show a lack of understanding of what we're trying to achieve here.

The problem is annoying because getting a higher noise:signal ratio in questions dramatically reduces community engagement. I specifically remember deciding to visit this site less to answer people when, on two consecutive days, I went through an entire page of new questions without finding a single question I wanted to answer. As a result, I've plummeted out of the top 10 answerers on the site.

Finally, bravo on your effort on that question you linked, you were WAY more patient than I would be. I don't generally answer questions where someone with a low rep score just posts verbatim VF/controller code, because it shows that they can't distill their question into just the part they need assistance with. In this person's case, they implied a chain of extremely basic questions: how do I get the ID of the current user? How do I get the ID of a Community User's Contact/Account based on their User ID? How do I write a SOQL query to get assets from an account/contact ID? How do I create a picklist and render that in VF, based on the results of such a query? How do I populate a reference to a selected record back to a new Case record? There are so many code examples and pieces of documentation for each of those questions that I would take their question as a sign of not being able to do simple research and ignore/downvote them.

I've wanted to weigh in on this but haven't taken the time due to the excellent answers by both @SamualDeRycke and @jkraybill.

Unfortunately, I think we're seeing this happen with increasing frequency. I've been sucked into some of these myself on more than one occasion. They're not always easy to recognize when it's a brand new user. We have users who've been around the community who've demonstrated their propensity to become energy vampires. Some will drain you dry, then never upvote or accept your answer, only to post again a few days later for more help on the same project they've yet to solve (and may never solve for that matter). We all know who they are and have learned to avoid them.

Like @jkraybill, I'm increasingly avoiding even trying to help people who just post code or a vague general question. I'll cast my vote to close it, then post a comment referring them to the appropriate documentation to help them learn the fundamentals they need to possess in order to figure it out for themselves. I'll add that it seems as though the quality and quantity of the documentation available from SF to help people learn the platform continues to increase significantly with every new release.

Now, if only people would learn to use Google or SE's own Search function...(sigh)

• I've started to add things that more explicitly state what I expect from the asker like this: "The key is: Simplify your code to just this functionality. Verify it works. Then add back. Do this before coming back with questions, as it's important to verify that this functionality is working." Hopefully this is helping somewhat. – Caspar Harmer Apr 28 '15 at 19:03
• There's no doubt that there's a rational method if not something of what you could call "an art" to troubleshooting coding problems. Much of that comes only with experience from going through the steps yourself. No child ever believes the stove is "hot" until they touch it and burn their fingers. With some things, there's no substitute for actual learning experiences. – crmprogdev Apr 28 '15 at 19:12

I have been increasingly flagging these questions as Too Broad or Off Topic. I think particularly under Off Topic this one is helpful:

Questions on problems in code you've written must describe the specific problem and include valid code to reproduce it. For help writing short, self-contained syntactically-valid examples, see: SSCCE.org

The links is actually pretty informative and might do some good. I think "Need Code Coverage" is not a specific enough problem to belong on our forum unless it is a really esoteric edge case and actually is SSCCE. Same goes for code dumps.

• Yeah, I pretty much just avoid the "My unit tests don't pass" questions for the same reason. Generally there are so many problems with the code that a succinct answer is not possible. – Caspar Harmer May 27 '15 at 21:31
• But I think as a trusted member, ignoring them is short-changing the community because we should work to remove the noise. And with such type of title, we have a pretty good guess it is in fact noise. – Adrian Larson May 27 '15 at 21:33
• That's true - I've probably been too passive in the past. This is definitely something for me to work on. And yes, having the site fill up with these sorts of questions does no-one any good. – Caspar Harmer May 27 '15 at 21:45
• If a question is too broad, do please also try to explain how the question could be made more specific. – Samuel De Rycke Jun 1 '15 at 10:05