People who start their professional coding adventure, whether they are still studying, just graduated or changing profession, may often hesitate what programming platform they should start with. So let me mention a few reasons why I think it's a great idea to start with Android.

{: .center-image}

Platform availability

Contrary to many other platforms (including iOS), you don't need any particular device or even operating system to start. If you don't have a smartphone running Android OS, you can use an emulator* which should be good enough for most applications. Android Studio IDE works on both Windows, macOS and Linux systems. Google provides JavaDoc-like documentation and tutorials for Android APIs so usually it's relatively easy to find what you need. And even if you can't, there's a huge Android devs community.

Java and Kotlin

You can start developing Android apps with Java, which is one of the most popular languages of all time. I wouldn't be surprised if you had a chance to use it before. It's stable and it's well known. But if you would like to get something fresh, shiny, unbelievably useful, flexible and full of features, here it is: Kotlin. It will take your code to a whole new level, still being fully interoperable with Java APIs. Google already provides code snippets in the Android guides written in Kotlin.

Projects with benefits

Everyone knows a few people who work on huge projects that involve hundreds of developers, millions lines of code and legacy APIs. When you join them, you usually spend a few months figuring out how it works and everyone is looking at your hands so that you won't break anything. It's quite hard to actually learn to code if you spend most of your time trying to reproduce a little bug in a large codebase or reading someone else's code (reading and writing is just not the same and you know it). You won't see this in Android development. Most of the apps are relatively small and simple so it makes the entry level really low. You can, for example, imagine every app component and its behavior easily. Of course it doesn't mean you should avoid harder tasks throughout your life - it just faciliates your learning experience. Moreover, smaller or shorter projects also mean you will probably start new ones more often, having the possibility to learn a wide range of things and use the latest and greatest solutions. Isn't it appealing for every programmer? :-)

* If you have an AMD CPU, you will likely need a Linux system for emulator acceleration.