Machine Learning: End-to-End guide for Java developers