tags:

views:

731

answers:

8

People who are not IT, more specifically programmers, do not have a good way of solving problems. They simply do not think like us, programmers, who have a good logic. I have been asked too many times what I would recommend them to improve their logic which would eventually help with day-to-day professional problems. Things that come up to my mind are good puzzles, math problems and etc.

Having said that, what would you recommend and why? Books, sites, articles ?

+2  A: 

I recommend Sudoku and games like Brain Age for most non-programmers.

Bill the Lizard
+2  A: 

Most people who don't think like geeks don't really WANT to think like geeks either.

But part of solving a problem is breaking it down into smaller parts, each of which is an easy problem to solve. If they can learn how to break up a problem into managable chunks, they'll be well on their way to at least improving some parts of solving a geek-like problems.

As for logic, remind them of the law of non-contradiction: A != !A. A thing cannot be true and false at the same time. We spend too much of our time not even trying to think straight.

thursdaysgeek
There's nothing *geeky* about thinking logically.
Josh
A: 

I've found that if you keep thinking and are always trying to solve puzzles, even the stupid little ones, in a neat, interesting, optimized, huge, small, pretty much any way, then you keep yourself sharp. Also reading other's solutions help point out things that you would not have thought of which in the long run give you this "tool box" of methods that could be applied in similar or even dissimilar situations.

Casey
+6  A: 

Related article on codinghorror.com:

Separating Programming Sheep from Non-Programming Goats

All teachers of programming find that their results display a 'double hump'. It is as if there are two populations: those who can [program], and those who cannot [program], each with its own independent bell curve. Almost all research into programming teaching and learning have concentrated on teaching: change the language, change the application area, use an IDE and work on motivation. None of it works, and the double hump persists.

Quick takeaway from the above excerpt: The speculation is that whatever you do won't work if a person can't program to begin with.

To write a computer program you have to come to terms with this, to accept that whatever you might want the program to mean, the machine will blindly follow its meaningless rules and come to some meaningless conclusion. In the test the consistent group showed a pre-acceptance of this fact: they are capable of seeing mathematical calculation problems in terms of rules, and can follow those rules wheresoever they may lead. The inconsistent group, on the other hand, looks for meaning where it is not. The blank group knows that it is looking at meaninglessness, and refuses to deal with it.

My proposed tongue-in-cheek solution: Convert them to atheism/nihilism. That way, they won't try to look for meaning where it is not [sic] and perhaps then come to terms with binary.

Ates Goral
For some reason I'm now singing the Cake lyric "Sheep go to Heaven, goats go to Hell!"
gnovice
+1  A: 

People can always improve their problem solving ability with practice, but (imo) only to a degree. Some people will never think like that. They just weren't wired that way from birth. I don't think that we have a lot of control over our innate potential, just what we do with it.

Ed Swangren
A: 

I doubt the wiring is genetic, its more likely to be socially imprinted upon the brain during childhood. Some children do puzzles and others don't, those that do many puzzles will be better prepared, but as Bill the Lizard mentions I think that anyone can re-train their brain to abstract puzzle solving.

Robert Gould
+1 for believing people can change.
nmr
A: 

This is one of the best logical fallacy sites I have found on the web.

Logical Fallacies

I would recommend this site to anyone that has an interest in the casual nature of language. The examples on the site for each kind of logical fallacy are for the most part very good and I guarantee you will learn something. Forward it along.

nmr

nmr
The [site you linked to](http://www.nizkor.org/features/fallacies/) is terrible, it explains a bunch of things that are common sense and the few useful fallacies are explained badly. The [Wikipedia page](http://en.wikipedia.org/wiki/Fallacy) is more useful and easier to understand.
Josh
+1  A: 

Hi all,

I had flunked first semester programming about 3 times,then I tried an online course employing "programmed" learning methods in desperation.

It helped me get over the "hump" by helping me understand programming (I believe) by providing the context and motivations for some of the more common (really simple to you folks) programming logic constructs.

Hours of practice "running" toy programs on paper for different problems afterwards finally ended my absolute confusion on this subject matter.

The link to the free, CS intro course employing this programmed approach that I had used (while ditching my regular lecturer) is :

http://chortle.ccsu.edu/CS151/cs151java.html

Still stumped though by exam level problems using stacks and queues and recursion (we used C in our courses but I think it didn't really matter in the final analysis).

In the end, I didn't bother with a CS major as I would have taken forever (probably 2 to 3 yrs more) given my skill level.

I should have paid attention to those puzzle books when I was little. I was more of a LEGO geek then :)

CS instructors (those who only talk and talk) need to be a little more patient, some of us folks aren't good verbal learners.

Parting thought, we all can't be be great writers, but that doesn't stop one from learning (or teaching one) how to write well. I think the same goes for computer programming in the information age.

M.R.