As an intern for a web developer position, sometimes I find myself with nothing to do since people can't pay me attention and give me new work to do. So in this "free" time I try to learn something by myself, but since I have (at least) the basics of web developing, sites like codecademy or codeschool are sometimes too easy and not enough stimulating for me.

So I started to look for questions on Stack Overflow and try to answer some of those. Obviously most of the times the questions are too hard for me, but when I find a question I think I can resolve, I try to think and give an answer. If I can make it and no one beats me in time, I would even post it (never happened though); if not, I look at the other answers and see what I did wrong or what could be done better.

I believe that this is a great way of learning, and it also represents a situation that I think happens a lot of times when working: you are provided with someone else's code and you are given a task and try to accomplish it.

So I was thinking that maybe some of those "easy" questions (which should be of course well written and with code provided) could be flagged or tagged as exercise or practice, so that new users or beginners could browse those questions and try to resolve them as homework, with the solution being there as the accepted answer (and the other answers too). I believe this is very practical because questions asked here are for features that are to be implemented for real use in websites or applications, not for theoretical use only.

  • Maybe only people with a certain reputation could mark questions as "practice" or "exercise", or maybe anyone could do it (even beginners) and then the tag can be moderated by people with a certain rep.

  • The tag could be done for every language or tag, like javascript or jQuery, and could be visible near to the submenu improve tag wiki | top user | synonyms | jobs in the tag page (for example with the label practice linking to http://stackoverflow.com/tags/javascript/practice).

  • The exercises could even be ranked as easy, medium or difficult, but that's just an idea.

  • Of course even old questions could be marked as practice, not only the newest ones.

That's pretty much all about it, it is just an idea that popped up in my mind when trying to learn something on this site. I hope that this idea fits Stack Overflow values, and I believe that if it isn't a stupid proposal this is the best place to develop it.

  • 16
    It's a nice idea, but I think it falls outside of the core Stack Exchange model. It'd work great as a separate website (don't forget all posts are released under license!), so maybe someone could get to work :). – Matt Jul 30 '13 at 13:11
  • 20
    You explained yourself very well, and your English was better than many native English speakers. I'm not sure I agree with the idea, but +1 for a thoughtful presentation anyway. – Andrew Barber Jul 30 '13 at 13:12
  • 9
    This is actually something that could be implemented using the public API. You could tie it to an online code service too in a sort of so/project Euler/topcoder/ideone hybrid. I really like the idea of people finding creative new uses for the vast knowledge that's been accumulated here. – Flexo Jul 30 '13 at 17:04
  • I'd like to try to implement this with the public API. Does anyone want to help? What about licenses though? – tony danza Aug 6 '13 at 8:56
  • @tony as long as you include a reference to the original source (the specific question, not just stack overflow) you're home and free as regards licencing. All stack overflow stuff is licenced under creative commons for exactly this kind of application – Richard Tingle Aug 7 '13 at 13:16

This does sound promising.


  • Who will decide what is good enough for "practice"?
  • Will there be some sort of voting system?
  • Will it be based on rep?
  • Can only the mods decide?
  • ... Many other factors that need to be thought about and honed in on.

Once all of that is thought out -- I think this could work ^_^

Something like:

Practice Question:

What does this mean inside of a javascript object?

[                                                   Your Answer                                                             ]

Then the answer could be parsed from highest upvoted/accepted answers.

Someone would need to come up with an algorithm for it.

I really do not see this coming Stack Overflow anytime soon.

  • This could be a multiple-choice question: pick any questions with three downvoted answers (with duplicates merged into, ideally), then pick three with negative votes and the highest upvoted one. – John Dvorak Jul 30 '13 at 13:18
  • @JanDvorak That is true, but then that really defeats the purpose of "practice". Though it still could technically work as multiple choice, just in a different form. (Also that implies that a question has multiple answers) – Naftali aka Neal Jul 30 '13 at 13:24
  • 6
    I don't think we would need an algorithms or anything like that, I was just thinking about having an exercise or practice tag that people could browse and use to learn something by themselves, using the question as it is on SO - and of course viewing the answers only after trying to resolve the issue alone. – tony danza Jul 30 '13 at 14:09
  • Indeed, text books have the answers in the back, you're only hurting yourself if you look at the answers before having a stab at the problem yourself – Richard Tingle Aug 1 '13 at 14:13

I'm not an intern.

I'm rather an old developer.

But still I do learn a lot on SO and I even learnt a technology by looking at the questions and trying to answer them (yes, at first I was always too late because I had to google and try a lot, but I managed to learn it).

Which leads me to an observation : what's great in SO questions is that they're real problems, you have to decipher them and to find how to approach them. They're not too scholar, so you really learn practice instead of school theory. Practice in our field is messy, full of side problems, not always possible in the obvious way, and sometimes with a whole range of acceptable answers from barely working ones to elegant and maintainable ones. That's what you want to practice.

Steering students to school-like questions would, in my opinion, have an effect opposite of the one you're researching. The enthusiastic student should, in my opinion, face the whole messy set of questions having a given tag.

And I suggest to look at recent questions so that after some time searching you can look at answers. And if you have no idea of the solution, which should frequently happen at first, then you can look at answers arising.

  • Just to be clear: I didn't mean to create school-like questions out of the blue, but to use the existing ones as exercises. Of course not all questions can be used for this task, that's why there should be some sort of selection. – tony danza Jul 30 '13 at 13:26
  • And my opinion is that, in order to learn, you want to fight against raw unsorted questions. The tag is enough to select the questions you should have a look at. – Denys Séguret Jul 30 '13 at 13:29
  • The idea was just to help people find questions that can be used for practice and avoid that fight, in order to improve their time by doing "homework" and not spending too much time finding it. Based on my experience as a beginner, I need to learn things more than learning to find things to learn. – tony danza Jul 30 '13 at 14:02

I think this idea has a lot of potential. Learners often have the same questions, or at least the same areas of ignorance. I'm going to refer to the tag as "Useful-Exercises" for lack of a better term.

I have three ideas to add:

First, discovering questions that are useful exercises is likely to remain a labor intensive procedure. It takes expertise to distinguish between useful exercises and useless ones. That expertise can be supplemented by automated heuristics, but it's still going to require a lot of manual intervention. That intervention is going to have to be incentivized in somewhat the same way that tag wikis are incentivized.

Next, there is a large overlap between the concept of useful exercises and the concept behind FAQs. Some useful exercises are not frequently asked, and some frequently asked questions are not useful exercises. But there is usually a useful exercise lurking behind every frequently asked question.

Finally, the development of a series or perhaps a tree of useful exercises for learning some particular subject is almost like the development of a tutorial for that subject. I'm thinking of database design, development, and maintenance, which is an area where I formerly helped people for a living.

Really, a tree of useful presentations interspersed with useful exercises amounts to a tutorial on the subject. The development of tutorials may be beyond the scope of SE. But the collaborative spirit that SE has fostered and made use of is relevant to this task.

Perhaps a community could be formed around the idea of creating an encyclopedia of tutorials, and using links to questions on SE and/or articles in places like Wikipedia to avoid some of the redundant development.

Looking back, this is really an addition to the question more than an answer, but there you have it.

You must log in to answer this question.

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