Jeff: Stackoverflow is really for the elite developers in my opinion
Joel: agreed

So here you go. If you are here because you read one or both of those blogs, I bow before your awesomeness.
You are an elite programmer.
[Humor inside of course, both from Jeff in his podcast, and from me for this topic, do not take this seriously ;)]

You can talk the talk (and spray some quick answers with a few links, a wikipedia reference and some thoughts, for quick rep' gains)

a bounty system (should it be implemented) where some user must forfeit some rep' point in the hope of an answer. The kind of questions concerned by bounties are not the same concerned by a 'code-challenge': not every 'hard' question can be solved by some source code.

A code-challenge is:
A complete source code, which can be copy-pasted and executed, and which answers precisely a practical question (and not a theoretical mind-game problem).
The goal can also be to answer it in as many languages as possible, both for the fun of it, and because all users may have the same problem on different development platforms.

Even if a question is not originally a code-challenge, the fact that a well-written script can help to obtain the exact expected output makes it eligible for a 'code-challenge' tag, and a worthy exercise for all of you 'elite coders' out there ;)

How to set up a code challenge ?"

the user asking a question can tag his with a 'code-challenge'. He must then edit his question in order to have the clearest specification possible

any user with enough rep (750) can re-tag a question 'code-challenge', add a community answer with some specifications clarifications, and then add one or several answers, provided those contain executable code that gives precisely the expected output

They are also some more challenging questions like "Program to analyze a lot of XMLs", which has actually a very good answer in xlst, but again frustrating as it is not a directly executable answer which would precisely solve the user's problem.

The key to counter Fastest Gun in the West phenomena is throughlong term question status management:The question can not expect any kind of attention inthe long run *if its status somehow does not change (with the right incentive in term of rep' points and badges, of course)*

a bounty system is a first example where the status change: the asker indicates that from now on (status change), he will forfeit x rep' points in term of a validation he would validate.

Joel mentioned another possible status change, in the podcast 24: a "still here" status, to indicate that the asker (him again) is still around to potentially validate and accept an answer!

But here lies the true problem of StackOverflow, the one preventing its "Wikipedia dimension" to really flourish: once the asker does not monitoring anymore a question with:

no answer

no satisfactory answer

an accepted answer but which is false or now obsolete

there is really no incentive left to change/complete/modify the answers to that question...

"code-challenge" is an example of "status change" where users can take charge of the question (even if the asker is long gone) and challenge other users, and have some points/badges in exchange. Plus, it is a win-win process for all users involved, as opposed to a bounty where the asker must still be around and accept to loose points.

This is certainly not the unique solution, since the number of questions concerned by such a process is quite small, but still, the status of a question over a long period of time need to be addressed if the information stored in StackOverflow has the ambition to remain some kind of reference.

... Why not, but what's in it for me, elite programer ?

For now... nothing more than the usual rep' points system. And the satisfaction to completely answer a user's problem.

Some points:

5 rep' points for the one setting up a code-challenge (provided any answer has at least 3 upvotes, and has been published AFTER the 'code-challenge' tag)

10 rep' points for someone posting an answer in a 'code-challenge' thread and having at least 3 upvotes

Some badges for the challenger:

a bronze badge 'Challenger' for anyone setting up a 'code-challenge' (and having at least one answer with three up-vote: you can not jsut tag some question and expect a badge)

a silver badge 'Defier' for anyone setting up 25 'code-challenge'

Some badges for the challengees:

a bronze badge 'Courageous' for anyone answering at least a code-challenge and getting three upvotes for his answer

a silver badge 'Tenacious' for anyone answering at least 10 code-challenge and getting three upvotes for his answer

a gold badge 'Elite' for anyone answering at least 50 code-challenge and getting three upvotes for his answer

All those new badges are not here just to add to your collection of shiny dots.
As Jeff said in podcast 18 around 25:30:

Jeff: You really have a hundred million active users? I don't think so. Well, if you go to the badge-page... you can see how many people have done certain thinks. That is actual activity, that is measurable activity in the system, right?
[...] The badges, in addition to being fun, actually tell you stuff about the system and also the user, right. Like how well do they know the system. If they have 10 bronze badges then they know it pretty well. So all this stuff is there for a reason. None of this stuff is there because I thought it would be, like fun to have a game.

So those badges are here for monitoring the activity centered around the coding questions, as opposed to the more general questions about programming.

Why monitor "coding" questions in the first place ?

Hopefully, that may help to re-visit some old questions and take them as 'exercise' in order to bring a complete solution for those questions where an algorithm is useful.

Coding is a sub-category of programming questions that SO is aiming at.

Some comments have raised the danger of "home-working questions" (students asking for an algo to solve their problems). Even though I am not convinced of that trend (they can ask right now anyway), the following criteria may help to keep any of that down:

only one week old question with no accepted answer would be eligible to a code-challenge

the reputation of the user asking the problem should be at a certain level (100? 200?) before tagging his/her question 'code-challenge', meaning: a minimum contribution to the site should have been made before.

Plus, as a non-automatic criteria, there should be a clear context of the question showing it is about getting a nudge, not about having the all assignment done for you.
Real homework questions like this one are detected and marked as homework anyway.

The goal is first and foremost to improve the quality of old coding questions with no precise answers.
That tag is just here to retrieve them more easily and to know that, amongst the ~2000 unanswered questions, they are 'special' in the sense they could be solved by a program.

I have set up a few code-challenges for you to play with (Just follow the 'code-challenge' tags).

This question came from our site for professional and enthusiast programmers. Votes, comments, and answers are locked due to the question being closed here, but it may be eligible for editing and reopening on the site where it originated.

This question appears to be off-topic. The users who voted to close gave this specific reason:

"This question pertains only to a specific site in the Stack Exchange Network. Questions on Meta Stack Exchange should pertain to our network or software that drives it as a whole, within the guidelines defined in the help center. You should ask this question on the meta site where your concern originated." – random, nicael, Martijn Pieters, Shadow Wizard, Dronehinge

Nice idea. Hope this helps to get real great and useful answers.
–
GamecatOct 5 '08 at 16:53

1

That's the goal. If you do see some questions that could be solved with an algorithm, add a community answer specifying the details of that challenge, and add a 'code-challenge' tag. You do not have to answer it yourself, just leave some tags for other to play with.
–
VonCOct 5 '08 at 17:16

How does this not become "Homework Challenge"?
–
Will HartungOct 5 '08 at 17:50

1

Because an homework is a task assigned to you. Nothing is 'assigned' here. You can even setup a 'code-challenge' and not answer it, but simply help other to find those specific questions where their script-writing skills may do some good.
–
VonCOct 5 '08 at 17:56

1

Nice idea, I'm not sure that it fits here though. Maybe a good idea for your own site?
–
KeithOct 5 '08 at 17:57

For SOF FAQ: "Programming questions [...] about programming. You know, with a computer.". It does fit here 100% in my opinion :) It is just a way to invite SOF readers to answer more thoroughly to some of the questions that can be illustrated by a script.
–
VonCOct 5 '08 at 18:10

These could be really usefull for topics that are commonly done such as searching, sorting, parsing all the like.
–
CoryMathewsOct 5 '08 at 18:13

I like this idea. I would love having a stackoverflow.googlecode.com repo for us to work on collaborative projects and "pair programming" death matches.
–
pookleblinkyOct 5 '08 at 18:13

To rephrase Will's comment, what's to stop a student from posting their homework here as a "code challenge" and then turning in the top response to the instructor, claiming is as their own work?
–
Dave SherohmanOct 5 '08 at 18:13

What stop them to do it right now ? Plus, worthy 'code-challenge' questions should be the ones with a context mentioning clearly a professional or personal issue, ... and since there is no real time-limit, just wait a week of too before answering it. If it is an Homework, it will be too late ;)
–
VonCOct 5 '08 at 18:22

Reminder, code-challenge often tags old questions with very few views. Those are the one which may benefit from this tag. As for the Homework issue, I do not believe a quick-written script can pass as a valid work to give back; some more work will always necessary
–
VonCOct 5 '08 at 18:25

In order to answer code-challenge questions on SOF, you have to search SOF for the answer. Hence, stack overflow. It worked.
–
Ilya RyzhenkovOct 5 '08 at 20:14

@MDCore I agree with you. I just do not think that would become such a source of quick-solution for Homework, anymore than other snippets code site. And again, any student can already try to get an answer from StackOverflow right now.
–
VonCOct 5 '08 at 20:48

I also view those questions as 'exercise': see my answer to the XML question; it was for me an exercise to learn ruby. And I can guarantee you: my answer will do the job... but it will not look amazing to any teacher. It is a ruby source coded as in java, which is bound to be pretty terrible ;)
–
VonCOct 5 '08 at 20:51

6 Answers
6

Neither Jeff nor Joel know what the hell they're talking about if they think this place is for "elite" programmers. The questions asked at stackoverflow are just as mundane as anything found on expert-sexchange, and they're kidding themselves if they think otherwise.

Obviously, the 'elite' term must be taken with all the appropriate sens of humor here (wink-wink). But this kind of tag may help to raise the bar of some of the answer for a certain kind of questions
–
VonCOct 5 '08 at 18:27

Agreed. Also, the crowd will get less and less "elite" as the site becomes more popular and we have the "eternal september" effect.
–
Sklivvz♦Oct 5 '08 at 18:30

1

Come on guys: relax. It is meant with some bit of humor here... I am just trying to bring another incentive for more complete answers. Ordinary coders are welcome too ;) (hey, I am an ordinary one myself, actually)
–
VonCOct 5 '08 at 18:35

1

Scary thing is, if you have even a shred of interest and curiosity in what is actually going on in code, you are automatically more l33t than 90% of all primates. As Jeff says, the mere fact of you <i>spending time</i> here puts you ahead. Read that on Phrack, so you know it can be trusted. :)
–
pookleblinkyOct 5 '08 at 18:44

There's a difference between "tough" and "obscure". I see many tough questions answered very wisely by many people. Obscure questions sometimes take time to get answers. Of course, on ANY site, the questions that appeal to the LCD are going to get the most answers. I don't think that's SO's fault.
–
Lucas OmanOct 6 '08 at 13:32

We thought that since you were here that it counted as elite now.
–
EchostormOct 8 '08 at 16:31

Does elite mean I can get more rep by posting my favourite webcomic but not for posting a long thought out discussion with code that compiles and use cases.

Or does it mean something else.

It would be nice if a lot of the questions on SoF actually got answered and that the really vaugue popular ones that get several hundred votes got archived into some kind of stack overflow out takes. Questions appealing to the lowest common denominator do much better on SoF than the really interesting technical questions, which will often never get answered.

It does mean "something else" ;) Actually, my proposal will not improve all questions, but at least will isolate some of them, which can be answered in a way that should appeal to the natural readers of this kind of site: CODING! :)
–
VonCOct 6 '08 at 11:57

time to end this "debate" and your answer is the only one which does make some sense
–
VonCOct 16 '08 at 14:58

3

The reality is that if you answer a popular "subjective" question when it first comes out. You will get a ton of rep. But if you answer a really hard core technical question, you may get no rep even if the answer is correct and is accepted....
–
CervoOct 22 '08 at 17:37

1

Also answering a hard core technical question sometimes takes quite a bit of work. But often these popular controversial subject questions can be answered with a 10 minute opinion and lead to big points. Part of the issue is more people view subjective questions than some obscure technical one.
–
CervoOct 22 '08 at 17:39

1

I find it really amusing that this snide comment is the one that has given me the most SO Rep...
–
Omar KoohejiFeb 27 '09 at 15:12

This is a good idea, in fact, I've even retagged one of my earlier questions as "code-challenge".
However, I'm a bit scared that something like this might result in a flood of "plz send me teh codez" kind of questions. The only way I see for that not to happen is introducing a bounty system.

Some criteria about the date of the question and the rep' level of the user can help to avoid the "flood'. And that should help to keep the bounty system separate from this: a code-challenge is supposed to be a win-win in term of rep' points.
–
VonCOct 8 '08 at 16:52

What part of "A code-challenge is not a Puzzle game" or "which answers precisely a practical question (and not a theoretical mind-game problem)." did you not get? This was an old question (Oct. 08, pre-bounty era) when the quality of the community (and its answers) was not always at the level it is today.
–
VonCJan 5 '10 at 6:24

What part of "A code-challenge is not a Puzzle game" or "which answers precisely a practical question (and not a theoretical mind-game problem)." did you not get? This was an old question (Oct. 08, pre-bounty era) when the quality of the community (and its answers) was not always at the level it is today.
–
VonCJan 5 '10 at 6:27

@VonC: Your intentions were noble, but I would expect this to degenerate quickly. And so now when I look at the 41 code-challenge questions on SO, most of them look like code golf. Your intentions might have been good, but it sure looks like the end result was more puzzle/teaser noise in the Q&A stream. Of the 41 code-challenge questions, I count 14 real questions (34%), 4 closed questions (10%), and by far the most popular one is 'write a hello world program as a palindrome'. So the end result is: 66% noise. But at least there's another convenient tag to hide!
–
Steven A. LoweJan 5 '10 at 16:10

Remember at the time of that question, there was less than 10 code-golf question (119 right now). I didn't even know (back then) about "code-golf"! Now, I find the quality of answers globally better than in those old times, so I suppose there is no real need of such a tag anymore. If you want to hide those tags, be my guest :)
–
VonCJan 5 '10 at 19:30