DEV Community

Ferdinand Mütsch
Ferdinand Mütsch

Posted on • Edited on

My experiences with the Android Developer Nanodegree

Last year from March to August I participated in Udacity's Android Developer Nanodegree program and here I want to share my experiences.

Originally, I got an ad on Facebook to apply for a scholarship offered by Google and Udacity for the Nanodegree program, which normally costs ~ 900 €. I had done very few Android development before and although I did not particularly want to prepare for a career as an Android developer, I was definitely interested in learning Android more thoroughly. However, as we all know, it is very hard to find motivation to learn a new technology without having a real, serious project to build. Consequently, I applied for the scholarship and I was lucky (thanks to Google and Udacity for this opportunity!).

The Nanodegree

Time Management

When participating in a Nanodegree program, you usually have six months to complete it. Due to classes at university, I only had time to start in my, so essentially I had three months to complete it. But since I was not a complete beginner, that was totally manageable.

Udacity suggests a schedule for when to do which module of the course as well as soft deadlines for the finals projects at the end of every learning section. However, that is only a suggestion. The only hard deadline is the submission of the very final project. Personally, I decided to take two days in a week to fully focus on learning and coding for the Nanodegree.

Structure

This specific Nanodegree program consisted of five major sections.

  1. Developing Android Apps
  2. Advanced Android App Development
  3. Gradle for Android and Java
  4. Material Design for Android Developers
  5. Capstone Project

Every section consists of several (1) video lessons, in which Udacity developers explain concepts and do live coding. Between lessons, there are (2) quizzes to test your gained knowledge, however, the quizzes were usually quite easy and obvious. In addition to that, there are several (3) coding tasks, which require you to practically apply the newly learned concepts. Every coding task starts with an unfinished, small toy app and a list of TODOs you have to fulfill in order to finish it. The TODOs tell you quite precisely what to do, so sometimes it was not really a challenge. Also, you do not have to do the coding tasks at all, if you do not want to, because nobody checks your results. But obviously it makes sense to do them and it helps a lot for the (4) project app at the end of each section (sometimes there are more than one). For this project, you are told to implement an app with a certain functionality (e.g. a cooking recipe manager, a movie collection manager, an RSS reader, etc.). Usually it starts off with a raw scaffolded app skeleton which you have to finish - this time without specific TODOs or instructions. At the end, you submit your code either via a GitHub repository or as a ZIP file and a Udacity mentor will review your code and give you helpful feedback regarding functionality, design and code style.

Here are three of my section-end project apps:

  1. popular-movies-android: App for displaying movie information fetched from an online movie database. Focus was on interacting with an external, third-party web API.
  2. baking-time-android: App for showing baking recipes and instructions. Focus was on widgets, responsive design and integrating a video player.
  3. xyz-reader-android: Basic reading app for text articles. Focus was on properly implementing Material Design, animations and UX.

Community

Probably the best thing about the whole course was the community. There is an official Slack channel and a forum full of like-minded developers from literally all around the world who are going through the same experience like you. People ask questions, discuss about certain tasks or technology in general and you immediately feel extremely welcome. Whether you are unsure about a task or cannot get a certain error fixed, there are people who will help you. Also, a lot of Udacity mentors hang out on Slack and in the forum and provide support as well, e.g. in form of weekly AMA sessions. In addition to that, every participant of the course is assigned a personal mentor, who is a Udacity mentor that you can contact directly of you have questions. Actually, I did never contact mine, but I am sure they are willing to help.

Career Boost

Despite the fact that having a Nanodegree looks quite good on your resumé anyway, Udacity also provides a lot of support to help you building a successful career with your newly gained Android knowledge. They provide information and support for your application, review your CV and more.

The Capstone project

At the very end of the course, there is the so called Capstone project and this was the most fun part during the whole Nanodegree (and also the greatest effort). You are given the task to freely realize any app you like, given some requirements, e.g. that you use at least three third-party libraries, follow Material Design guidelines, provide a homescreen widget and a few more.

The final project consists of two parts. First, you have to submit a design proposal, which includes your app idea, some mock-ups and details on how you plan to implement it. After your design has been approved by Udacity mentors, you can start with phase 2, the actual implementation.

QuizNerd

At that time I had a few coding interviews, so I came to the idea to implement a multi-player coding quiz game as a final project. Although that was probably a more comprehensive project than most of the others, I still wanted to do it, especially because it was an app I really wanted to have for myself, not only for the Nanodegree.

I spent approximately two weeks of nearly full-time coding on that final project and finally came up with my app called QuizNerd. It is implemented in pure Android (using Java) without any structural frameworks (e.g. like Dagger) and uses Google's Firebase as a backend. More precisely I used Firebase Authentication for user management, Firestore as a real-time document database, FCM for notifications and and Firebase Cloud Functions as a Serverless framework for backend-side logic.

If you are a developer who likes games like QuizClash, I would love to have you try out QuizNerd! You can find it on the Play Store and it has several hundred questions for Android, C++, C#, HTML, Java, JavaScript, PHP, Python and Swift. Feel free to share your feedback with me 🙂.

Conclusion

It was fun! I learned a lot during the Nanodegree and I am kind of confident calling myself an Android developer now. Most of the concepts were explained very detailed. Fore instance one of my favorite chapters was the one about Gradle, where they precisely explained how Gradle works, how to write own Gradle tasks and how to apply that to Android.

If you keep on motivating yourself to work through the lessons and especially through the final project, it is going to pay off. Moreover, in addition to precious programming knowledge, you also get to know a lot of interesting people from the community all over the world.

However, there is two things I would want to criticize. Firstly, nowadays Java is rapidly becoming less popular for Android development, while Kotlin is considered the future. Many professional developers who I have talked to claim that it does not make a lot of sense today to still start a new Android project with Java instead of Kotlin, so I wish the Nandogree was based on Kotlin in order to be even more future-proof. Also, de-facto standard frameworks like Dagger were not mentioned throughout the course, while (in my opinion) less useful things like homescreen widget had been pushed by Udacity. Maybe that is going to change in newer versions of the course.

The second thing is that, as I mentioned earlier, the TODO-tasks in the final projects of every section were too specific and too fine-grained. Sometimes I found myself just stupidly doing exactly what the TODOs wanted me to do instead of trying to capture a more high-level picture and solve design problems by myself.

That being said, I would recommend the Udacity Nanodegree to everyone who is interested in becoming an Android developer. Have fun!

EDIT: Feel free to challenge me in QuizNerd. My nickname is the same as here on dev.to.

Links

Top comments (12)

Collapse
 
ruchabhattjoshi profile image
Rucha Joshi • Edited

hi nice article, i'm willing to do nano degree i have 2+ years experience but not confident enough, Can you guide me which course should be perfect for me Android basics or Android developer? thank you in advance

Collapse
 
n1try profile image
Ferdinand Mütsch

What field is your 2+ years experience in? If it's mobile dev, then you should definitely go for the advanced degree. And even if you didn't do a lot of Android, yet, I'd probably still prefer the non-basic course. Everything is very well explained and, in my opinion, easily comprehensible with "intermediate" programming skills.

Collapse
 
ruchabhattjoshi profile image
Rucha Joshi

i've 2 years experience as android developer but i'm not confident enough for my programming style and structure so i'm confused, should i go for basics and clear my basics and coding structure or improve from taking android developer course and enhance my skills, i also unaware about whats the process and what to do after enroll in course. can you guide me little bit before enrolment?

Thread Thread
 
idontwanttoknow123 profile image
idontwanttoknow123

hey Rucha Joshi, do you mind emailing me @ imrankm880@gmail.com, Got a few question regarding udacity and it looks like you have enrolled on to it

Collapse
 
williamspete321 profile image
williamspete321

Thank you for this article, it's very informative. When you say "intermediate", would someone with 1-2 years of Java be competent with this course? I have made simple Object Oriented Programs but not much beyond this. I'm making very simple Android apps at the moment off of YouTube tutorials and I want to start this course soon.

Thread Thread
 
n1try profile image
Ferdinand Mütsch

I'd say with 1-2 years of Java experience and some basic Android knowledge from tutorials, you should be good to go with the Advanced Android ND. Maybe you will have to look things up occasionally, but it's definitely not an expert course.

Collapse
 
nyguerrillagirl profile image
Lorraine

I am doing the course now and find the material and libaries being used - too dated. I feel lost at times in the exercises - since as you stated the big picture view is not there. I have reached a point in the course where I have to switch over to Ubuntu since their projects do not build on Windows machine (no problem on Unix) due to filepath issue. I would not recommend the course to my best friends. I feel the lessons are patched up, dated and does not really reflect the state of Android programming today.

Collapse
 
lynpatrao profile image
Linsiya Patrao • Edited

Hi, Lovely post with a detailed info. Kudos!

I'm a communication consultant and I have no prior knowledge of app development but I have ideas and I'm eager to learn basics of app development. I would like to enroll in Google nanodegree program, but it is way too expensive for me to shell out right now. Would you suggest any website which offers free course?

Collapse
 
emena_a profile image
Erick Mena

Great article, can you help me with one question, is the nanodegree content updated? In which version of android are the exercises?

Collapse
 
n1try profile image
Ferdinand Mütsch • Edited

I'm not sure about that. I remember a statement by one of the Udacity guys in the official forum that some time the course will likely be updated to cover Kotlin instead of Java, because some people "complained" that the technology stack is not up-to-date anymore. But I don't think, they actually updated anything, yet.
Here are the GitHub repos to some of the sub-projects' starter code. They use compileSdkVersion 25 or 27 and last commits were quite some time ago.

github.com/udacity/xyz-reader-star...
github.com/udacity/sandwich-club-s...
github.com/udacity/ud867/tree/mast...

Hope that helps you.

Collapse
 
emena_a profile image
Erick Mena

Thanks, one last question, did you complete the entire nanodegree in 3 months(Capstone project included)?

Thread Thread
 
n1try profile image
Ferdinand Mütsch

Yes, that's totally doable, at least if you already have some basic programming or even Android experience.