Udacity’s Machine Learning Nanodegree (MLND)

— from a novice’s perspective

Me happily holding the MLND certificate 7 am in the morning

My technical background

I graduated from college with bachelor’s degrees in Finance and Industrial Engineering. I was a consultant at an accounting firm performing control testing and data analysis using mainly Excel and SQL. I had very little experience with Python, which I only learned from two sources: Charles Severance’s Coursera python course and Corey Schafer’s YouTube channel. I did not have a computer science background or any coding experience.

I found this Machine Learning Engineer Nanodegree (MLND) program on Udacity because my girlfriend, a Georgia Tech OMSCS student, referred this website to me. I was immediately captured by the free courses offered on Udacity. Whether you are a novice with little background in programming, or a senior software developer who wants to learn about the start-of-art machine learning knowledge, you will find some very useful free courses at Udacity.

Before I enrolled in the Machine Learning Engineer Nanodegree (MLND) program in March 2018, as suggested on the program page, I prepared myself by learning python from Coursera and YouTube, also the free machine learning course offered on the Udacity website (I actually never finished). By the time I started the nanodegree program, I would not say that I was comfortable with python, but I was certain that I would not get stuck for too long and get despaired.

Why I chose to enroll in MLND

In the late 2017, I had an opportunity to make a drastic change for my career. What I wanted was a structured curriculum or a learning plan for someone who was yet comfortable in programming. I read many articles about interesting applications using machine learning such as an app that can classify dog breeds or the race on the self-driving car industry.

MLND setup

Udacity’s MLND is a well-planned six-month program that consists of six parts and six reviewed projects:

  1. Machine Learning Foundation — Predicting Boston Housing Prices
  2. Supervised Learning — Finding Donors For CharityML
  3. Unsupervised Learning — Creating Customer Segments
  4. Deep Learning — Dog Breed Classifier
  5. Reinforcement Learning — Teach a Quadcopter How to Fly
  6. Machine Learning Capstone (project that you chose) — I chose one of Kaggle’s Competition, What’s Cooking.

Here is my github repository for my MLND projects. You can find more detailed information here.

What did I learn?

  1. Machine Learning theories and applications: Each lecture is well designed, comfortably paced, and instructed by industry experts. I usually like to learn the theories and math behind the machine learning techniques while really appreciate that each of them explained very well in layman’s terms, and in relations to today’s technology and application. Udaciy gives me exactly what I want to progress throughout this program.
  2. Python libraries that I have become familiar with: numpy, pandas, sklearn, and Keras
  3. Python libraries that I picked up along the learning: nltk, seaborn, matplotlib, libxgboost, lightgbm
  4. Markup language: markdown
  5. Tools: jupyter notebook, Atom, Git, Slack
  6. Time management: Within each of the six parts, estimated time to complete is provided as a guideline. I strongly suggest not to procrastinate. I spent about 15–30 days on each of the first 5 parts and the projects (about 2/3 of the time for lectures and mini-projects, and the rest for the main projects). For the capstone, I spent about 40 days. In the duration of 6 months, I did had other obligations: working part-time, learning to program in C (went through the C Primer Plus 6e book), training my cat to use the toilet, and moving from New Jersey to California. In total, I think the program took me about 4–5 months to complete.

My steep learning curve

MLND provides enough starter code so students do not get lost mid way. Especially, I like how the starer code start to decrease as I grew throughout the program. For the most part, you are expected to follow along the instructions using jupyter notebook (you can actually find them here). I was not very comfortable when I started my first project because of my limited experience in python. The first project scared me. However, I realized that the only way to power through is just to sit down and spend time on it with undivided attention. I struggled using pandas and numpy in the beginning, but at the end, I came through. I have learned so much. If I could do it, you can too!

Feedbacks from project reviewers

If all the project starter code are available on Github, why do you have to pay to get a nanodegree?

My feedback received from project reviewers have been consistently high quality throughout the program. The reviews always contained 3 elements: what I have done well, what I need to improve, suggestions on how to improve.

When I did well on one of the section, I receive positive feedback not just “awesome job”, but also other suggestions to take it to the next level.

When the feedback is about a section that needs more work, a clear direction is always provided with suggestions. I always understood what needed to be done next.

Feedback is the part of the program that I look forward to the most. It is a personalized feedback and guidance for the work you have done reflected by your performance on each of the projects.


I have learned a ton throughout this program. The ‘nano degree’ title does not mean anything to me. It is the projects and learning experience that I advocate. Please leave any comments below if there are anything else that you want me to touch upon.

Source: Deep Learning on Medium