2D Head with a clock as an eyeball.
 Monday, September 29, 2008

In my previous post I espoused my latest love affair for Stackoverflow. I still think its an awesome site, however I recently got stung by the ever present reality that there are some people who think its for programming questions only, and others who think its for all questions, as long as they relate to programming.

I asked this question.

Sure its subjective, sure it can involve answers that apply to life in general. I even knew that it might yield answers that were opinions rather than fact. However, its firmly under the banner of questions that can be answered. Your answer might work for you and not for me, but that doesn't mean we haven't answered the question, it means the question has more than one answer. Much like the difference between a maze and a labyrinth.

I'm of the opinion that this site was created to provide value to its members. Clearly the response to the question indicates that many members found it to be a useful one. Unfortunately I'm at the mercy of editors who may or may not have a clear grasp of Venn Diagrams. I was told that my question is not about programming because its answers can be applied to any profession.

"This is nothing to do with programming - it applies to all working people"

 

Programming is a subset of the set: Professions. 

Given the above diagram we can posit that a question that applies to all professions also applies to the profession of programming. Especially since I'm a programmer asking other programmers!

In another comment, emphasis mine:

"It's like asking how to make a peanut butter and jelly sandwich suitable for eating while coding - just because it's valuable to many programmers does not make it a programming question."

I'm concerned that semantics is more important to the commenter than good content when I see this. If peanut butter and jam sandwich recipes were truly useful to many programmers then why would we want to stop people from using the site to discuss it? If its useful, its a tool like any other. Discussing techniques to combat lack of motivation are as important as techniques to combat code coupling. 

Furthermore, in light of the fact that the site creators clearly condone this question I'd say that the FAQ was deliberately using soft terminology when guiding the end user what not to ask:

"Avoid asking questions that are subjective, argumentative, or require extended discussion."

Blind adherence to the literal meaning to such a mantra is what gives us such wonderful things as fundamentalism. The spirit of what is going on behind such a sentence is to prevent questions like "Which is better, C# or VB?", not potentially useful discussion.

The key here is that if you choose to take the FAQ literally then you should also take this literally:

As long as your question is:

  • detailed and specific
  • written clearly and simply
  • of interest to at least one other programmer somewhere

... it is welcome here.

I realize that there is a worry about Signal to Noise ratio, but the site is tagged and searchable for heavens sake. Presumably in future releases we'll have the ability to filter out tags in your search results at whim and will anyway.

The fact remains, subjective questions are some of the most popular on the site. Some see this as a scourge that needs to excommunicated. Personally I think it demonstrates that programmers on the whole :

a) Like to have a bit of fun from time to time,

b) Recognize that there is more to programming than code.

All of this is moot however, given that those people who think that all time management solutions in the profession of personal training necessarily applies to that of a surgeon and therefore programmers are clearly wrong.

Let me demonstrate with a small sample of the sorts of differences we are likely to find across two different professions:

Q: When is it a good time to stop coding?

A: Whenever you feel tired and unmotivated. Get up and walk around, maybe get some exercise and get the blood flowing.

Now lets apply this to the profession of say, soldiering:

Q: When is it a good time to stop shooting at the enemy?

I think its clear that ceasing to fire upon the enemy and then getting up and having a walk around when you are simply tired and unmotivated, could result in the untimely cessation of your career as a soldier.

I'm keen to hear others thoughts on the matter.


Filed under:  | 
Wednesday, October 01, 2008 10:49:52 AM (Cen. Australia Standard Time, UTC+09:30)
Jim, I'm with you. Your question is valuable, and the numbers back it up. The people being pedantic about rules clearly don't grasp the spirit of the site, IMHO.

Going off on a bit of a tangent, your question reminds me of another I recently read which asked if speaking made you a better programmer. Your question addresses balance directly and broadly, while the former addresses it more indirectly and narrowly; it inquires as to the value of a specific skill. In other words, the question will help inform a decision toward balancing the questioner's skill set.

I view programming sort of like a World of Warcraft talent chain (bear with me here.) http://www.worldofwarcraft.com/info/classes/mage/talents.html

You've got various pools of talent that can be developed. There might be pools such as Coding, Mathematics, and Collaboration. Coding could contain talents such as Typing, Generations (1GL-5GL), Algorithms, Big O, etc. For Mathematics: Arithmetic, Algebra, Geometry, Calculus. For Collaboration: Versioning, OSS, Teamwork (Waterfall, Scrum), Presenting, Teaching. I believe that spending time and energy developing skill in any of these areas helps increase the chances for cross-pollination of knowledge. Through experience with different mediums, you gain a broader and more balanced perspective.

I once asked a friend of mine /why/ he has five level 70 characters in WoW. His answer was that he enjoyed experiencing the different modes of gameplay. They all had a different feel and required different strategies. Familiarizing himself with them all made him a better player in general, particularly concerning his ability to participate in large groups with wildly varying compositions and skills. He had a better feel for all of the forces at play and the concerns that were being managed by various parties.

I believe that in any discipline, you really do need to incorporate downtime deliberately, as if it were its own talent -- time for family and friends, exercise, hobbies, etc. It feels as though this is the meta-talent that aids in your ability to learn other talents more quickly. It has effects similar to "rest XP" in WoW, I think! http://www.wowwiki.com/Rest :-)
Name
E-mail
(will show your gravatar icon)
Home page

Comment (Some html is allowed: a@href@title)  

Enter the code shown (prevents robots):

© Copyright 2008 Jim Burger