Implementation using Java:
Using IDEs to develop code.
Using various Java APIs including GUI aspects.
I/O handling using Java.
Documenting code using Javadoc and single-line comments.
Design code for testability.
Using design patterns.
Using new Java APIs for use in own projects independently.
Programming new classes to guidelines for existing APIs.
Implementing data structures and algorithms.
Analyse other's and own source code for weaknesses.
Adhere to a good, consistent and easy to follow coding style.
Pitfalls for concurrent programming
Multi-threading and synchronisation
The Java event model