Udacity Nanodegree overview

I’ve been plowing through Udacity’s Front-End Nanodegree program. It’s a pilot program, designed to learn front-end web development from the ground up.

I started the day I was allowed to, which was about two weeks ago.

So far, I’ve completed the Mockup to Website, and Interactive Resume.

The courses are decent; I enjoy the byte-sized lectures interspersed with quizzes. The courses don’t go too deep, but that’s what the projects are for.

What you really get for the Nanodegree tuition is access to mentors and of course the certification. Since all of the coursework required to complete the projects is technically free on Udacity (which is really awesome of them!), we’re really just paying for the service of mentorship.

What I’ve come to realize is that many people lack mentors in life. They follow a pre-determined career path that includes university and internship, and they have a college advisor, but many times the advisor has not gone through the same path. Also, the advisor is not heavily emphasized, which I feel is a big mistake.

The best thing a student can have is a mentor, not only for the knowledge, but also the connections.

Given all of that, is Udacity worth the $200 a month? Well, I’m scheduled for my first 1-on-1 mentorship session next week, so only time will tell.

As I go through the program, I will continue posting updates and reflections about the program.

The actual coursework

Project 1: Mockup to Website

The first course I took in the Nanodegree program was Intro to HTML and CSS. This was billed to be “Not your average HTML and CSS course,” which I found to be interesting. I’ve taken countless HTML and CSS courses online, and most of them tend to be pretty much the same. They’re all good, but at the end, I couldn’t do much by myself.

By the end of the Udacity course, I was able to go from PDF mockup to website from scratch. It’s all an iterative process, which no other HTML course had ever told me.

Most other courses focused on syntax, which of course is important, but always left out design. Rather than having us create the site, they tell us what the numbers are, and we simply translate that to syntax.

Udacity ensured that we could do everything on our own, which is the definition of mastery.

So was it your average HTML and CSS course? No, definitely not. And since the course is free (remember, you pay for mentorship, not knowledge), I definitely recommend anyone new to web development to take this course.

As an aside, I really love the informal nature of the classes. I hate classes that take themselves too seriously. Learning shouldn’t be boring. Why shouldn’t the instructor throw random round objects at another instructor?

Granted, learning should be taken seriously, but it doesn’t need to be serious to be taken seriously. Having fun is important too, and nothing says we can’t have both!

Mini-project: Learn Github

What I like about the Nanodegree program so far is that it focuses on career development. So rather than just learning random skills, the skills you learn are actually organized in a way that increases job-readiness. And it’s no secret that version control is pretty much a requirement for any software-related job.

I’ve taken a couple of Github crash courses, and some other courses I’ve taken included at least one or two lessons on “gitting” started with Git, but I still always found myself completely lost when using version control. Not only that, but I learned syntax and commands, but not why I should do what. I didn’t know the difference between committing and pushing, nor when to commit.

How to Use Git and Github is a wonderful course that starts from ground up. Rather than immediately pushing students into the Github environment, it introduces Git as a software, and the first part of the course is dedicated to explaining what Git is, and how to use it.

I really liked that part because then I realized how many more applications Git could have other than software developemnt. For example, you could use it to keep track of important files locally, or you could “version control” a novel or something similar.

After that, the course delves into your very first Github repository, and then we get into collaboration with Github.

What made the course especially unique was the fact that we were required to do “reflections.” These were basically little thoughts that made us think about what we were actually learning, and why we were learning it, which I found incredibly effective.

You can read my reflections here.

All in all, I learned a lot from the course, and I recommend it to anyone who is new to Git(Hub).

Project 2: Interactive Resume

The natural follow-up to learning HTML/CSS is JavaScript. HTML is how things are laid on the page, CSS is how things are shown on the page, and JavaScript makes all of that non-static.

I wouldn’t consider JavaScript a “beginner” language, since most “beginner” languages have the concept of classes, which JavaScript doesn’t technically have. Python seems to be the go-to beginner language, which is probably why it’s recommended to take the Python courses before moving on with the JavaScript course.

Regardless, the next project is the Interactive Resume. When I saw the project title “Interactive Resume,” I read it to be a resume that the user could interact with. Instead, it’s a normal resume whose content comes from JSON, which is fine, it just doesn’t seem very interactive.

All that aside, the course for this is JavaScript Basics.

Out of the few courses I’ve completed at Udacity, JS Basics is probably the worst (even though it’s pretty good). All of the courses I’ve taken with Udacity have been pretty good thus far, but there has to be one worst, and JS Basics takes the cake.

Why? The course is confusing. We learn the project goal. And we begin constructing it. Then for no well-defined reason, we’re told to erase all the lines of code we wrote and start fresh.

I’m all for starting fresh, but then it goes from a blank slate to a half-full resume from one video to the next, and following along with the video would not result in the “this is how your site should look now” shown. I had to do a lot of things myself to make it look how it was supposed to, but nowhere that was mentioned.

Other than that caveat, the course is pretty good. It teaches the syntax and the basics of JSON, which is something that very few JS courses ever teach.

Though JS Basics is a good course, I would recommend Codecademy over Udacity for learning JavaScript Basics. Only after that would I take this course.


That about wraps up my first couple weeks in the Nanodegree program. I’ll be back with another update once I finish my game project!