From my experience, most time is spent in the generate-copy-paste-compile-error cycle. Especially for strict/strongly-typed languages, checking for programming errors can be done by a machine, so this process can be automated (not for logical errors, of course).