A Short Review of Udacity’s Self-Driving Car Engineer Nanodegree — First Term
For a little over a month, I have been working almost full-time on finishing the first term of this Nanodegree. The first term’s main theme was deep-learning and computer vision. I learned how to apply deep-learning and computer vision techniques to solve problems encountered by self-driving cars such as traffic sign classification, vehicle tracking, estimation of road lane curvatures, and cloning good human driving behavior. I learned tools and frameworks I have not used before; tools and frameworks which are commonly used in the industry such as Keras, TensorFlow, SKLearn, OpenCV, Anaconda, and AWS GPU servers to solve real-world self-driving car problems.
To pass this 800-USD-expensive term, you need to submit five Python projects within three months. All the projects involve a lot of parameter tuning and experimentation. Upon submission, the projects are carefully reviewed by human reviewers at Udacity. The project reviews are really detailed and are based on a specific set of predefined criteria. A human reviewer will provide suggestions and links to other sources that will help you improve or expand your project even when it already meets the passing specifications (should you wish to make it cooler!).
Aside from the valuable course material carefully selected and put together by Udacity, I really appreciate the effort they put at presenting the material. The bite-size lessons are no more than five minutes long — concise but comprehensive. The many useful visual aids and heavily-commented sample codes really helped me understand difficult concepts that would have confused me otherwise. You are also frequently asked conceptual and practical questions that test your understanding which really strengthens your intuition of the theories and ideas beyond the maths.
Here’s something cool one student (Arnaldo Gunzi) said about some of the technical definitions discussed in class:
“Overfit: the guy who has a perfect grade in school, in all subjects, but outside school knows nothing in real world. Or someone who has a phD in nuclear advanced theoretical gravitational quantum physics, but works as a waiter in a restaurant, because his knowledge is so specific it has no real world application.”
“The HOG extractor is the heart of the method described here. It is a way to extract meaningful features of a image. It captures the “general aspect” of cars, not the “specific details” of it. It is the same as we, humans, do: in a first glance, we locate the car, not the make, the plate, the wheel, or other small detail.”
This course also has materials and projects designed to help you grow professionally. Although these projects are not required to pass the term, I really appreciate them — they are extremely helpful. My favorite aspect of this segment was the part about improving your Github profile, LinkedIn profile, and resume to tailor-fit a specific job opening. Upon submission of the links to your stuff (Github, LinkedIn…) you can expect individualized feedback from human reviewers on how you can make them better. Not to mention the feedback is usually done within 24 hours!
You are also given a mentor who you can message one-on-one any time for any clarifications. You also have to check-in with your mentor weekly to keep you on your toes. Weekly, you are asked if you’re stuck at anything and what your goals are for the week. If you post a message at the Udacity’s forums, their paid support forum mentors respond really fast as well.
One of the most simple yet the most exceptional thing for me is that the platform also asks you to rate and give your feedback on almost any small interaction, from the videos to the project reviews. There were two sets of lessons (linear regressions and introduction neural networks) that I rated low. The presentation wasn’t good — I would’ve been so confused if I hadn’t taken Andrew Ng’s Machine learning course in Coursera a few years ago. Anyway, less than two weeks later they were completely revamped because of the aggregate feedbacks— the presentation the material was so much better! I think this really shows how serious and dedicated Udacity is not only in helping you grow professionally but giving you an enjoyable and smooth learning experience.
To put it simply, though not perfect (I didn’t particularly like the code approach and chosen software structure of the miniflow section), I was really satisfied with how this term was handled. I’m looking forward to the 2nd term where the focus will be on sensor fusion, control, and localization — things which I find more interesting than deep-learning and computer vision. I think it’s worth the price also considering the 212 USD I spent on my AWS server instance (which was probably my own fault for not stopping it when not in use as much as I should :)). It made me realize that there are still many things that I don’t know and many skills I can still improve upon but also gave me the confidence and inspiration to work harder. I loved it so much, that I decided to dedicate this year to improve myself and hopefully be a real professional robotics engineer in the future. I enjoyed this term so much, I applied to Udacity’s much more expensive Robotics Nanodegree program — fingers-crossed I get in!