Getting Programming Help

Found this on https://www.reddit.com/r/emberjs:

http://ember.zone/how-to-increase-your-chances-of-getting-help-on-emberjs/

It talks a bit about how to get help in the Ember IRC channel, and it applies to a lot of programming help in general. The gist of it is don't use GitHub gists, or pastebin, etc. You have much better odds if you use something like JSBin or JSFiddle to make a running example that isolates your problem.

People who would like to help can do so with a minimum of fuss, because they can see all the relevant code and execute it. These services also generally allow you to make forks painlessly.

As someone who makes a point of helping out in the Ember IRC channel (I'm Dafe in there. Feel free to say hi), this is a big deal to me.

I like to help, but I don't have unlimited time and focus to do so. When you need help with a small concept in your app, I don't have time to clone the whole thing and sort through the boilerplate and unrelated working stuff to try to find your issue. That's your job when you're asking for help.

It's not fair to me, and my time, as someone who's trying to help you, and it's not fair to the other people who need help, too. I can only think of 3 people who are really regularly helping people in Ember's IRC channel, with 382 members at the time I write this.


Why I Help

To be clear, I like to help. I have my IRC client ping me whenever it sees a question mark, or my handle. I will sometimes spend more time in a day helping people with their problems than I will working on my own stuff.

It helps the community, by getting people over that first tough hurdle. Ember has a pretty rough learning curve, on account of it having such a large scope. When I see the same questions a lot, it helps to identify parts of the documentation that need work, that I can touch up and submit a pull request for.

It also helps me solidify my foundation by working on a wide variety of problems I might not run into in my own work. The more I help, the better I get at it, and the less I need help myself. This puts me in a tough spot sometimes, because when I need help, the number of people I can seek help from is much smaller, and I usually have to stumble through it on my own. But there are worse problems to have than being more advanced than most people at something.


Outside of very simple cases where I generally just link to some part of the docs, I'm always asking people to try to isolate their problem in a JSBin.

Ember is a complicated framework, and it's hard for me to run your pasted or described code in my imagination.

If you're asking for help, and you're unwilling to take that step trying to isolate it, it's a sign to me that it's not going to be worth my time trying to help, because you really just want me to do your work for you, instead of letting me guide you to learn to do it yourself.


I also am much more likely to help if you describe your problem in concrete terms. e.g. "I have a blog post, and it has a bunch of comments, and I want it to display the comments sorted by date underneath the post." As opposed to, "I have foo and it has many baz and I want to put baz in a certain order".

Usually, it's less clear than that. People will ask about how to ensure that bazs are saved in a certain order, when they're really talking about a playlist track ordering, and what they really need is another join table and model.

I find that it's much less likely that you'll run into XY Problems when you use concrete terms, and that saves everyone time.

I hate XY problems, and actively steer people toward describing their problems in context, before I even attempt to answer their questions, because I've wasted so much time helping people with the wrong questions.


Ultimately, if you want help, in programming, in Ember, really just in general, do your part. Be considerate of the people you're asking, and make it easy for them to help you, and they'll be glad to do it. Say thanks, and then pay it forward.

If I help you with a beginner problem, and you advance past being a beginner, now you can help people with beginner problems, and I'm more free to help people closer to my level. It's how you build a community that reinforces itself.

>