An Honest Review of the Udacity React Nanodegree

Casey Juanxi Li
The Startup
Published in
6 min readAug 2, 2020

Original post: casey.li/udacity-react-nanodegree

tl;dr: Excellent gamified learning for picking up basic React skills. Know basic HTML+CSS, JavaScript and ES6 before starting. Do not count on the Udacity community or credential to get you a job; only you can do that. Fast and helpful online technical mentors. Strong intro to Redux. Look elsewhere for React Native content.

I started the Udacity React Nanodegree in May of 2020, enticed by Udacity’s 1 month free promotion. They market it as a way to pick up new skills during COVID-19, and for the most part this promise has held true. From a quasi-technical data science background, I’ve picked up my first proper software engineering role (off pre-established networks; the course doesn’t add much value on this front). The skills from this course have proven useful since day 1, but they are only an introduction.

I am not affiliated with Udacity or any of the content producers mentioned below. I like Udacity’s mission of democratizing access to technical education. Nanodegrees are a somewhat opaque product, and I‘d like to share an accurate picture of what they accomplish.

Debunking employment expectations: this gives you skills, but you’ll need to find your own job.

Let’s debunk the front-page advertising: “Become a React Developer” and “Master this powerful UI library” are a bit of a stretch. The course by no means guarantees these things — this is 100% aspirational copy to draw you in.

A big orange callout box tells you that “the average salary for React Developers in the U.S. is 120k”. Reality check: unless you’re already an established front-end developer with a strong brand, and you’re using the course to upskill, it’s unlikely you’ll be hitting this comp out of the gate. Actually, it’s unlikely that you could have achieved this nowadays without knowing React or another front-end framework already.

The ideal candidate for this course is someone who knows HTML, CSS, how the DOM works, JavaScript+ES6, and is ready to go deeper on front-end development. If not and you have some other programming experience, allocate a month or two beforehand to pick up the basics.

(Do not write off front-end: it’s really easy to do poorly and really hard to do well. I tried to teach myself React in a weekend a few years ago, and ended up making a pile of rubbish).

Allow longer for pre-reqs if you’re literally starting from zero coding experience (but also pat yourself on the back, because you’re awesome).

The “career services” module of the course is the least useful offering. Pay attention to the common-sense advice on how to set up a professional LinkedIn + Github, if you’ve never done so before. Otherwise, move on. The “career coaches” are not engineers, so I did not book a session. (In general, I find it’s not a good use of time to seek advice on how to do something from people who are not doing the thing).

After graduation, you gain access to an alumni Slack where job postings occasionally appear. I am skeptical about the success rate and quality here. I actually posted a job here myself, for a friend who was looking to hire a data engineer. We ultimately decided that the risk of hiring an unknown stranger off the internet was not worthwhile, even with Udacity’s credential gating.

An introduction from someone who knows you and a strong personal brand are still your best bet. Not perfectly meritocratic, but unfortunately, Udacity has yet to change this mechanic of the modern job market.

Great gamified intro to React. Excellent pedagogy on Redux.

The quality of React content is great, especially for folks like myself who can lose motivation when self-teaching. I enjoy the gamified milestones, the constant % progress bar ticking up after each short video, and the satisfaction of earning little badges on projects. The instructor, Tyler McGinnis, has a strong personal brand outside of Udacity and an effective teaching style.

Some students were unhappy about the React content being “outdated” (i.e. the course appears to be from 2017 and uses class-based components, while React Hooks were released in 2018). I didn’t think anything was so outdated that it compromised my ability to progress. (This may be a testament to React’s staying power, because its basic ideas have remained stable. In the JavaScript world, constantly changing frameworks have become a running joke).

I thought the course’s approach to teaching Redux was very clever. (Redux is a popular state management library, but can be confusing to learn). You implement a simple version of Redux from scratch, and use it in a small app. You then strip out your homemade implementation and replace it with imports from the real Redux library, same function signatures and all.

This takes more time than reading docs or doing a quick tutorial, but gives a deep level of intuition for the Redux concepts of store, action, and reducer. I found it very satisfying.

React Native content is too outdated. (~2017)

Unfortunately, after a great start in the first two modules (React + Redux), the course finishes on a weaker note. The React Native content is outdated to the point of disrupting the learning experience. The number of outdated methods, deprecated libraries, and mismatched screenshots simply becomes too frustrating — I actually ended up purchasing a separate React Native course entirely.

The teaching quality does not decline: React Native has simply changed alot since 2017. That said, for a paid educational product, it is reasonable for students to be upset about this. You can always read docs, search StackOverflow, and tinker around for free. For me, Udacity’s core value add is to set up learning in a way that strikes the perfect balance between too easy to be useful, and too hard to keep me motivated. They delivered this in the React and Redux modules, but unfortunately did not deliver on React Native.

Technical mentors are very helpful. Project reviews do have standards, but are much more lax than real work.

I made heavy use of the Udacity technical mentor forum to ask technical questions about course concepts or project bugs. The mentors are largely knowledgeable and cheerful. If you ask specific questions, and point to your code repo in a way that makes it easy to reproduce your issue, you can expect a helpful reply in 1–2 hours.

Project reviews are generally done 4–5 hours after submission. Projects come with detailed rubrics around required components and functionality — but as long as these requirements are fulfilled, your project will pass. At a real job I would expect to be working on a much more complex codebase, which would require substantially higher standards on project organization and styling (both CSS and literal code style). For the sake of not discouraging learners, however, it’s understandable that the reviewers are a little more lax.

Udacity has put some work into spinning up an in-browser IDE for the course, which I found clunky. I never used this and opted to develop locally, since that is what you’ll be doing anyway in real life.

Take advantage of pricing flexibility. ETA for completion is specific to you.

Udacity support has some reasonable flexibility around pricing. I was close to submitting my final project near the end of a billing cycle, and asked if I could pay for an extra week instead of an entire month. They cheerfully allowed this.

The course has an estimated 4 month completion time. Depending on your prior experience and free time, it seems doable in anywhere from one month (all pre-reqs satisfied, 2–4 hours a day) to 6 months or more (i.e. if you have to start from scratch on Javascript and brush up on HTML and CSS). Keep in mind that Udacity (and many other sites like freeCodeCamp or CodeAcademy) provides plenty of free courses on front-end basics, so don’t pay for any Nanodegree until you’re confident that you’re ready to hit the ground running.

Rushing to “graduate” defeats the point: use this as a springboard to learn more.

The certificate looks like this, and I doubt any employer actually cares. Don’t rush to get the course done in order to “graduate” — that would be missing the point. The course is a great gamified way to push through the inertia of learning something new, and make you effective enough to enjoy doing more of it. The credential itself has little inherent value.

It will not deliver mastery or a career. Be skeptical of any educational product, Udacity or otherwise, which claims to do so. Only time and persistent effort will achieve this. That said, there is nothing wrong with paying for some educational scaffolding to increase your odds of success.

If you’re considering purchasing one of Udacity’s Nanodegrees, I hope this review has been useful. Please feel free to ask questions.

--

--

Casey Juanxi Li
The Startup

Blog: casey.li / Software eng + machine learning. Slight-right libertarian. Truth and empathy are both important.