Learning the java programming language