Learning to program is not easy, and you shouldn’t let anyone else tell you otherwise! Sure, titles like “Learn to Program in 5 Minutes” might sound appealing (I’m sure I’ve been guilty of this at some point), but it’s just not that straightforward.

It’s much easier to build an app by following step-by-step instructions. You can follow one of my 7 minute videos for instance to make a basic game or quiz (so don’t be put off!). That’s very different from grasping all the ins and outs of the language in question, but it’s a great way to get started.

If you want to learn to program in a more complete sense, then you’re going to need to wrap your head around some complex and abstract concepts: object oriented programming, methods, classes, variables, flow control. The list goes on. Unfortunately, learning to develop for Android is actually one of the trickier places to start. Building Android apps requires not only an understanding of Java (in itself a tough language), but also project structure, how the Android SDK works, XML, and more.

Making an app can be relatively easy... But that's very different from grasping all the ins and outs of the language in question.

This no doubt has led many people to give up before they’ve really given it a proper shot, and that’s a huge shame. Once you’ve actually built an app, Android is one of the best platforms for distributing your creations to a huge audience.

With that in mind, here are some top tips to help you get started without leaving a head-shaped dent in your wall. Walls are expensive.

Get a good book and use it right

This is obvious, but the most straightforward way to learn to make Android apps is just to get a good book and give it a read. Don’t worry if some of it goes over your head. Don’t worry about getting bogged down in the later chapters once you’ve lost the thread. Instead, read through the first few chapters to get familiar with the basic syntax and concepts. Start thinking how you might use some of this in a simple project, and that will get you ready for the next step.

Start with an easy project

I learned to program by reading a book on a family holiday to Greece and making lots of notes in a pad of paper while my parents chatted on the balcony. That was BASIC and BASIC is relatively easy.

Trying to learn Android development this way will only lead to headaches and countless pens’ worth of ink. So instead of trying to “learn Android,” try to build a simple first app. This will contextualize everything you’re learning and help you to see not only how it all works, but why it’s useful. It will also keep you motivated and help structure your learning.

You will never learn everything there is to know about Android development. It’s changing all the time. You can learn how to make X app or Y app, and the skills you pick up along the way will make the next project even easier. This is pretty much what you’ll do every time you approach a new project, forever.

It’s also actually the strategy that author Josh Kaufman recommends in his book for learning anything quickly, The First 20 Hours. It’s a good read.

Note: “Easy” is the operative word here! Friends who tell me they want to make an app almost always have crazy ambitions that advanced coders would struggle with. Build up to your dream app but start with a calculator, a quiz, a math game, or a something else small.

Ask a friend

If you’re fortunate enough to have a friend who knows how to code, then ask them to show you the ropes. They’ll help you get set up with the right software and be able to answer any questions you have. An afternoon with someone who understands Android development and is generous with their time is worth countless hours of reading and Googling.

That said…

Use Google and don’t reinvent the wheel

Google is your friend when it comes to building projects and learning concepts. Not only that, but it’s also a great place for finding libraries and even snippets of code written by others in the Android development community.

You need to make sure to keep doing this. When you’re new, you can easily spend hours thinking of how to solve a problem when actually, it could have been solved simply with an existing statement or library! Save yourself the headache by simply Googling what you want to do. Just make sure  you have permission to any code and to include credit and attribution where appropriate.

You can also Google error messages while trying to figure out why your apps won’t work

You can also Google error messages while trying to figure out why your apps won’t work!

Tip: One of the challenges for learning coding in general and Android in particular, is it changes all the time. That means you’ll find plenty of out-dated resources, which will only confuse you. To fix that in Google, click ‘Tools”and then Any Time > Past Year. This should help ensure all the information you find up-to-date.

Reverse engineer

Borrowing code or copying out simple programs is a good opportunity to learn. Try reading through some code and understanding how it works. Tweak lines to see how it alters the functionality and appropriate any elements you think could be used elsewhere.

Image credit: Iron Man

This is reverse engineering: taking something apart to see how it works. It’s a great way to learn anything.

Get into good habits

Learning to program is one thing. Learning to do it well is another. Adopting good habits early on will make your code clearer and easier to understand, so pay attention to things like indentation and naming conventions. Try to look for the most elegant ways to accomplish your goals and keep things nicely arranged in methods and classes. This becomes more important as your code becomes more complex, it’s also very important when you’re just starting out.

Understand how to use the debugger before you get too far into your coding journey

Make sure to spend time reading the basics to lay the foundations for your future learning. If you understand how to use the debugger before you get too far into your coding journey, it will help you figure out what is going wrong when your code won’t run.

Watch videos

This is partly a matter of personal preference, but I think following a video tutorial is significantly easier than learning the same thing in a book. This way, you can literally follow along with precisely what the instructor is doing.

Certain concepts are easier to learn from books and websites, but putting those things into practice is easier when following along with a video. Hmm, I wonder where you can find a ton of great tutorial videos all about Android development…

Better yet would be to find a structured online course that included videos. Stay tuned.

Maybe don’t start with Android

I say “maybe” because this won’t be the case for everyone. If you’re really eager to get an app up and running, you might not want to spend time with a completely different programming language. Likewise some people may find starting with a different programming language actually just confuses them, as it’ll add more syntax to remember. It all depends on your style of learning.

Python is an easy introduction into object oriented programming.

For me personally, Android was an struggle. I got by because I already knew BASIC (one of the most readable and beginner-friendly languages) but it was only really after I’d gotten familiar with Python and C# that I really started to “get” Java and Android. BASIC is great for learning concepts like variables and conditional statements. Python is an easy introduction to object oriented programming. C# has syntax similar to Java. From there it’s just a matter of changing a few statements and methodologies to make the transition.

This won’t be right for everyone. At the very least, I would highly recommend you start out by learning Java without the added complication of Android. BlueJ is a great little tool for writing and testing short Java scripts (we call this an IDE). It will help you grasp the basics before you start worrying about XML, Android versions, permissions, and resources.

Try another IDE/language for Android development

Still stuck? You could try taking a different approach entirely. Android Studio + Java is the official way to create Android apps, but there are plenty of other options out there too. One is to use the now-officially-supported Kotlin. If you’re making a game, you could also go with Unity. You could even try the lesser-known Basic4Android. All these options will make it a little easier to get started, but of course there are advantages to knowing the official “main” approach to Android development.

Read more:

Conclusion

Everyone approaches learning in different ways. But a good way to start out for many people will be:

  • Buy a good book on Android development and do a little reading to grasp the basics.
  • Start with a simple project that motivates you.
  • Ask a friend to help, if that is an option
  • Google what you can’t do and need to know.
  • Follow videos and tutorials online.

Optional:

  • If you struggle, try your hand at a simple language like BASIC or Python, or play around with Java in BlueJ.
  • Try a different programming language/IDE like Kotlin or Unity.

Let me know what strategies helped you get started in the comments down below and good luck. It might seem tough, but trust me, it’s worth it!