Beginners guide to mastering Java programming from scratch