Like losing weight, building muscle or learning a new language, learning to create Android apps is an ambition shared by many. Just like those other goals though, it’s also an ambition that many of us will never get around to. Partly this is because there are more pressing concerns on our radar (like watching the rest of Game of Thrones…) but partly it’s a matter of knowing where to start. Learning to develop for Android means setting up Android Studio, downloading the SDK, learning Java and more… It’s not exactly something you can just dip into! And certainly not after a hard day at work.
Sometimes you just need a nudge in the right direction, or a little structure to help guide you through the process. Happily, there are a number of great resources out there that can help including several completely free, fully-fledged courses. Next time you have a free hour in the evening, try dipping into one of these and you can start building up a foundation of knowledge that will set you on track to becoming a pro developer! Here we’ll take a look at some of the best free resources available and compare these to more traditional options such as attending a college or paid course.
The first and the most up-to-date source you have access to is Android’s very own website. Developer.android.com is one of the best places for all Android related resources on the web. One of the lesser known features that it includes is a full how-to with exercises on Android app development. These cover setting up and installing your developer environment all the way through implementing Google Cloud Messaging in your app and beyond. This site contains an incredibly vast supply of information and it is fortunate that the Android team has taken the time to go into such detail at the beginner level in addition to some of the more experienced developer content. The link above will start you at the beginning, but you will likely do good to make yourself familiar with the API Guides, Reference and Samples sections to get the most out of what Google has to offer here.
While you are certainly welcomed to dive head first into Android development, a preliminary scan of the materials above might have clued you in to the need for a little background knowledge. Android uses Java. At this site, Oracle (the company that owns Java) provides a good introduction to the basics of the Java language. It’s not a bad place to start if you are reading this and asking yourself, “What is Java?”. This is also where you need to head if you’re going to download the Java JDK to get started.
Codecademy has been around for a little while now. It is another site that, while not specifically geared towards Android itself, is a great place for the novice to acclimate themselves with computer code. Codecademy has many great hands-on tutorials of popular programming languages such as Python, Java Script and HTML which can help get you familiar with a lot of the terms and concepts used throughout computer programming. While you won’t come away with a working Android application here, you’re still going to learn something that will come in handy.
Much like Android’s own developer site, Vogella is filled with in-depth tutorials on some of the more advanced concepts in Android development, but it also starts at the beginning. Vogella is a great resource because it is free but will gladly accept your donations, especially if you go on to create the next Instagram. The tutorials here are easy enough to follow and include plenty of screenshots and code snippets. The site is pretty basic as far as online learning goes these days, so you won’t find any interactive quizes or exercises here. But as always, you can’t beat free.
Formerly Mobiletuts+, Envatotuts+ is another free resource that is based around written tutorials. There are a huge selection of courses on offer here which range from general overviews, to more specific tasks like handling intents and acquiring device sensor data. There’s even a short course on developing for Google Cardboard! There are also a good number of general Java tutorials, with some being geared specifically towards Android development! This is especially useful if you are someone who finds themselves asking “How does this pertain to me and what I want to do?” as you master some of the foundational programming materials.
Moving to something that is not entirely free, Treehouse is a whimsical combination of traditional e-learning and Sesame Street. This is not an exaggerated analysis as there really are talking puppets involved. Nevertheless, there is a wealth of information offered within this alternative learning experience. Treehouse offers a fully interactive experience for learning software development and gets about as close as you can to having your hand held throughout the entire process. Sections are filled with videos and interactive code challenges with plenty of quizzes and additional reading material to reinforce your learning along the way.
Treehouse is a whimsical combination of traditional e-learning and Sesame Street.
The site offers different learning tracks for many of the more common and popular programming languages, including tracks for Android and iOS development which will walk you through creating apps. As mentioned previously, the service is mostly free. You are able to access all of the video and printed tutorial content without signing up, but the code challenges, quizzes and the ability to download videos will require a monthly or yearly subscription. You’re looking at $25 or $49 per month for the Basic and Pro packages respectively. While we all love free, Treehouse manages to offer a more traditional learning experience for a fraction of the cost of a brick and mortar institution. You still won’t get a fancy piece of paper at the end, but you might just have an app to show for it.
Udemy is another semi-free solution for learning Android development. There are a number of different courses of varying lengths and content taught by different instructors. Many of the courses cover the basics with others offering more advanced and specialized subject matter. Some of the shorter courses are offered for free while others will run you up to $99. There is a lot offered here and I would recommend browsing the catalog thoroughly before making your selection. You can also find courses on pretty much every other subject matter here too, whether you want to learn cooking or German!
One more resource that is not entirely Android specific but is becoming a pioneer in free online education is Coursera. Coursera is unique in that its courses are taught by real college professors from real universities across the country. Founded by educators out of Stanford University, Coursera manages to offer real college classes online for free. Courses featured on the site consist of the same material taught by the same professors found at their respective universities. Classes have beginning and end dates, but can be started at any time while the course is being offered. Classes consist of recorded lectures, interactive knowledge checks, tests, quizzes and even homework! Students also receive a certificate of completion at the end. There is plenty offered here in the way of computer programming and technology related learning, but if you happen to feel like brushing up on your art history it is there as well. Perspective mobile developers will likely find something more specific to their needs.
When it comes to the many helpful resources available to assist you in your app endeavors, it pays to go straight to the source. In addition to the vast quantities of information that can be found on developer.android.com, the Android Developer Relations Team also maintains regularly updated Google+ and YouTube accounts. While they won’t take you from start to finish in developing your first app, they are the best way to stay up to date on the most recent changes in Android. Google+ can be especially useful when you have questions. If you are stuck on how to implement something or just want to know if one design you are working on looks better than another, there are generally plenty of community participants willing to offer help or opinions. The Android Developers account also maintains several Communities such as Android Developer Tools and Android Development, which are good for getting involved in more specific conversation topics.
The Android Developers YouTube account is equally chock full of information. Here you get access to what feels like the entire Android team through videos on topics ranging from app design to marketing and visibility in Google Play. Learn from the pros as they offer live hangouts and discussions on implementing new features, best practices and even game development. As you go through the process of learning to develop for Android, this site can provide valuable perspective and help to refine your knowledge so you can get your app right the first time. Of course YouTube is generally a great resource for tutorials, howtos and lessons from the community as well. If you want to quickly learn to do something specific, or find a step-by-step tutorial for creating a video game/social app/whatever else, then searching on YouTube is often a good option.
And now for something that is definitely not free. While there are plenty of people who have managed to gain a great deal of experience and know-how all on their own, there is still no substitute for a formal degree from an accredited institution. Especially for those hoping to parlay their development skills over to full time, gainful employment, “self taught” is not a word that shows up regularly on job boards.
Actually going to school is very expensive (and time consuming). According to the College Board, the average cost of a four year degree for 2015-2016 was “$32,405 at private colleges, $9,410 for state residents at public colleges, and $23,893 for out-of-state residents attending public universities”. Not insignificant sums of money there! The average student also graduated with $35,5051 in debt, but the payoff for a degree such as computer science or software engineering can still be well worth it. Recently, Forbes ranked the top highest paying majors for 2015 and listed computer engineering as number 9 with a mean average salary of $87,000 between the ages of 25 and 59. Of course this is an industry that is still rapidly growing and figures like these don’t even take into account all the freelance developers and startups that are striking out on their own. This means that paying off that degree may not be a problem in the long run. Something else to consider is this: if you are employed at the moment then there is a good chance that your current employer also offers some sort of tuition reimbursement as part of your benefits.
Ultimately, if you are looking to go it alone and make Android development a personal quest, hobby, or bullet point on a resume, then these are some of the best sources on the web you have access to. On the other hand, if you are hoping to get millions in seed funding and make a big splash in the crowded pond of filtered water that is Silicon Valley, then a formal degree might be the way to go. It certainly won’t go against you anyway and if you’re thinking of doing any degree, a coding degree will certainly be one of the more vocational options.
There are plenty of zero-to-hero stories of self-taught developers creating world-changing apps from their Mums' basements
Then again, there are plenty of zero-to-hero stories of self-taught developers creating world-changing apps from their Mums’ basements (basement optional). Fortunately, the Android community has always proven willing to lend help and support for any direction you choose to take your skills as a developer. Many of these sources above are also great places to reach out and get assistance or to hear some success stories from people like you. We welcome the conversation here as well. If you are looking for a place to start developing, struck out on your own and have a success story to share, or you went the traditional route and gave it the old college try, we would love to hear from you. Please share your thoughts in the comments below.[native_ad id=”2″][/native_ad]