What is meta? ×
Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 133 Stack Exchange communities.

[Edit: Old question - Oct. 08, pre-bounty - transfered from SO]

You heard it first from Jeff (podcast 19, around 28:00)

the audience of people that read Coding Horror and the audience of people that read Joel on Software are already fairly elite in the programmers.

And then again late September, in podcast 23 at 14:50:

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)

BUT CAN YOU WALK THE WALK ?

Enter the "code-challenge".


A code-challenge is not:

  • a Puzzle game, we are talking about practical problems here
  • 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

Why set up a code challenge ?

In the grand scheme of solving the "Solving the Fastest Gun in the West Problem", this may help.

I often notice simple questions like "How do I know if Windows has just recovered from a BSOD?" or "How do I find the install time and date of Windows?".
The answers are very shorts and just enough to offer a lead... and take some quick rep'!
But the user can not just "copy-paste" the proposed solution and check if it does solve his problem...

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.

Hopefully, when you set a code challenge, you will get an answer beginning with "I just love a challenge" ;)


How does that help solving the "Fastest Gun in the West" Problem ?

The key to counter Fastest Gun in the West phenomena is through long term question status management:
The question can not expect any kind of attention in the 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).

share

migration rejected from stackoverflow.com Sep 28 at 22:09

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.

closed as off-topic by random, nicael, Martijn Pieters, Shadow Wizard, Sompuperoo Sep 28 at 22:09

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, Sompuperoo
If this question can be reworded to fit the rules in the help center, please edit the question.

    
Nice idea. Hope this helps to get real great and useful answers. –  Gamecat Oct 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. –  VonC Oct 5 '08 at 17:16
    
How does this not become "Homework Challenge"? –  Will Hartung Oct 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. –  VonC Oct 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? –  Keith Oct 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. –  VonC Oct 5 '08 at 18:10
    
These could be really usefull for topics that are commonly done such as searching, sorting, parsing all the like. –  CoryMathews Oct 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. –  pookleblinky Oct 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 Sherohman Oct 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 ;) –  VonC Oct 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 –  VonC Oct 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 Ryzhenkov Oct 5 '08 at 20:14
    
Re Homework: My quickly-written could look like amazing work in solving a student's homework. Don't pooh-pooh the problem. –  MDCore Oct 5 '08 at 20:30
    
@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. –  VonC Oct 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 ;) –  VonC Oct 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.

share
    
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 –  VonC Oct 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. –  Ebenezer Sklivvze 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) –  VonC Oct 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. :) –  pookleblinky Oct 5 '08 at 18:44
3  
The tough questions get no answers, while "what's your favorite programming cartoon" gets hundreds. –  Robert S. Oct 5 '08 at 21:26
1  
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 Oman Oct 6 '08 at 13:32
    
We thought that since you were here that it counted as elite now. –  Echostorm Oct 8 '08 at 16:31
    
+1 For expert-sexchange –  Guillaume Massé Nov 15 '10 at 0:26

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.

share
    
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! :) –  VonC Oct 6 '08 at 11:57
    
time to end this "debate" and your answer is the only one which does make some sense –  VonC Oct 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.... –  Cervo Oct 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. –  Cervo Oct 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 Kooheji Feb 27 '09 at 15:12
if(you.ReadStackOverflow())
{
    you.Elite = true;
    you.AskBoss("Boss, I'm an elite programmer cuz I read StackOverflow.com, can I get a raise?");
    boss.Answers("bite me");
}
share
    
Shouldn't you be assigning true to you.Elite and not doing boolean evaluation? –  Chris Serra Oct 13 '08 at 19:51
    
Granted, that is a "code" challenge ;) Now, how about my proposition ? Upvoted ? Downvoted ? (reminder, this is a community wiki question, no karma involved) –  VonC Oct 13 '08 at 20:00
    
Thanks Crhis, corrected it ;) –  Ricardo Villamil Oct 22 '08 at 17:29
    
Damn it, now I screwed up your name, sorry, I rely too much on intellisense... –  Ricardo Villamil Oct 22 '08 at 17:30

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.

share
    
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. –  VonC Oct 8 '08 at 16:52

Some coders have problems ? And you are an elite programmer ? Show me ;)

Great question, I happen to have an answer for you, it kind of echos the way I felt when skimming through this question:

                            Linus Akesson presents:
                   The Game Of Life implemented in Brainf*ck 

       +>>++++[<++++>-]<[<++++++>-]+[<[>>>>+<<<<-]>>>>[<<<<+>>>>>>+<<-]<+
   +++[>++++++++<-]>.[-]<+++[>+++<-]>+[>>.+<<-]>>[-]<<<++[<+++++>-]<.<<[>>>>+
 <<<<-]>>>>[<<<<+>>>>>>+<<-]<<[>>>>.+<<<++++++++++[<[>>+<<-]>>[<<+>>>>>++++++++
 +++<<<-]<[>+<-]>[<+>>>>+<<<-]>>>[>>>>>>>>>>>>+>+<<     <<<<<<<<<<<-]>>>>>>>>>>
>>[-[>>>>+<<<<-]>[>>>>+<<<<-]>>>]>      >>[<<<+>>  >-    ]<<<[>>+>+<<<-]>[->[<<<
<+>>>>-]<[<<<  <+>      >>>-]<<<< ]<     ++++++  ++       +[>+++++<-]>>[<<+>>-]<
<[>---<-]>.[- ]         <<<<<<<<< <      <<<<<< <         -]++++++++++.[-]<-]>>>
>[-]<[-]+++++           +++[>++++        ++++<     -     ]>--.[-]<,----------[<+
>-]>>>>>>+<<<<< <     <[>+>>>>>+>[      -]<<<      <<   <<-]>++++++++++>>>>>[[-]
<<,<<<<<<<->>>> >    >>[<<<<+>>>>-]<<<<[>>>>+      >+<<<<<-]>>>>>----------[<<<<
<<<<+<[>>>>+<<<      <-]>>>>[<<<<+>>>>>>+<<-      ]>[>-<-]>++++++++++[>+++++++++
++<-]<<<<<<[>>>      >+<<<<-]>>>>[<<<<+>>>>>      >+<<-]>>>>[<<->>-]<<++++++++++
[>+<-]>[>>>>>>>      >>>>>+>+<<<<      <<<<<      <<<<-]>>> >>     >>>>>>>[-[>>>
>+<<<<-]>[>>>>       +<<<<-]>> >       ]>> >           [<< <        +>>>-]+<<<[>
>>-<<<-]>[->[<      <<<+>>>>-]         <[ <            < <           <+>>>>-]<<<
<]<<<<<<<<<<<, [    -]]>]>[-+++        ++               +    +++     ++[>+++++++
++++>+++++++++ +    +<<-]>[-[>>>      +<<<-      ]>>>[ <    <<+      >>>>>>>+>+<
<<<<-]>>>>[-[> >    >>+<<<<-]>[>      >>>+< <    <<-]> >    >]>      >>[<<<+>>>-
]<<<[>>+>+<<< -     ]>[->[<<<<+>      >>>-] <    [<<< <    +>>       >>-]<<<<]<<
<<<<<<[>>>+<< <     -]>>>[<<<+>>      >>>>> +    >+<< <             <<-]<<[>>+<<
-]>>[<<+>>>>>      >+>+<<<<<-]>>      >>[-[ >    >>>+ <            <<<-]>[>>>>+<
<<<-]>[>>>>+<      <<<-]>>]>>>[ -    ]<[>+< -    ]<[ -           [<<<<+>>>>-]<<<
<]<<<<<<<<]<<      <<<<<<<<++++ +    +++++  [   >+++ +    ++++++[<[>>+<<-]>>[<<+
>>>>>++++++++ +    ++<<<     -] <    [>+<- ]    >[<+ >    >>>+<<<-]>>>[<<<+>>>-]
<<<[>>>+>>>>  >    +<<<<     <<      <<-]> >    >>>>       >>>[>>+<<-]>>[<<+<+>>
>-]<<<------ -    -----[     >>      >+<<< -    ]>>>       [<<<+> > >>>>>+>+<<<<
<-]>>>>[-[>> >    >+<<<<    -] >     [>>>> +    <<<<-       ]>>> ]  >>>[<<<+>>>-
]<<<[>>+>+<< <    -]>>>     >>           > >    [<<<+               >>>-]<<<[>>>
+<<<<<+>>-                  ]>           >     >>>>>[<             <<+>>>-]<<<[>
>>+<<<<<<<                  <<+         >      >>>>>-]<          <<<<<<[->[<<<<+
>>>>-]<[<<<<+>>>>-]<<<<]>[<<<<<<    <+>>>      >>>>-]<<<<     <<<<<+++++++++++[>
>>+<<<-]>>>[<<<+>>>>>>>+>+<<<<<-]>>>>[-[>     >>>+<<<<-]>[>>>>+<<<<-]>>>]>>>[<<<
+>>>-]<<<[>>+>+<<<-]>>>>>>>[<<<+>>>-]<<<[     >>>+<<<<<+>>-]>>>>>>>[<<<+>>>-]<<<
[>>>+<<<<<<<<<+>>>>>>-]<<<<<<<[->[< <  <     <+>>>>-]<[<<<<+>>>>-]<<<<]>[<<<<<<<
+>>>>>>>-]<<<<<<<<<+++++++++++[>>> >        >>>+>+<<<<<<<<-]>>>>>>>[-[>>>>+<<<<-
]>[>>>>+<<<<-]>>>]>>>[<<<+>>>-]<<< [       >>+>+<<<-]>>>>>>>[<<<+>>>-]<<<[>>>+<<
<<<+>>-]>>>>>>>[<<<+>>>-]<<<[>>>+<        <<<<<<<<+>>>>>>-]<<<<<<<[->[<<<<+>>>>-
 ]<[<<<<+>>>>-]<<<<]>[<<<<<<<+>>>>>      >>-]<<<<<<<----[>>>>>>>+<<<<<<<+[>>>>>
 >>-<<<<<<<[-]]<<<<<<<[>>>>>>>>>>>>+>+<<<<<<<<<<<<<-][   lft@df.lth.se   ]>>>>>
   >>>>>>>[-[>>>>+<<<<-]>[>>>>+<<<<-]>[>>>>+<<<<-]>>]>>>[-]<[>+<-]<[-[<<<<+>>
       >>-]<<<<]<<<<<<[-]]<<<<<<<[-]<<<<-]<-]>>>>>>>>>>>[-]<<]<<<<<<<<<<]

        Type for instance "fg" to toggle the cell at row f and column g
                   Hit enter to calculate the next generation
                                 Type q to quit
share
    
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. –  VonC Jan 5 '10 at 6:24

Sigh. Yet another tag to hide.

I'd rather see more questions about ponies than more code golf puzzlers.

Why? Because ponies are more interesting, and far more useful.

Seriously, I thought SO was to help people solve real problems. You know, a Q&A site, not a daily puzzle.

Every exception just decreases the signal-to-noise ratio.

I suggest a new site, codepuzzleoverflow.com, for these things. Migrate all the code-challenge, code-golf, et al question to it, and enjoy.

share
1  
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. –  VonC Jan 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. Lowe Jan 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 :) –  VonC Jan 5 '10 at 19:30
    
@VonC: tags already hidden :-) –  Steven A. Lowe Jan 6 '10 at 1:04

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