Originally asked here. This was a great question so I decided to add it to our website. If you have anything additional to add, just post it in the comments below.
Programming Hub: Learn to Code for Android works for Java
Though the consensus is that programming on a mobile device is an unpleasant, difficult, experience. I, Erin, have tried programming on my iPad before and even with the Apple Keyboard it is very difficult and not pleasant. You are best suited to getting a laptop (or Desktop) and learning that way. Coding is learned best by trial and error. There are not many good mobile based apps as of yet and our Subreddit could only find the one thus far.