The most common obfuscation techique is to change variable and function names to long nonsense words; for example, from TaxRoutine to 87n39y7_9yjn13, or worse yet a 15-digit binary number. That combined with removing all comments makes a program undecipherable. Eliminating all unnecessary line breaks also jumbles up the works, and there are other tricks of the trade.
Obfuscators for machine code are also available. See email obfuscator