Adjusting to the requirement for perfection is, I think, the most difficult part of learning to program.
Fred BrooksThe hardest single part of building a software system is deciding precisely what to build.
Fred BrooksThe hardest part of the software task is arriving at a complete and consistent specification, and much of the essence of building a program is in fact the debugging of the specification.
Fred BrooksThe first step toward the management of disease was replacement of demon theories and humours theories by the germ theory. That very step, the beginning of hope, in itself dashed all hopes of magical solutions. It told workers that progress would be made stepwise, at great effort, and that a persistent, unremitting care would have to be paid to a discipline of cleanliness. So it is with software engineering today.
Fred Brooks