My Udacity Nanodegree experience
I share my experience completing a Udacity Nanodegree (Full-Stack Developer) under a month.
I had a positive experience attending the program. The program offers structured and interactive content, and hands-on projects. I would recommend this to people who are learning full-stack web development.
In the past, I attended Udacity’s free courses, but never had tried the paid courses. Early this year, they started a campaign that offers you 1 month of free pass.
A nanodegree program costs around $300 per month. For the Full-Stack Developer program, on average you spend about 4 months, that is if you work on it 5-10 hours a week.
I thought it was a pretty good offer. I was thinking I could finish it in 2 months. A friend said I could do it in 1 month (he was right, I completed it in 3 weeks).
I started the program to work on projects as exercise, and fill in any gaps in my knowledge, plus pick up some new skills.
The nanodegree program immediately gives you the feeling of a premium content. Udacity staff, including the founder, greets you at the beginning. Several instructors also greet you and give advice before you get going:
They actually have a scheduling program that help you plan your next couple of weeks. After filling in my desired time slots, you can download them as calendar events. Useful!
You get a roadmap with suggested project completion dates. The program is self-paced, there are no strict deadlines.
You have lot of resources from the get go:
- Peer chat for getting in touch with the community for help and discussion
- Mentor Q&A section for asking questions about the course content and get quick answers
- Career services you can start scheduling (e.g. 1:1 career coach session)
Course content #
The main course content is the video lectures. Your instructor explains some concept to you, and present sample projects. You can follow along with the project implementations, or you may decide to only watch the videos. I’d recommend you code the projects, that way you’re more inclined to learn the concepts.
Courses are lead by different instructors. For this program, 2 were women, and 2 were men.
I took abundant notes on the courses — even for the topics I was sure I understood. My notes were useful when I was working on the projects. You can lookup stuff fast from text, but not so much from videos.
The whole program consists of 4 courses, and one capstone project. Each course has one project that you need to complete and submit to pass. The projects have technical requirements, and some stretch goals you can work on.
The focus on backend #
The courses cover a lot of ground, and keeps you busy with practical projects.
Frankly, I was expecting more frontend work, but I found the focus to be on the backend side.
Here’s an overview of the course contents.
1. SQL and Data Modeling for the Web #
- Relational database concepts
- SQL refresher
- Client-Server model
- TCP/IP communication and how it relates to database connections
- Postgres, psycopg2, psql, SQLAlchemy
- CRUD with SQLAlchemy
- Database schema migrations with Flask-Migrate
2. API Development and Documentation #
- HTTP methods and status codes
- RESTful API design
- Cross-Origin Resource Sharing (CORS)
- API implementation with Flask
- Testing API endpoints
- Documenting API endpoints
3. Identity and Access Management #
- Overview of authentication methods
- Third-party authentication system: Auth0
- Implementing Auth0 authentication in your project
- JSON Web Tokens (JWT)
- Cross-Site Scripting (XSS)
“Passwords are ubiquitous and the ABSOLUTE worst."
- Problem with plain text passwords
- Hashing with salts
- Access and Authorization
- Role-Permission Based Access (RBAC)
- Implementing RBAC with Auth0
- Overview of attack vectors and how to stay informed
4. Server Deployment, Containerization and Testing #
Gives you a taste of Docker and Kubernetes, and shows you how to deploy your app to AWS EKS.
- Containers: what are they?
- Docker, DockerHub, and Dockerfile
- Kubernetes basics, EKS, and
- Deploying a containerized app to AWS EKS
Make sure you cleanup whatever you created for this course work. I made the mistake of not destroying an EKS stack and had some $$ amount added to my bills.
5. Capstone Project #
You will create an app using everything you’ve learned in the program. You’re free to make up the design and concept of the app, or choose a preset idea.
You’re not required to deploy to AWS EKS (it was a stretch goal), but you can use Heroku for this.
Class interaction #
If you’re stuck on anything you can leave your questions either in the peer chat, or in the Q&A section.
I’ve often used the Q&A section to get unstuck at certain places. This is due to some of the course content being either outdated or confusing.
Throughout the program, you can get detailed and constructive feedback on your performance.
Reviews were quite fast. I often received feedback within the day, sometimes even after a few hours of project submission. My guess is that Udacity barters work from many many community members in exchange of paid programs.
Career services #
You can get your GitHub profile, LinkedIn profile, and resume reviewed by professionals. These are super useful, especially when you’re early in your tech career. I’ve only used the LinkedIn review service and got some useful pointers there.
Also if you have the time, you can book a 1:1 meeting with a professional career coach. Whether you’re looking for a job or not, this can be quite useful for you. Due to scheduling, not a lot of time slots were available at the time, so I skipped this for later.
Once you’ve completed the capstone project, you’re free to graduate!
At the time, Udacity’s notification service was kaput. I wasn’t receiving notifications for important updates. So I would go the web page and check for updates. And even after the program’s done, I had to find the “finish and graduate” button myself!
The graduation process involves filling in some forms, and submitting your personal details. An identity service asks for your document and photo.
That’s it! You get your digital certificate!
Given the short amount of time, it was a quite fruitful few weeks for me. I revisited many fundamental concepts, completed several projects, and experimented with new technologies!
Would I attend another Nanodegree program? I would. Next time, I’ll pick a new topic. They are regularly coming up with new programs, and have a good selection of existing ones as well.