Learning journey from scratch: Self-learning on the 'Java Programming Language'