What are the approaches to learn Java programming and build up a skill in it