Six Tips for Nanodegree Success from a Six-Time Nanodegree Graduate

James Williams
Udacity Inc
Published in
5 min readMay 4, 2017

Last month I hit two big milestones. I celebrated my THREE year anniversary at Udacity and completed my SIXTH Nanodegree program as a student [Android Basics, Android, Front-End, Full-Stack, Ruby, and Beginning iOS].

You might be wondering why I spent so much time doing work as a student when making content is my day job? I’m a lifelong student first, and second, consuming the same content that you do keeps me in touch with your needs. We’ve all had the professor who has been teaching a same course in the same way for 20 years. With each passing year, their content and style got more and more crufty and old.

Consuming the work of other Content Developers also widens my toolset because everyone approaches material differently. I’ve learned as much from non-technical Nanodegree programs like Business Analyst as I’ve learned from purely technical ones.

Here are some tips I’ve picked up along the way in my Nanodegree studies:

Have a plan before you start.

Are you going to crunch and work on the Nanodegree program full time for several months? Or will you spend 6 months to a year working through it? Many of our materials recommend working 10 hours a week. I know firsthand that isn’t always possible. Try to schedule a recurring time during the week to do course work. If you can only fit in 4–6 hours per week, cool. Realize that the program will take you a bit longer to finish. The habit of working weekly is IMHO just as important as the raw number of hours.

Take notes.

I used to hate taking notes when I was in high school and college. The “notes” I saw were more or less transcriptions of the lecture or giant portions of the text book copied down. I didn’t understand the point of them. What these “notes” didn’t do was transform the content into something that was easier to consume.

I didn’t fully appreciate how transformative notes could be until I started working at Udacity. As a Content Developer, we have to sometimes take very dry material and make it more engaging. Most courses include some storyboarding to plan out what visuals will show and when. Pictograms are added to improve visual flow. My personal notes have been influenced by storyboarding and look like this:

Some example sketchnotes I’ve done.

Or at least, that’s how they look when I intend to share them 😉 .

Another good reason to take notes is your schedule. Sometimes life happens and you can’t work on your Nanodegree program for a while. Having notes can help you review content and jump back in without re-watching a whole lesson. There are a bunch of different note-taking systems. Experiment and find what works for you. A visual style works for me, it might not work for you. That’s OK. Find what does.

Read the project rubric AT LEAST twice.

I generally read the project rubric before looking at any of the related lesson content. This gives me an overview of what I’ll be evaluated on, and pointers on what to pay extra attention to. After finishing the lesson content, I read the rubric again, and the items on the rubric become my to-do list for completing the project. Once I’m ready to submit, I might do another scan as a quick sanity check before submitting. I’ve sometimes caught silly errors that would have tanked my submission otherwise.

Read the project review feedback soon after it comes in.

Our reviewers often grade projects within 24 hours. If you receive a Does Not Meet, try to read the feedback immediately even if you aren’t sure you will have time to fix it. Often I’ve found that the issue was small enough to resolve quickly. If I’m sure it will take 15 mins or less, I try to complete it immediately. If the changes seem complicated, I take notes or make TODOs of what needs to be done. That way, if it takes me a week or two to get back to it, I can jump back into the flow quickly.

Comment your code to make notes to yourself.

Many text editors and IDEs have built-in support for finding TODOs in your code. We don’t require you to remove or address all TODOs but these can be breadcrumbs for what needs to be fixed after a code review. All of the Jetbrains’ IDEs have a built-in TODO tab that will show you which files have a TODO comment in them.

  • Android Studio, IntelliJ IDEA, WebStorm, PyCharm, AppCode
TODO Pane in Android Studio/IntelliJ IDEA

Atom has a plugin called todo-show that provides similar functionality. With todo-show, you can customize the list of strings to make findable. There was one time I submitted a project with cursing in a log message…​but I digress.

Atom Editor with todo-show installed

Aim for an MVP.

An MVP, or Minimum Viable Product, is a product or app that has just enough features to ship to users; or in your case, our project reviewers.

You might want to use the project as a chance to experiment with a new library or programming language. Reconsider that urge. Some rubrics expressly forbid using third-party libraries (e.g. Android Basics). Even if the rubric doesn’t forbid it, you might make it impossible for the code reviewers to grade your code.

Consider this real life experience I had with the Front-End Nanodegree program. For one of the projects, I decided to use Polymer for part of my UI. It was so different from what reviewers were expecting to see that they didn’t know what to do with it. Because of my decision, we went through several rounds of reviews. I had to add comments explaining where and how I had fulfilled each disputed rubric item. In retrospect, that wasn’t the best use of my or the reviewer’s time.

Whether you are considering your first Nanodegree program or your fifth, I think having a plan, taking notes on both the content and your project reviews, and aiming for an MVP will help keep on track in your Nanodegree journey.

Thanks for reading!

~

For more about our programs, please visit:

The Udacity School of Artificial Intelligence
The Udacity School of Autonomous Systems
The Udacity School of Business
The Udacity School of Data Science
The Udacity School of Programming

--

--

James Williams
Udacity Inc

Developer Relations Engineer at Google, Fmr Android Lead @Udacity