Learn the syntax, semantics and idioms of the Java programming language. Gain confidence in object-oriented programming principles through lots of practical exercises.