Why Learning Android could improve your programming skills

Android is probably the most popular mobile operating system, a lot of programmers join the Android club to be an Android developer and turn their ideas into great apps. While some of you may not be interested in making a mobile app, but I would say you should give it a try. In this article I’ll try to convince you that you can improve your programming skills by studying the Android framework.

It’s simple

By simple, I don’t mean programming in Android is easy. The Google Android team has made it very easy for beginners to get started, just fire up the Eclipse IDE and load the examples and you have your first Android app. Through Android you’ll learn how to organize an app that is so simple to understand, write and deploy. You could apply this in organizing your web application. There’s a lot of good engineering practice in the Android framework. Of course, programming is never easy, if you feel that what you’re doing is easy, you maybe not making something useful!

It’s well documented

Learning Android is a joy. Simply surf the Android Developer website, you will find tones of information. From basic framework fundamentals to Design Guidelines and Best Practices, those articles are very well-written, you will learn a lot by reading them. Even if you’re not an Android Developer, some of the methodology, skills, practices are applicable to Java programming and other frameworks. On the other hand, through reading these articles and API doc, you will understand better what needs to be documented and how to properly document the software. This is an important skill for a software engineer.

It’s OOP and it’s Java

Android uses the Java programming language, which is a OOP language. You’ll see a lot of OOP design patterns in an Android app, e.g. Adapter, Builder, Factory, Singleton, Facade etc. You may have studied all of them in your software engineering lecture for the whole semester and still don’t know what are they. Getting hands on experience with these patterns is always better than memorizing the definition of it! Besides, it’s Java, the most popular programming language in the world, what you’ve learnt can be applied to your work easily. (If you’re a Java programmer 🙂 )

It’s Linux

Android runs on the Dalvik VM, but under the hood it is a modified linux kernel. It has a filesystem structure that is very similar to a modern Linux OS. Most modern Linux distros are fairly complicated systems and developing apps on them is not an easy task. There is a operating system called Minix which was created by a professor as a simplified version of the Unix system to help students to learn how a operating system is built, But now since Android is also Linux and it’s running live on your phone, you can probably experiment with Android instead. Concepts like mounting file systems, File IO, Memory, Networking, processes and threads, now you can experiment it in your phone and get the idea of how Linux works. Linux skills are essential for managing and developing web and cloud applications.

It’s open-source

If you’ve ever wonder how the App drawer or the horizontal scrolling of the Home screen is done, Android is Open-source, that means you can download the source code and see for yourself! Learning by example is the most efficient way.

It’s Google

Well, What’s better is these source codes are written by Google engineers, they are among the best software engineers in the world! You can almost assume the source code are bug-free, efficient and written with best practices.

I hope that I have convinced you to get your feet wet on Android development. After all, it’s fun, Happy coding!

Share your thoughts