Learning "Software Patterns" would be one of the advanced topic. Leaner shall have prior knowledge about fundamental object-oriented concept.
http://en.wikipedia.org/wiki/Design_pattern_(computer_science)
http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science)
Previous related topics on forum
viewtopic.php?f=51&t=412 Object programming approach from Procedural reference topic for programmer who has procedural programming knowledge before.
viewtopic.php?f=5&t=434 MVC Approach pointer topic for architectural pattern framework
viewtopic.php?f=5&t=470 DAO topic for J2EE/JavaEE design pattern
-- Some reading upon this topic and collecting
