As an example, I want to make a computer game. Programming has an advantage of providing a quick feedback, if you are doing it well. I decide to add a new feature, I write it, then I run the game, and I see the feature is there. I get some reward in form of seeing the new feature that works.
(And “doing it well” in this context means developing the program in small steps, where each step gives you some visible outcome. Small iterations. As opposed to doing some complex step that would take a lot of time while providing you no results until it is completed. Note that “visible outcome” does not necessarily mean something that is displayed on the screen during the normal run of the program. It is something that you as a programmer can see, for example a successful unit test result of a function that usually does not interact with the screen. I suspect that the impact of unit test on programmer’s morale is more important than its impact on the correctness of the code.)
But this is still just a feedback from a computer. There is no social feedback here. So I need another support layer to get that. I have friends who are also computer programmers. So whenever I add some new feature to the program, I send them the program along with the source code by e-mail. I do not expect them to inspect the source code too much; usually just to start the program and click on the new feature I have added. But I know they are programmers, and that the possibility of looking at the source code is there. Also, as programmers they can better understand and appreciate the features I have added. (To a non-programmer often trivial stuff seems very hard, but with the hard stuff they sometimes even don’t understand why that had to be done.) So now my programming has a social dimension, long before the program is finished. And we do it by e-mail (and a Skype talk once in a while, and meeting in person once in a month), so even everyday geographical proximity is not needed. Of course meeting more frequently in person would be even better.
You could try to find this kind of support here. Or anywhere else.
One important detail about this kind of “observer support” is that it works best if it provides you only positive feedback. That is, when you do something and send it, you get a “that’s nice!” reaction, and when you do not anything for a longer time, you only get a gentle reminder. (As opposed to people criticizing you “hey, it was five days and you did nothing, man, wake up” or even criticizing your progress as insufficient “all you did in three days was this lousy green rectangle, this way you will not complete it in thousand years”.) Any progress = good. Any lack of progress = neutral. There is nothing negative. (As a general rule, punishments are way overrated. They usually bring more harm than good, especially in long term.) Sometimes it is difficult to find people who give this kind of feedback; some people are not interested at all, some people are too eager and switch to slavemaster mode.
So, what would you like to have a social reward system for?
As an example, I want to make a computer game. Programming has an advantage of providing a quick feedback, if you are doing it well. I decide to add a new feature, I write it, then I run the game, and I see the feature is there. I get some reward in form of seeing the new feature that works.
(And “doing it well” in this context means developing the program in small steps, where each step gives you some visible outcome. Small iterations. As opposed to doing some complex step that would take a lot of time while providing you no results until it is completed. Note that “visible outcome” does not necessarily mean something that is displayed on the screen during the normal run of the program. It is something that you as a programmer can see, for example a successful unit test result of a function that usually does not interact with the screen. I suspect that the impact of unit test on programmer’s morale is more important than its impact on the correctness of the code.)
But this is still just a feedback from a computer. There is no social feedback here. So I need another support layer to get that. I have friends who are also computer programmers. So whenever I add some new feature to the program, I send them the program along with the source code by e-mail. I do not expect them to inspect the source code too much; usually just to start the program and click on the new feature I have added. But I know they are programmers, and that the possibility of looking at the source code is there. Also, as programmers they can better understand and appreciate the features I have added. (To a non-programmer often trivial stuff seems very hard, but with the hard stuff they sometimes even don’t understand why that had to be done.) So now my programming has a social dimension, long before the program is finished. And we do it by e-mail (and a Skype talk once in a while, and meeting in person once in a month), so even everyday geographical proximity is not needed. Of course meeting more frequently in person would be even better.
You could try to find this kind of support here. Or anywhere else.
One important detail about this kind of “observer support” is that it works best if it provides you only positive feedback. That is, when you do something and send it, you get a “that’s nice!” reaction, and when you do not anything for a longer time, you only get a gentle reminder. (As opposed to people criticizing you “hey, it was five days and you did nothing, man, wake up” or even criticizing your progress as insufficient “all you did in three days was this lousy green rectangle, this way you will not complete it in thousand years”.) Any progress = good. Any lack of progress = neutral. There is nothing negative. (As a general rule, punishments are way overrated. They usually bring more harm than good, especially in long term.) Sometimes it is difficult to find people who give this kind of feedback; some people are not interested at all, some people are too eager and switch to slavemaster mode.
So, what would you like to have a social reward system for?
That’s interesting. Thank you for a detailed explanation of this.
I can agree a lot with the “only positive/neutral feedback” rule.
I’m not sure, but this got me thinking in a good way. I like this question.