mirá, el tema puede llegar a ser muuuy amplio, en cuanto a patrones de programación no se bien a que te referis, pero para que te des una idea tenes patrones tanto de algorítmia (algoritmos de todo tipo, muy usados en programación procedural), de diseño(describen una solucion a un problema, planteando los objetos necesarios y la relación entre ellos), y de arquitectura(los más conocidos son los de j2ee, que plantean como estructurar una aplicación para manejar problemas como la persistencia, presentación, etc)
Bueno, por ahora se me ocurrío comentarte esto.
Espero que sea de ayuda
Claudio