I began learning Android this semester for my final year project. Android and Java were technologies I never thought I would learn by myself. I always felt they were overcomplicated and for me that translated to boring. I was, of course, wrong as things started to become clear.

My friend Kunal really inspired me to take on Android. He guided me with basics of Java that I covered by reading the first 12 chapters of the book "Java The Complete Reference". After that Kunal even went ahead to give me a hands on session on the basics of Android.

Now to be honest, I can write basic Android applications, but anything above that would require extensive Googling. Partly because once I knew I won't need to learn anymore to complete the project, I stopped. But inspite of all that, there were a few great experiences that I wanted to share here about my short journey with Java and Android.

The most amazing thing I learned was that Java is a great language to learn object oriented programming concepts. Interface, abstract class, method overloading and overriding were just words for me before diving head first into Android. I understood the meaning, and I could even write you the classic sample Animal<->Dog,Cat example to demonstrate all of those, but I never actually saw their potential application in any of my projects. Get started with Android and in a day you'll realize what those terms actually look like in practice and suddenly it all starts to make sense.

Another thing that I noticed in the Android ecosystem is that Android is far more stable than most of the other technologies that I deal with, or have dealt with. I remember my time with Angular 2. Issues used to pop up and the only thing that showed up when you Google your problems was a Github issue created 3 days ago with 17 comments saying "Same problem here". It was horrible, and it intensifies when you're using it to build something professionally for a third party, and not just a random side project. Android felt much more like C++, predictable, readily available resources on Q&A sites like StackOverflow, and a standardized way of doing things.

Lastly, a subjective realization. Android is a powerful tool in any developer's toolkit. It is the midway between web and system, with the ease and straightforwardness of the web and the power and reach of system. It is fascinating to a naive code guy like me to grasp what all is possible in Android. The APIs make just about everything accessible to the developer, and I'm not even going to get started on the reach of Android. Look, imagine this. It's like knowing how to hack Raspberry Pi with your kick-ass Python, but in this case, every damn person you know has a Pi, carries one around, and it is connected to the Internet all the time. Now that is the kind of power we're talking about here.

In closing, if you're like me who just does something for the sake of that momentary joy of learning something new, give Android a try. Apart from all the good stuff that I've mentioned above, it is just a great feeling to try something new, right? Thank you for reading.