arguing against what you believe applies to a lot more than just programming. it is a pretty good way of arriving at what you really believe. guess you believe X0, try to argue against it arrive at X1 as a result of the arguments, argue against X1, ...