As an IT professional, I actually understand what is happening with the genetic code and hence can understand the beauty of evolution, and why creationism is nonsense.
The 2nd law of thermodynamics states that in a closed system entropy will always go up. Life becoming more organised is a decrease in entropy, but the cost of that order is increased entropy in the form of heat expenditure, turning organised matter into less organised energy. Just how much energy do you actually spend trying to reproduce? Starting with horizontal jogging and then carrying the child around for 9 months. Any decrease in entropy is easily covered by the massive entropy gain trying to create it and sustain it.
The IDiots argument for thermodynamics makes as much sense as declaring a refrigerator as violating the 2nd law. After all, lowering the temperature inside the fridge lowers entropy, a clear violation. Of course, the fridge is not a closed system, fridges generate a lot of heat which is radiated out the back, a net gain of entropy. The problem with IDiots is that you think an individual is a closed system, when that is obviously not the case.
Back to the IT professional part. Our genetic code can be considered to be a massive program, each gene and combination of genes is a subroutine or a sub-program and what happens in evolution is that the order and quantity of calls made to and from sub programs is changed. Sometimes the change does nothing, sometimes it does something so extreme that the program crashes (and the individual is never born). Evolution is a massive computer program and our genetic structure actually uses reflection to modify itself, so that while the program is running it actually also has a chance of rewriting small parts of itself (mutation), usually though these changes are just copying errors. You try copying an entire program by hand and see if you can do it without a mistake, remember all those magazines with massive machine code blocks to type in so that you can get your program? Genes are much better copiers than humans they tend to make very very few copying errors in comparison.
Natural selection is represented by the environment the program runs in, if an environment variable exists and the program makes use of it it successfully and runs better, then it is able to reproduce itself in new generations, if there's an environment variable that causes that program to crash, or run inefficiently, then that program has less chance of being successful and won't be as able to reproduce itself.
What's more, during reproduction you combine two different sets of routines and code (exactly 50% of each from male/female) and this brings diversity and the possibility of change, as you now have new subroutines that can be used, or subroutines that seem the same but behave slightly differently and in combination with your own subroutines can bring about new effects.
As the programs rewrite themselves they become less compatible with each other, their calling conventions change, or the number of parameters on a function change and crashes become more and more likely. Finally you have two programs that will just never work with each other and you get speciation, the formation of a new species.
It's why humans and goats (no matter how hard some humans seem to try) can never actually create a viable child, the human half of the program is far too different from the goat half and there's no way they could merge and run.
In contrast, horses and donkeys have only just (in evolutionary terms, i.e. thousands of generations) speciated, and as a result their code can make a fairly good attempt at working together. It's why you can cross horses with donkeys and get mules. The programs are sufficiently different though that the combined code is rather buggy, as a result it's impossible for mules to reproduce. That's why donkeys and horses are considered a separate species, their offspring will never be viable, they'll never breed. In a few thousand generations they'll in all likelihood be too far apart for even mules to be possible.