I have an app idea and an UI being designed. I want to learn Java to program it for Android. How long would it take to learn to program something as Uber? How should I begin? I have no experience in programming.