Both free and paid I recently aimed squarely at people that wanted to get started with Android development. released a book After releasing it, I visited to give away five copies of the book and soon had people thanking me for the book but also bemoaning the (supposed) lack of good resources for beginners on the web. r/learnprogramming I couldn’t disagree more: I think that’s there’s a boatload of awesome resources on the web aimed at Android beginners (both free and paid), so I went ahead and promised to make a list of my favorite resources. Here we go! Free Java Before you go ahead and try to learn the Android SDK, it helps to have a good knowledge of the Java programming language. If you go on YouTube and search for “Java for beginners”, you’ll get of results. a ton Filtering through those can be a chore, so let me help you with that: the ones you want to watch are Derek Banas’s (AKA Learn Java in 30 minutes, which is a tall order) Java Programming John Purcell’s (AKA caveofprogramming) Java for Complete Beginners Now, I’m not suggesting that you should watch both, although go ahead and do if you want. It can’t hurt, unless you are being chased by a xenomorph while you’re watching. In that case, it’ll definitely hurt. Watch Derek Banas’s 30-minute video . The video is meant for people that already have some experience with conditional statements, loops etc. in other languages. if you already have some experience in other programming languages If you have never done any programming before, watch John Purcell’s series of videos. It’ll explain everything in great detail. There’s another Java course that you won’t find on YouTube. For this one, you have to go to ’s site and sign up to be able to watch Udacity Intro to Java Programming. Finally, there’s a great that I couldn’t recommend more. Java guide over at WikiBooks Now, you don’t need to learn everything about Java to be able to create Android apps. I suggest that you focus on the following subjects Basic syntax Flow control (conditional statements, for- and while-loops) The basics of Object Oriented Programming (classes, objects, methods, inheritance and polymorphism) The Java type system Generics! Generics! Generics! And the Java Collection Framework. Lists, Sets and Maps need to be your friends. So many apps work by presenting sets of data to the user that you’ll be using Collections very often Interfaces Exceptions and try/catch blocks The basics of Threads and Runnables These should have you covered. _I'm an Android developer and designer with a love for beautiful UIs!_www.buymeacoffee.com Buy Antonis Tsagaris a Coffee - BuyMeACoffee.com Android Learning Java is only the first step in creating Android apps. You then have to get familiar with the Android SDK ( oftware evelopment it). S D K When developing Android apps, you’ll be mainly using Java and XML. I say mainly because the Gradle build system uses Groovy, the NDK (Native Development Kit) uses C/C++ and AIDL (Android Interface Definition Language) uses… something. The thing is, you won’t have any use for the NDK or the AIDL when you’re a beginner (or ever) and knowledge of Groovy is not necessary since what you’ll be doing with Gradle is mostly copying & pasting lines of code in a file called build.gradle. XML (Extensible Markup Language) is a language. This means that it is meant to things, not define how they work. If you’ve ever done any web programming (even basic stuff), you must have used HTML. In HTML, when you want to display a paragraph on screen, you use a paragraph element, like this markup describe <p>This is a paragraph</p> This is simply declarative: you something. If you want to change the content of the paragraph according to some condition or something downloaded from a server, you will probably use JavaScript or PHP. show XML is a lot like HTML in that it’s what you’ll be using to create your user interface: you’ll be using it to place various elements, like TextViews, ImageViews and EditTexts on screen. XML is a huge subject and you’ll find lots of info about it on the web, including the aforementioned WikiBooks site. However, you will only need a small subset of XML to work on Android apps. For an adequate introduction to XML in Android, my book should suffice. Android Development for Gifted Primates I know, I know: “that was the most shameless plug I’ve ever seen. I’m leaving this shitshow!”. But wait — what if I told you that you can get a big chunk of the book mailed to you for free by entering your e-mail address below? This free sample contains a lot of info about XML usage, and it’s specific to Android development. You’re welcome. There a couple of really good free Android tutorials on YouTube. Again, if you go looking by simply doing a search, you’ll be bombarded with choices, so allow me to suggest a couple of great ones : this is amazing. Very informative, fun and clearly-explained The New Boston : another hero of mine. A huge playlist of tutorials, aimed at beginners. You may have some trouble with the accent at first but you’ll get used to it after a while. The best I can describe the accent is “Arnold Schwarzenegger if he was Indian. And tech-badass, if that was a thing”. slidenerd You can also put that Udacity account (you have hopefully created by now) to good use by checking out their course and their Android Basics series, which include Android Development for Beginners User Input Networking Data Storage Finally, John Purcell (what a guy!) has on his site caveofprogramming.com but you’ll have to create an account to watch it. Small price to pay for the sheer awesomeness on display. a free Android course for beginners Paid Java I won’t be suggesting any paid Java resources since the free stuff should have you covered. However, if you want to learn more about Java, Joshua Bloch’s is indispensible. Effective Java 2nd Edition Also, if you want to get into good habits early on, will teach you some very useful idioms usually used in Java programming. Head-First Design Patterns Android There’s two places that you can find great content at great prices: Udemy and Team Treehouse. Let’s start with : you’ll have to pay a monthly subscription of $25 for the basic plan (which includes a lot) but it’s definitely worth it. Team Treehouse A great feature on Team Treehouse is Tracks: There is a and an track that will guide you through the process of learning Android development by suggesting a set order in which to take the various sub-tutorials on the site. Think of them as a set menu in a restaurant, only _Less Delicious But More Nutricious_™. I missed my calling as a marketer. Beginner Intermediate Another perk! If you create an account at TeamTreehouse, you’ll also have access to their Java tutorials! Similarly to YouTube, if you go at Udemy and search for “android development”, you’ll get so many suggestions you won’t know where to start. So, in true “I’m awesome” fashion, here are my suggestions Tim Buchalka’s Master Android N App Development With Java Matthew Penning’s Android Development With Java Essentials A tip: some courses on Udemy cost quite a bit but there are very frequent discounts on the site. You can also install a Chrome extension called , which will apply coupon codes automatically to give you the biggest discount available at the time. Honey I was bummed out to find out that LearnByTheByte’s awesome four-part tutorial on Android development was pulled from Udemy (and their own site) because that one was fantastic. At least I managed to , which is something I guess (part I of their tutorials). track this down on YouTube Finally, I’d like to suggest some Android development books that won’t confuse beginners Barry Burd’s . Barry has a friendly, approachable writing style that I enjoyed immensely. Android Application Development All-in-One For Dummies Big Nerd Ranch’s is a very cool guide, that is easy to read but goes into considerable depth later in the book Android Programming Later on, you might like to check out , which is huge and exhaustive and something that I think any serious Android developer should have in their arsenal. The Busy Coder’s Guide to Android Development by Ian Clifton is another book you should take a look at later on. Another favorite of mine is A but, again, bookmark it and check it out once you’ve created a couple of apps first. Android User Interface Design ndroid Programming: Pushing the Limits And that’s it! Comment below if you need to ask me anything. Thanks for reading.