traffic_light_color_channel

Intro

Hi everyone, I’d like to share my experience with Udacity “Intro to Self-Driving Cars Nanodegree Program” and give you some insight if you doubt that you want to make it. Here is a small remark: I took this course at the beginning of 2019, so now prices and the program could be different.

Some time ago I decided to learn more about autonomous transport and self-driving cars in particular. Quick search in Google has shown me a link to a couple of well known online learning platforms. I never before had any experience with Udacity, so I decided to give it a try.

Quick overview

For the self-driving topics, Udacity provides a fundamental class called “Self Driving Cars”, which have a list of prerequisites:

  • Intermediate Python or C++
  • Basic Linear Algebra
  • Basic Calculus
  • Basic Statistics
  • Basic Physics

Having some background on all these topics, nevertheless, I had decided first to refresh my knowledge and started with a basic course “Intro to Self-Driving Cars Nanodegree Program”.

The only concern I had at that moment was a price. When I took a class, it did cost around 890$, which is quite a lot if you compare it with other popular online learning platforms.

And what I got for this money are:

  • Structured course
  • Personal mentor
  • Reviews and feedback on projects
  • Community and career support

Let’s take a closer look at each item from this list.

Structured course

Nanodegree program consist of following chapters:

1.Intro

In this chapter, you are learning about the Udacity interface and have a quick overview of the topic of the self-driving car.

2.Bayesian Thinking

I found this part one of the most exciting and useful for me. It fits ideally students who want to recap their knowledge in probability theory. Meanwhile, I think people without a math background can find it complicated and can lose some motivation. The material provided in this chapter, in my personal opinion, is not enough to fully understand the topic.

There are a lot of materials online about bayesian probability and probability distributions you can learn before taking a class. For example, I found this book from Head First http://shop.oreilly.com/product/9780596527587.do quite useful to learn about statistics basis.

3.Working with the matrixes

This chapter is dedicated, obviously, to matrixes and their applications in self-driving cars. For students who had an experience with Linerial Algebra in the past, this chapter may seem to be trivial; for others, it is an excellent opportunity to learn something new.

Final project here is an implementation of the Matrix class with a python. If you never did OOP with python, you will enjoy it.

4.Basics of C++

For me, C++ is one of the most exciting and comprehensive topics in software development. There are a lot of people who love it or hate it. Disregarding to which group you belong, if you want to work in the autonomous driving field, you have to learn it.

In this chapter, you will scratch the surface of this programming language, do not expect to become a C++ developer after. The name of this chapter matches the material presented there.

5.Performance programming with C++

If you don’t have real experience with software development, here you can find some exciting ideas about how you can improve your code and how a compiler can optimize it for you. I think it worth your time.

6.Navigating data structures

Material from this chapter will be useful for one who plans to take an advanced class. Students with a degree in Computer Science most likely will not find anything new for them. Still, I personally really enjoyed the part about problem-solving. Definitely can recommend it.

7.Career service

Here you will find some recommendations on how to handle your public profiles in professional social networks. I think it is important regardless of what you are doing Cloud Computing, Self-driving cars, etc. Must have.

8.Vehicle Motion and Control

This chapter is about the application and programming the Calculus, Trigonometry, and Linerial algebra with self-driving car context.

9.Computer vision and machine learning

This part is the most interesting and exciting of the whole course. In this chapter, there are some basic principles from machine learning, and you will implement an application to solve a real-world problem. In my case, it was a traffic light classifier. To complete this project, you most likely will use OpenCV and Python, and it is super exciting.

Personal mentor

During the course, there will be a mentor assigned to you. He can answer your question, support you and you can have a one on one calls with him if you need. Time slots are limited, but it should be enough.

Reviews and feedback on projects

Reviews and feedback are my favorite part of all the process. Usually, you will have a feedback on any project you have done within 24 hours, and what I like very often with the review you will receive links to the additional materials about your current topic, which is very convenient.

Community support and Career service

The community is an essential part of the Udacity platform. There are a lot of smart and friendly people who will be happy to support you with any question you will have.

Conclusion

I have done this class in one month, and back then I had mixed feelings: from one point of view, I enjoyed the course, regardless that most of the things there were familiar to me. From another, it was quite expensive.

Nowadays there is another subscription plan, you can pay per month, and if you are a fast learner, you can save some money. Nevertheless, because of this, you also can be in a rush and do not spend enough time trying to understand things and aiming only to complete a class as soon as possible to save money.

As a conclusion, if you have a basic math knowledge and if self-driving cars topic is interesting for you, it may be a good starting point. I would think about to take it.