Theory is when you know everything but nothing works. Practice is when everything works but no one knows why. In programming, practice and theory are combined. Nothing works and nobody knows why.