A Complete Guide of Udacity Self-Driving Nanodegree Program- Part One
By: Charing Chen
Tags: Self Driving Cars, Udacity Nanodegree

I have an Electrical Engineer degree, but this did not stop me to explore the coding world. During the time I interned at Tesla, the quiet and self-parking car would never fail to amaze me and put a silly smile on my face. That’s when I was intrigued by this complicated yet exciting field and thought, ya, maybe one day I could program a self-driving car!

In this article, I will share my experience of taking Udacity’s self-driving Nanodegree program. First, let me tell you about the overview of my experience and some reflection after I finished this program. Later in the second part, I will list my learning about every project I took and introduce those projects to those who are considering taking this program.

Cost

I spend around $2600 CAD to complete the program. I was interested in this course for a long time and hesitated to take it because of its price. It’s not a small amount. When I first looked up this program about two years ago, Udacity was still offering a one-time payment for the entire six months course as CAD $2000. At that time, after the payment, you could access the course material at your own pace and don’t need to worry about running out of time.

However, recently, as many companies do, Udacity switched to a subscription-based payment. This means you need to pay monthly. If you cannot finish on time and want to continue to access the course material you need to pay for another month. I enrolled during the COVID discount. I paid for all 6 months with 5 months’ price.

It is a lot of money, but I think it’s worth it. Especially to those who do not have a background in robotics and machine learning. This nano degree was designed every well and let you get into those fields with a strong understanding of the basics.

Background Requirement

Photo by Safar Safarov on Unsplash

As I mentioned early, I don’t have a Computer Science degree. I taught myself Python and learned some C back in University. I was afraid of my skill level would not be adequate for this program. Udacity also has this course called “Intro to Self-Driving Car” as recommend as the pre-course for “Self-driving car Engineer”. I was not sure if I need to take that intro course first. Fortunately, the learning curve of the main course is not steep and I was able to understand all new concepts with grace.

So I would say if you have a university degree and some basic python programming experience, you can take the “Self-driving Car Engineer” directly. Otherwise, you should take the “Intro course” to familiarize all the basic concepts of maths and programming.

Time Management

I took this course while full time working. Despite the lockdown, it still required some hard work to keep up. A two to four hours per day commitment is essential. If you are behind, you also need to sacrifice some weekends to catch up.

From my experience, the learning part of the course would not take that long. Mostly it is the projects you need to spend a lot of time on. I will go over some pointers and insight on how each of the projects contains in part two of this article and hopefully would help the future student to get the gear rolling faster on those projects.

Shortcoming

Although online courses offer a more flexible learning experience, it has its shortcomings too. One of them is you need to figure out everything by yourself when you stuck. They do have forms and mentor help pages, but if you have a very specific problem with the code or the environment package, only Dr. Google can help you.

This leads to another troublesome issue I have encountered. Since all the code uses open-source packages, with the depreciation of python 2 and Tensorflow 1, some of the packages are used are no longer available for download via Pip. Thankfully, Udacity has setup virtual machine workspaces for every project just in case this would happen.

Nonetheless, you cannot use IDE within those Linux based VM. If you are editing code in the VM, you are going to use a Vi/Nano like editing interface without auto-completion, suggestions and code check. I like those features and whoever says otherwise… Well, you do you :0

Therefore, I tried to download all the code to my local machine and track my code using Github. Udacity provides guides on how to set up the local environment, but as I mentioned earlier, you might run into issues with depreciated packages you need manually debug the installation. I will talk about this more specifically in the part two project lists.

Here is the next part of the article.