Some various thoughts on this topic:
Programming, or "coding" isn't as hard as a lot of people make it out to be. It does take knowledge and skill, but it's not rocket science. Doing it really well is a craft all it's own of course. Building professional polished apps is much harder than just a little hacked together code.
I know a good number of languages and have been programming on and off for many, many years. So my approach to learning Android was probably different than yours might be. I just grabbed the Android development environment, called Android Studio from the official site:
http://developer.android.comThen I started working through the tutorial. The tutorial works, but honestly it's rather confusing, and was discouraging to me at first. I decided to power through it, and then to start doing other tutorials because I REALLY wanted to learn how to do it.
I used Bucky's tutorials on youtube as a big part of my early learning:
https://www.youtube.com/playlist?list=PL6gx4Cwl9DGBsvRxJJOzG4r4k_zLKrnxlThere are a LOT of videos in his series and I skipped a bunch of them. I was looking for specific information. His information and style might work for you, or it might not.
Now, Android Studio is kind of the official "front door" way of doing Android development. There's quite a learning curve; at least there was for me. I spent many, many hours before I could develop anything that was at all useful.
The other way to approach Android development is with a third party tool designed to make things easier, or to let you use other languages to develop Android apps. I only researched a few of these and didn't spend ANY time with any of them. I went straight to the "front door" method and pushed and worked and finally got something working.
I wish I had a good third party recommendation for you, but I haven't used any of them, so I don't. Kivy has looked interesting to me several times, but I've never tried it.
https://kivy.org/#homeFinally, some vocabulary explanation about programming:
There are generally two types of programming languages: Complied languages and interpreted languages. Compiled languages use a three step process for development:
1. Write some code.
2. Run the compiler to turn it into machine language.
3. Run the machine language program and test it.
If #2 fails, you have to go back to #1 and fix the problems, then try #2 again.
With interpreted languages there is no compiler: The code just runs right away and you get to find your mistakes right away.
Java is weird because it's interpreted, but it's also "byte compiled". The up-shot is, running Java code produces obscure error messages that you have to track down and fix, just like any complied language. Unless you never make any coding mistakes.
If I can help answer any questions or guide you toward something, let me know and I'll try to help.
Brian.