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.