Udacity Full Stack Nanodegree — is it worth it?

Obi R.
5 min readAug 11, 2020

--

From manual Quality Assurance to Data Engineer at Expedia

How I got hooked

One day, I was browsing the Web, bored out of my mind with my job as a Manual QA ‘Engineer’. Somehow, in the process, I signed up for a free online course in Artificial Intelligence for Robotics. Twenty minutes later, I was already coding. When I finally got up from my desk, it was 5 am.

How did it happen?

The course was taught by some German dude. After a while I realized “Hey, this guy is awesome at explaining things”. Despite the mind-bending Maths used in the course, I somehow managed to complete the programming exercises that came with the lectures. It felt good, really good.

My self-esteem boomed.

The guy who kept me banging away at my keyboard until the wee hours

In the couple of months prior to that, I had been trying to get an online Bachelor’s degree and fulfil my dream of becoming a techie.

I got screwed, badly.

3000 USD and one bank loan down the road, I was nowhere. The first university I signed up for turned out to be a scam. The second one taught me a little bit about ‘kernels’ and ‘memory management’, all for the modest price of $1500. I felt like a loser and a royal idiot.

But that early morning, when I finally walked away from my desk, I didn’t feel like a fool at all. This middle-aged German guy on the screen had just taught me some really cool science stuff, all the while being passionate, funny and modest.

A couple of weeks later I learned this “guy” was Sebastian Thrun, former Stanford researcher, father of the self-driving car and founder of the online education startup Udacity.

And that was a turning point in my career, because…

…you’re now a “Roboticist for AI”?

No, of course not. I didn’t even finish that course. It would’ve been useless for my day job anyway.

But what I did next is I went to Udacity’s website and signed up for a big, structured course that seemed to teach the skills “real devs” around me had — the Fullstack Developer “Nanodegree”. Some backend programming, some frontend, the basics of Linux OS and how to deploy applications online.

2–3 months later, I had a portfolio of 5 projects, a (naive) grasp of Python, and a much, much better understanding of what my colleagues at work were talking about.

My first backend app, written from scratch

The value of leverage

To a software developer, a QA guy who only knows how to click around is just that — a QA guy. It’s too tedious to explain to him how your world works. So you don’t bother. There’s a wall between you.

But a QA guy who knows how to build simple frontends and backends — well, he’s one of the tribe. He’s still really rubbish at programming, but he’s no longer a waste of your time. We’ve gone from “impossible to teach” to “a bit of a job, but doable”.

0.1 is so much larger than 0.

I got people at work to teach me stuff.

Several years later, after lots of learning from others, I’m lucky enough to be one of the people redesigning a multimillion-dollar marketing platform at Expedia, working on things like AWS Elastic MapReduce and PySpark.

Pros

  1. You learn Python — Python is supercool. It’s like knowing the basics of English — you can conquer the world with it.
  2. You learn frontend development — knowing a bit of JavaScript is always useful when you’re in an entry level job
  3. You complete difficult things — some of the projects are hard, but finishing them is really, really satisfying
  4. You learn to write quality code— each of the projects you submit is reviewed by a developer specialising in the field. They don’t let you get away with unstructured code, a lack of comments or other shortcuts — creating quality code quickly becomes a necessity, and a habit.**

** Or at least it used to be like that several years ago — the reviewers back then were absolutely fantastic, and passionate.

Cons

  1. You might struggle to follow the instructors — some of the content creators at Udacity are great**, others tend to make mental leaps, speak in a monotone, and seem to struggle to place themselves in your shoes. Check out recent reviews on Reddit and other places to get the current lay of the land.
  2. You still need to do your work — you’ll spend a lot of time researching new things, scratching your head and generally being frustrated. A con for some.

** In my case, I was very lucky to learn from Ben Jaffe and Lorenzo Brown, though their excellent materials are no longer part of the course.

Tips for studying with Udacity

  1. Use flashcards — there’s a wealth of material to master, and you want your newfound expertise to stick.
  2. If you have time, use the Feynman technique **

I’ll never forget the look on our Backend Lead Engineer’s face when I launched into a passionate description of how route registration in Flask works.

The projects you’ll do as part of the course give you lots of opportunities to deep-dive into various software engineering topics. Use them.

I tried out the Feynman technique on the backend project (implemented in Flask). Boy, did it pay off.

Apart from being able to drop some serious buzzwords on unsuspecting senior engineers, it’s just great to intimately know what you’re doing. You feel… at ease. Suffice it to say, I blazed through the backend project like Arnold Schwarzenegger through a jungle full of good-natured butterflies.

** (it’s an approach to studying popularized by the Nobel prize winner Richard Feynman)

3. Don’t throw yourself at the hard courses right off the bat.

If you’re in the same place I was in 4 years ago, you probably want to do something very hard and impressive straight away. Robotics. C++. AI.

Don’t. It’s doable, but ultimately, it’s a misstep. If you don’t have a university degree, those advanced courses won’t do you much good.

Instead, learn something simple and practical, so that more senior engineers can offload tasks onto you. Be useful to others.

PS

If you’re an internationally famous Stanford researcher and you’re reading this:

Do put free stuff on YouTube. You can have a massive impact on someone’s life.

PPS

I actually did finish the Robotics course eventually — as part of my Master’s degree at Georgia Tech. You can read the review here, if you’re interested.

Obi is a Data Engineer with a background in software testing. He likes calisthenics, complaining, and geeking out about productivity.

You can connect with him on LinkedIn.

--

--