Very few foreseen the rise of smartphone apps to the point where the Android world alone has now almost 3 million of them. 3 million choices when deciding to install something on your smartphone, that’s way above the number of desktop apps. This lead to a similar increase in interest for developing apps because there are also BILLIONS of smartphone users (Android devices exceed easily 1+ billion, not taking into account the iOS realm). The craze for app development is due to the lottery-like possibilities. There are a few devs that stroke gold big time even with simple games/apps. The Flappy Bird dude mentioned at one point, before pulling the plug, that it received $50,000 from ads. Daily! That’s a very large amount for a monthly revenue (even yearly), but daily?

These few success stories, coupled with other more realistic ones (where Android devs earn $1,000+ from 1 app) drove up interest from companies and individuals alike to develop apps. Those that already knew programming followed an easy path towards Android app development, but if you don’t have any programming background that’s tougher to do. Not impossible though, just a task for hard-working tech oriented users, as there are still a few ways to develop Android apps:

  1. Use online app creators. There are dozens of app creators/makers that don’t require any programming: Como DIY, BiznessAPPS, AppMakr, Appery.io just to name a few. Their selling point is not requiring any coding skills. While that sounds advantageous, the disadvantage is cost (usually a monthly fee) and limitation in what types of apps you can create.
  2. Pay someone else to create your app. Sites such as Freelancer and Upwork are filled with thousands of eager app devs that are there for you. This will get your app done, however disadvantages are giving someone else your app idea, having to explain very well what you expect and possibly the cost.
  3. DIY Android development. Last option is to create the app yourself by learning Android development. Even here there are a lot of development tools you can use to create an app, some easier than others. For instance, you can develop games using Construct2 or GameSalad, game engines that rely more on the logic behind the game rather than you knowing a programming language. But in the end, if you want to go the native way, you’d need to learn Java. This is the essence of Android development thus if you truly want to create apps the right way, you should start with Java. The advantage here is you retaining control over your idea, app and even keeping costs low. Plus, you’d be gaining a skill that’s very searched for (Java development) and you could earn money creating apps for others. But the big disadvantage is spending the time to learn it. Assuming you have the tech skills needed to adapt and learn a new programming language.

A wise man said that “It all started with the Big Bang”. You can immerse yourself in the [highlight]Android development world either by reading books, following online tutorials, watching video tutorials, taking online courses (i.e. Coursera, edX or interactive learning sites such as Codecademy) or doing all these at once[/highlight]. It just depends on how much time you have and how determined you are. I believe that the first thing you can and should do is to start with a book or two. And that’s the first thing I’d focus on, finding the right combination of books to help you get started.

Amazon lists at least 1,600+ books for Android development alone, not to mention other Java-related books. My strong suggestion is not to go ahead and get 10-20 books and start reading them, but instead to focus on a few (i.e. less than 5) and not ordering more than 2 at once. Just start reading 1-2 books on Android development and see first what’s it about and if indeed it is something you can and would like to continue with. This way you invest very little to see if you’re fit for the task. Each book will also include some exercises and samples, so you would also practice while reading. When you finish those books you can advance to others, but the idea is to start low.

I’ve been around the Android world for a while thus I had my share of Android development books too. When it comes to choosing some, here are my recommendations on Android development books for beginners.

1. Beginning Programming with Java for Dummies, 4th edition. As stated above Java is the basis of Android development thus no matter how you look at things you must start with Java. This isn’t the most straightforward programming language (duh, Oracle is behind it) as it relies heavily on object-oriented programming, but if you get to master it at least a bit, you’d be able to write native apps. Also, the power of Java which lead to its popularity is platform-independence. Yes, if you write an app in Java you’ll be able to port that to iOS, Android, Windows mobile.

Beginning Programming with Java For Dummies is its actual name and here’s why I believe it should be your 1st choice when starting with Android development:

  • it assumes you don’t know anything about programming language, thus it explains everything
  • it is structured in such a way so that if you do know something about programming, you can skip to the “goodies” part, meaning where the actual Java development starts
  • it’s not that thick for a development book, just shy of 500 pages which for a programming book trust me it’s light. But again, it is meant for beginners (just replace “dummies” with “beginners” if you feel more comfortable).
  • it makes analogies between programming and life concepts.

Again, if you do know something about programming in general (or Java in particular), then this book isn’t a good fit for you. But if you don’t and you’re a total noob in terms of development, then I highly recommend it. This edition was released in 2014, so it’s not 0day material, but still relevant since the concepts didn’t change much.

2. Head first Java, 2nd edition. I don’t know if you’ve ever a book in the “Head first” series but if you did and liked the format then this book is a must too. Their format is to help you delve “head-first” into the content of the book. For example they will show you right from the first pages a program written in Java so that you can see what’s all the fuss about. Plus, they rely heavily on images as a way to help you understand faster important concepts. And the overall format of the book is somehow resembling more a comic book rather than a programming one. This way they help your brain adapt and learn faster, rather than being scared of the amount of new tech info.

Here’s what I believe makes this book very good:

  • it uses a different way of teaching you, relying on images and other tidbits that help you digest info better
  • even if the format used is one to also keep you entertained, it still covers serious business for up to 700 pages
  • their format is more fit for users that tend to lose their interest fast, so if you know you have a tendency to just give up, try this one first

Now for the disadvantages, the book was last revised in 2005. While still highly relevant from a programming point of view since the fundamentals of Java are the same, you would still need from time to time (very seldom) to check the Internet for updated information on a topic. But again, this happens seldom.

3. Java: A Beginner’s Guide, Sixth Edition. This book is written by Herbert Schildt which is quite the celebrity in terms of writing programming books. The author is 65 and still young, given that he plays music too, and not any kind, but progressive rock. Back to the book, the author wrote several related to Java, including the “complete reference”, a book so thick you could use it as a weapon.

But this one is a bit more light on details and much more comprehensible by beginners. Still, at some point if you want to advance to more serious Java programming, you’ll make a good investment getting his Java Complete Reference edition too.

Out of the 3 books mentioned so far for Android development beginners, this one is the most serious and a bit more advanced than the others. I recommend this if you catch fast and are willing to do some extra research. Oh, and it’s one of the cheapest books.

4. Head First Android Development. Assuming you’ve went through at least one of the books above, it’s time now to head on to Android development. My #1 choice for this is “Head First Android Development”. Yes, I do have a thing for the head-first series as my mind functions in mysterious ways and tends to wander off when I try to focus on important things. This series though helps me concentrate a bit more, especially due to their funny approach.

The book was released in 2015, so even if Android added a new type of candy it’s very accurate. And don’t get me wrong, even if the Head-first series adds images and has a funnier approach than most other programming books, it’s not cartoon-ish by any means. It’s as serious as the studied matter.

What I like about it:

  • again, the style it’s written in as it helps me focus better
  • the book is quite new, so most links still work and it covers relatively new topics such as material design
  • it has full app development examples, meaning you’d really create an app from scratch – granted, first apps are easy but still it gives you the accomplishment of having done something

With a bit over 700 pages, there’s a lot to cover. And once you’re done with it, you’ll want to re-read it, at least the chapters where they create an app.

5. Android Programming: The Big Nerd Ranch Guide. This is actually the 2nd edition and it was released pretty much around the same time as the Head First Android Development book above. I always prefer books that are now at the “Xth/nd” edition because this means the first version was good and people bought it. And luckily my experience so far with “book sequels” wasn’t the same as the one I had with movie sequels (i.e. where the sequel sucks).

Back to the book, as the title suggests this is a bit more advanced than a “for dummies” release. I’d say that the first chapters are in the easy-medium class, while the latter ones go towards experienced. So definitely don’t start with this book, rather complete at least one of the first Java ones. Once the Java programming concepts are rooted, you can go onto this one and do actual app developments (you’ll get a few examples of those, including a GeoQuiz that looks kind of accomplishing to finalize.)

As a note, this is the 2nd edition but the author is very close to releasing the 3rd edition. That book will be released on February 18th so if you’re not eager to start you can pre-order it here: Android Programming: The Big Nerd Ranch Guide (3rd Edition)

6. Bonus book, Head First Design Patterns. I said I’d stick to 5 books but I can’t help recommending another one. The idea is this, Java development will help you understand the core of Android programming, the Android development books will help you understand the process of creating an app (and actually creating several), but I’d add to that mix design patterns. See, chances are that in real-life when you’ll want to develop your app you’ll encounter an issue that for sure someone else encountered long before you. Numerous hours and stackoverflow searches later you might find the right solution, or you might realize the entire way your app was designed is flawed.
This is where design patterns helps. A design pattern is actually a solution to a commonly occurring problem in software design, and one that can be repeatable. You won’t get Java code that you can directly copy/paste into your project, but you will get a sort of procedure that will help you solve that problem in the language you’re developing your app in. That’s why I believe a book about design patterns is a must too, completing the trio of books on Android development for beginners.

My recommendation is (yet again) a head-first solution: Head First Design Patterns. Maybe this could be the good’ol toilet time reading book, but I highly recommend it too. This book will help you recognize common pitfalls in designing software even before you start creating your app. So you’d actually solve a problem before it even occurs.

Again, with thousands of Android development books and related material out there it’s only a matter of how determined you are to start programming your own app. And obviously how much time you have. If you have encountered excellent sources that could help beginners in Android programming feel free to share a comment and I’ll consider adding it to the list too.

I’ll conclude with a few tips to help you on your Android development learning path:

  1. Motivation will be your toughest enemy. To stay motivated while learning you must find something that keeps you engaged. My suggestion is to start as soon as possible to develop an app, be it the most simple one you can. Seeing the results is sometimes the strongest motivator. You can also join an online course, as being part of a community might motivate also. Or write about your experience, start a blog where you learn the concepts you’ve mastered so far. This has the advantage of draw in others interested in starting with Android development, and it also keeps you motivated.
  2. Don’t overdo it. Start slow as if you start on too many fronts at once you might feel overwhelmed and give up. That’s why I also mentioned not to purchase multiple books at once, I’d recommend a maximum of 2 books. Plus, by the time you finish reading those you might realize that another book was released that’s better on that subject.
  3. Set a goal. The most obvious goal is creating an app that might be your ticket into the wealthy club. It’s ok to dream big, and set goals. Thus think of an app based on an idea you have, and start working on that. Work can be as little as drawing layouts, figuring the logic behind actions or simply creating the images for it. Anything you do will help keep you motivated. It’s much more difficult to give up on something you’ve invested in (i.e. time) than on something you’ve just started.
  4. Try to work for others. Sites such as Freelancer & Upwork have thousands of jobs, so you might try working for others as a way to keep you motivated. There are contests organized on these sites, so you might participate in one just for gaining experience. Don’t look at this from a financial angle, just consider it experience. If you’ll get some money even better, but the thought of participating and working on something real is a good motivator.
  5. Tell your family. This might trigger your fear of letting others down and help you continue learning. I know, it sounds a bit strange, but telling your family that you’ve started learning Android development might help you on the long run. It’s one thing to give up when no one knows what you’ve embarked on, and another thing to give up when others know.

I’ve been asked what Android Development books I took into consideration for this list. Below you can find the full list of 32 Android development related books for beginners that I considered – you can sort the list by Amazon rating, price and even release year:

Book Title (Paperback)AuthorAmazon Rating (average)No. of ratingsPriceRelease year
Java: A Beginner's Guide, Sixth EditionHerbert Schildt4.4267$20.812014
Introduction to Java Programming: Brief Version, 10th EditionY. Daniel Liang4.1289$133.392014
Java: An Introduction to Problem Solving and Programming (7th Edition)Walter J. Savitch4.1127$150.102014
Effective Java (2nd Edition)Joshua Bloch4.5227$36.892008
Java Illuminated: An Active Learning Approach 4th EditionJulie Anderson3.623$137.052014
Learn Java in One Day and Learn It WellLCF Publishing4.510$10.562016
Java Foundations: Introduction to Program Design and Data Structures (4th Edition)Peter J. DePasquale3.720$154.002016
Introduction to Programming in Java: An Interdisciplinary ApproachRobert Sedgewick3.941$91.312007
Introduction to Programming with Java: A Problem Solving Approach 2nd EditionJohn Dean4.111$180.182013
Introduction to Computing and Programming with Java: A Multimedia ApproachMark J. Guzdial3.624$167.392006
Beginning Programming with Java For Dummies 4th EditionBarry A. Burd4.4172$21.192014
Objects First with Java: A Practical IntroductionMichael Kölling22$133.702016
Introduction Programming Greenfoot Object Oriented SimulationsMichael Kölling4.28$102.372015
Java Programming: Complete Beginners LanguageBrian Draper427$13.382016
Objects First: Java Practical IntroductionDavid J. Barnes4.123$27.002011
Murachs: Java ProgrammingJoel Murach3.966$42.732011
Android Programming: Nerd Ranch GuideChris Stewart4.6119$26.822015
Android Development Programming GuideOs Swift4.5163$33.492015
Unity Action Multiplatform Game DevelopmentJoe Hocking4.544$42.742015
App Inventor: Create Your Android AppDavid Wolber4.127$28.632014
Murachs: Android ProgrammingJoel Murach4.66$45.622015
Head First Android Development Brain FriendlyDavid Griffiths4.761$34.112015
Android Boot Camp Developers usingCorinne Hoisington3.317$97.952014
Programming Mobile Applications AndroidThomas J. Duffy2.44$97.082012
Android Programming ConceptsTrish Cornez32$98.952015
Android: How ProgramP.J. Deitel2.815$154.452016
Serverless Single Page AppsBen Rady4.99$19.182016
Android Studio Development EssentialsNeil Smyth4.63$44.992016
Android Programming: Ranch Guide Guides 3rd editionBill PhillipsUnpublished-$30.212016
Learn Android Studio Quickly EffectivelyClifton Craig4.426$36.282015