Udacity Nanodegree Post-Mortem 
Tags: frontend, nanodegree, udacity, learning
Published: 2019-10-28 20:24:32


So I've finished my Front-End Web Developer Nanodegree on Udacity. I have a few thoughts which might be of some interest to anyone thinking about pursuing this program. So here's my two cents  

## But First Who Am I?

If my thoughts are going to have an relevance to you, you should know a bit about me. I am a Junior Full-Stack Engineer at a prominent telecommunications company. I received a B.S. in Computer Science and a B.S. in Mathematics from the University of Georgia. I've focused on developing for web for the last 6 years. At UGA I was a TA for the Intro to Programming course. So I know this subject matter well, and I've had to think about how best to present programming education.    

### Disclaimer
  
I did not pay for the course myself. The company I work for paid for it as part of an initiative for continuing education. I'm not sure if that makes me more or less biased, but either way it's a thing and I won't be addressing the cost of the program.  
## What You Get  

What you get when you enroll in the course really comes in three parts:  

### Videos and Exercises

The front end course is taught in  modules.  You could think of them like chapters.  Each chapter is broken into sections that  have a video that gives a clear explanation of the topic. They are easy to understand and the hosts are experts from within the industry. The videos focus on the fundamentals and best practices around HTML/CSS/JavaScript. They are pretty comprehensive, if a bit rushed in a few sections. The videos do not get into any of your favorite frameworks. There are brief introductions to Ember and Angular, but they are not the focus of this course. Pairing the videos with the odd exercise makes for an engaging platform.  This is by a large margin the most valuable part of the course. The videos are higher quality than what would find in most places and it does give you a good basis to work on top of. Unfortunately the rest of the course doesn't hold the same standard.
 
### Projects

  Also included in the course are 5 projects that are evaluated as you complete and submit them. They create a guided space to build some web apps such as a Memory game, a Portfolio Website, and a Restaurant Review site. The projects fell a little flat for me. Two of the projects were similar (Memory and Frogger), and the final project felt contrived.  

Furthermore, when starter code was made available it was a bit of shit show. Much of the code uses dated standards, uses var vs. const and let, no arrow functions, callbacks instead of Promises or Async/Await, XHR instead of fetch, etc.  
 Much of the starter code for the projects don't meet guidelines they have for student work. If watching the videos and doing the exercises is taking two steps forward, trying to learn from the starter code is three steps back.   Which brings me to the project evaluation. Udacity assigns a mentor to review, comment on, and check your project. They assign a pass/fail style grade and a couple of comments. Seeing the platform for comments, where they highlight a specific line or section and give a comment, got my hopes up. The comments I got were .... odd for the most part. A different person reviews what you submit in each project, and the quality tends to vary a good bit. They try to offer a mix of praise and suggestions in each project. The suggestions I thought missed the mark now and then. And the praise rang a little hollow oftentimes the reviewer chose weird sections. Your mileage may vary here. This part of the course was lack-luster.

### The Degree 

For a program as expensive as this, a big consideration is what the degree is worth to employeers. Again YMMV here. It shows a bit of domain knowledge in web dev, as well as speaks to your motivation. 

 As far as my personal stock in a Nanodegree? I would trust that someone who had completed this program could:
   
   * Create a responsive HTML/CSS website
   * Use vanilla JavaScript to handle events and interactivity on the frontend
   * Write a basic Jasmine test suite
   * Have a foundation to learn more skills in web dev   


## Takeaway  

This is a good, not great, course to take to get a handle on the basics of Frontend Web Dev. You will learn HTML and some CSS, JS. This course does not prepare you for your first role as a Frontend Engineer. I would say that you'd want to also gain a good depth of knowledge in a popular framework (React or Angular as of Oct '19). Which this course would set you up beautifully to learn. 


Anyone else take a Nanodegree? What were your thoughts?