Programación multifunción
No utilizar tantas funciones como sea posible. Por ejemplo, si vas al extremo y defines cada bloque como una función, sólo crearás confusión. Tienes que mantener un código y realizar un seguimiento de una docena de funciones continuamente. Lo he experimentado y es realmente trágico.
En general, los programas se pueden dividir en función de su reutilización y funcionalidad. Es posible que necesite trabajar en uno o dos proyectos reales y aprenderá más rápido leyendo libros sobre ingeniería de software.