I learned most of my logic stuff via computer programming since
I was a kid, so by the time I started looking at Philosophy
seriously (just a year ago or so), I had to skip right by the
analytic philosophy code 'cause it looked too much like yet
ANOTHER computer language to learn and I already knew my XORs /
NORs / NANDs and all the weird and wonderful boolean
combinations that were possible and what they did. Programming
requires rational thought but it's of a different sort because
the programs have to run and so long as your program runs (or
spreadsheet spits out the numbers you want), all of your logic
is checked thoroughly and works. What becomes important at that
point then, isn't whether the logic functions properly (that's
easy enough to do) but rather questioning your initial
assumptions, do you have enough inputs? Are you transforming the
values properly? Are the results applicable or bunk? etc.