At SocialCops, we love communities, open source, and fast learners. As a company ritual, we try to encourage everyone to code. In my first-ever Teach on Thursday (a weekly team session where we learn something new) session, I decided to tackle the basics of how to learn Android Programming.

I’m sure there are a bunch of you out there with some kickass ideas for apps but just don’t have the know-how to create one. Don’t worry, you don’t need to be a computer science graduate (or even a graduate for that matter) to see your creations go up on the Play Store – the internet is all you need.

Below is a detailed step-by-step instruction guide on how to become an Android mobile developer only with the help of online resources. This is a process that I stuck to personally and I believe that, if you follow it devotedly, by the end of it, you will churn out high-quality android apps by the dozen.

So here it goes — how to become an Android mobile developer with the help of online resources available.

Prerequisites, you ask? To become an Android developer, you will definitely need to know Java – but the most important thing required is the ability to think logically and kick some algorithm ass. Luckily for us, the Java bit is covered in the courses given below. The logic bit, I can’t help those of you who lack it, but keep practicing and you’ll get there soon.

Step 1: Learning computer science

CS50X – Introduction to Computer Science: This course is an introduction to the intellectual enterprises of computer science and the art of programming. This course is the absolute best introduction for newbies into the world of programming. If you’re already well versed with the topics covered in this course, feel free to skip this course.

learn android programming, CS50X

Course structure: 9 problem sets in real-world domains of biology, cryptography, finance, forensics, and gaming (10 to 20 hours each), with 1 final project.

Topics: Abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development.

Languages: C, PHP, and JavaScript, plus SQL, CSS, and HTML.

Step 2: Learning JAVA

CS046 – Introduction to Java Programming: In this introductory course, you’ll learn and practice essential computer science concepts using Java. You’ll learn about object-oriented programming, a technique that allows you to use pre-existing code (in the form of libraries) in your own programs so you don’t need to go through the entire drill again. Then you’ll tackle the boss level where you put your newly earned Java programming skills to the test by solving real-world problems faced by software engineers. You can skip this course ONLY if you have prior experience in Java.

Course structure: 9 lessons with problem sets (real-world problems faced by software engineers)

Topics: Algorithms, classes, objects, graphics, decisions, iterations, arrays, ArraysLists, simple array algorithms, methods, and inheritance.

Step 3: Basics of Android application development

“Learn Android Development” by Team Tree House: The course title pretty much explains itself. These are project-based tutorials that give you good hands-on experience with Android development. They also have a very buzzing community, and most of your doubts should be cleared within the forums. This is a four-module track covering all the basics of Android development:

Topics: Upload app on Play Store, GIT, Android Studio, designing an Android app, and developing an Android app from scratch.

Problem sets: Three Android applications – crystal ball app, blog reader, and self-destructing message app.

By the end of these tutorials, you will be able to build your own Android app. You will also inevitably pick up the knack of code-googling to find solutions for all your debugging problems. By now, if StackOverflow isn’t your best friend/soulmate/brother-in-arms yet, you’re doing something wrong.

Step 4: Developing Android applications

UD853 – Developing Android apps: In this course, you’ll work with instructors step-by-step to build an Android app and learn the best practices of mobile development and Android development. You’ll be able to build SUNSHINE — a weather app — by the end of this course. As Android continues to grow beyond smartphones, it will inevitably become the key to the ubiquitous cloud. The skills you learn in this course will help you build awesome apps for smartphones and tablets today and, at the same time, will springboard you towards the lair of exciting opportunities that is Android’s future.

android app development step 4, data

Course structure: 6 lessons, 1 final project – an Android application

Topics: UI, cloud connection, intent, content providers and loaders, responsive design, services, and notifications.

Problem sets: Build an Android application.

Step 5: User experience design 

UD849 – UX Design for Mobile Developers: The goal of this course is to help you understand the most important, immediately useful techniques used by the best mobile UX designers. This course won’t outright turn you into a designer, but it definitely should help you with the design elements you plan to incorporate into your products.

android app development step 5, data

Course structure: 4 lessons, with a final project.

Prerequisites: Android

Topics: User experience, user-centered design, designing for mobile constraints, and Android delight

Problem sets: Build an Android application

And we’re done! Once you’re done with these courses, you should be equipped with an unbeatable arsenal to conquer any Android app. The beauty of this process is that, since all of these courses are self-paced, you can finish them at your own convenience.

The main learning resource from then on is, where there is documentation for Android. Moreover, to keep yourself updated, keep reading the Android Developers Blog. This will give you more information about all the latest happenings related to Android. Also subscribe to the Android Developers Youtube channel for various IO talks and other updates. I’m sure there are other amazing resources available online that I haven’t mentioned above. However, through my own learning, I have found this process to be simple, intuitive, and exhaustive at the same time.

That’s it from me. Do write in with your comments if you think this post has helped you or motivated you in your journey to Android app stardom. This is to kickstarting your life as an  Android developer – and hopefully, to seeing some of your apps on the Play Store. Cheers!

We’re always looking for new team members. Think you’d be a good fit? Check out our open positions here.

Interested in working with us? Head to