Learning to write computer programs is a difficult process. This short experience paper details ten common, yet difficult to spot errors made by students in my introductory Java programming classes. The errors detailed in this article are considered "heinous" because they either don't occur every time, are hard to spot when desk checking code, are due to an inconsistency in the Java language itself, or all of the above. Along with the errors this article describes teaching techniques to help students avoid them and suggests potential language modifications to preclude them.