Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 158 Stack Exchange communities.

What is meta?
Here's how it works:
  1. Any Stack Exchange user can ask a question
  2. The community provides support, votes on ideas, and reports bugs
  3. Your voice helps shape the way Stack Exchange operates

Inspired by this post and its comments. It seems to me that there is some fashion here at SO that prefers 'please-debug-my-poor-code' questions over 'what-would-be-the-best-algorithm-to-do-this'? I don't understand this SO fashion as I find the second group of questions much more interesting. What's wrong with asking for an algorithm? Why the asker should first try 'something' (probably broken) if he doesn't know at all where and how to start?

"Show some effort" - I hear that... this is good rule, but in this case it breaks good practices for software development - first, design a good algorithm and then start coding. There might be problems quite difficult to grasp where you don't know where and how to begin with the algorithm design. So I find this kind of question absolutely legitimate - it might give a good direction to the asker, which could be one of good purposes of this site.

I found the algorithm questions much more interesting than "please-debug-my-poor-long-code" questions. They are more general and interesting to wide group of people. I'd prefer to focus on how to reduce the second group of questions. This would follow a good programming practice.

What do you think? Can opponents explain their opinion?

edit: note that the question mentioned was now closed as 'not a real question', which is more than absurd, because the question was defined well! It sounds like either:
1) SO redefines the english word "question", or
2) SO people think that question without solution proposal is not real
3) censorship.

share|improve this question
There is nothing to be considered "good programming practice" about "write my algorithm for me plz" questions. Perhaps if you spent less time worrying about "good programming practice" and more time thinking about your problem, you could come up with a solution. When people say "show some effort" they don't necessarily mean "post code". They mean "share with us your thoughts so far". – Cody Gray Aug 9 '11 at 10:49
@Cody Gray: well, it wasn't my problem, mostly I reply to problems of others - and I wrote my opinion from this point of view. – Tomas Aug 9 '11 at 11:00
Do you have any examples of a practical algorithm question that has been closed as OT? If you see a question which is asking for an algorithm to solve a practical problem which includes programming specific information (like language/framework) then flag it to be reopened. These are on topic (if they aren't low quality). – Won't Aug 9 '11 at 12:23

If you are asking a question about a problem with an algorithm as opposed to a problem in code then Programmers is the site you want. From our FAQ:

Programmers - Stack Exchange is for expert programmers who are interested in conceptual questions on software development.

This can include topics such as:

  • Software engineering
  • Developer testing
  • Algorithm and data structure concepts ...

Jeff has repeatedly said that that we're for the whiteboard phase.

However, don't post a question asking for an algorithm - that's just as bad as "plz send me the codez" on Stack Overflow. You still have to show what research you've already done.

share|improve this answer
well, I don't post much questions, I mostly like to reply to problems of others... but still I cannot see anything wrong with asking for an algorithm. There might be problems really difficult to grasp where you don't know where and how to begin. So I find this kind of question absolutely legitimate - it might give a good direction to the asker, which could be one of good purposes of this site. – Tomas Aug 9 '11 at 11:04
Well, actual algorithms are on topic on SO, whereas algorithm concepts are on topic at p.SE – Won't Aug 9 '11 at 12:21

I think you're confusing the rare "I've got a difficult problem, I've made some preliminary steps, could you help me solidify my algorithm", with the more common "In my last question, those who responded were not amenable to giving me code, so this time I'll try the side entrance."

The question you cited, I admit, is one step closer to the former, than the latter. The problem is, as ChrisF has pointed out, the more hypothetical questions tend to be possible candidates for Programmers.SE. Without a concrete problem to solve, it's outside of the practical, answerable questions based on actual problems that you face stipulation that is in the faq.

share|improve this answer
"Without a concrete problem to solve ..." ... that's a different thing. The problem must be defined clearly - I absolutely agree, there's no discussion about it. But even if you specify the problem well there will always be more than 1 algorithm to solve it - but is there antyhing wrong about it? – Tomas Aug 9 '11 at 11:11
@Tomas To me, if it's just a "give the me the algorithm", I would be leaning towards voting to close as "Not a real question". Whether the problem is concrete is debatable, but when you're tossing around ideas, the problem is definitely not concrete (aside from that, it's a discussion and is more like a forum than a Q/A site). – jonsca Aug 9 '11 at 11:16
Bonus points if they simply link to the last question without even bothering to re-explain their problem. – Cody Gray Aug 9 '11 at 12:15

You must log in to answer this question.

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