Pair program with other developers X times per week for N minutes per session. The intent of pair programming is to discover day to day coding practices from others. Makes notes about confusing parts and be sure to look them up later.
Unit testing is extremly important to become a better developer. When writing unit tests try to break the code and look for edge cases. Spend at least as much time writing test code as writing source code. Unit testing can be difficult when the code is not structured to be testable. Don't just write tests against whatever code is there; unit tests will provide feedback to your code. When a method is difficult to test, don't just trudge through it, refactor the code to be easier to tests.
Reading code makes you better at writing code! Sounds simple right? Reading code can take the shape of code reviews or simply poking around in a new code base you are unfamiliar with. Look for patterns in other people's code to see how they solved problems. Look at code bases that people closely around you did not write.
AOP is the core concept behind the magic annotations which you discover day to day.