Lesson 1
![](https://cdn.sanity.io/images/tlr8oxjg/production/023f60d2f3b8fbb39f00cb16f0fc3179f75d1fb6-1456x816.png?w=3840&q=100&fit=clip&auto=format)
Intermediate JavaScript
Nanodegree Program
The goal of this program is to prepare students for roles in web development, server-side application development, and desktop development that require advanced JavaScript skills.
The goal of this program is to prepare students for roles in web development, server-side application development, and desktop development that require advanced JavaScript skills.
Intermediate
2 months
Real-world Projects
Completion Certificate
Last Updated May 29, 2024
Courses In This Program
Course 1 • 1 hour
Welcome to the Intermediate JavaScript Nanodegree Program
Lesson 1
Welcome to Udacity
Lesson 2
Getting Help
You are starting a challenging but rewarding journey! Take 5 minutes to read how to get help with projects and content.
Course 2 • 3 weeks
Object-Oriented JavaScript
Lesson 1
Objects in Depth
Objects in JavaScript encapsulate both data and functionality. You'll create, access, and modify objects to build a solid foundation for object-oriented programming.
Lesson 2
Functions at Runtime
Functions are one of most important data structures. Learn what a "first-class function" is, learn about scope, dig into closures, and use immediately-invoked function expressions for private state.
Lesson 3
Classes and Objects
Creating objects individually isn't sustainable. Learn how to create similar objects with ease using Classes. You'll also learn how object inheritance works through Prototypal Inheritance.
Lesson 4
Object-Oriented Design Patterns
Discover object-oriented design patterns that can be used to create an object -- all without involving its prototype. What's more: you'll also learn how to implement private properties in objects.
Lesson 5 • Project
Project: Dinosaurs
Course 3 • 4 weeks
Functional Programming
Lesson 1
Course Introduction - Functional Programming
Introduction to the course on Functional Programming with JavaScript
Lesson 2
Introduction to Functional Programming
Foundational Introduction to Functional Programming in JavaScript
Lesson 3
Functional JS Syntax
Experience writing functional programming with JavaScript & ES6 syntax
Lesson 4
Functional Programming in JS
Practice applying what you've learned so far into creating functional programs and bring clarity to how React works behind the scenes.
Lesson 5
Going Further with Functional JS
Going further with Functional Programming and common tools to solve traditional problems in web development.
Lesson 6 • Project
Mars Dashboard
In this project, you will create a dashboard that consumes the NASA API and applies all the functional programming learned throughout this course.
Course 4 • 4 weeks
Asynchronous Programming with JavaScript
This course dives deep into asynchronous programming, a technique essential for building responsive web applications. Learn how asynchronous code keeps your apps running smoothly even while waiting for data. Master key concepts like threads, callbacks, promises, and the elegant async/await syntax. Write clean, efficient code that keeps users engaged and in control. This course empowers you to harness the full potential of JavaScript without compromising user experience.
Lesson 1
Introduction to Asynchronous Programming
Meet your instructor and explore what you'll learn in the course and why it is important.
Lesson 2
Synchronous Concepts and Asynchronous Callbacks
To create a foundation for asynchronous programming concepts, we start with a discussion of synchronous code and the concepts of blocking vs non-blocking, then learn to use asynchronous callbacks.
Lesson 3
Sequencing Events - Promises
This lesson goes from basic Promise syntax all the way to implementing Promises, Fetch, and Promise methods.
Lesson 4
Sequencing Events - Async/Await
This lesson will get you acquainted with the Async/Await syntax introduced in ES8. Let's master the code and principles behind this helpful addition designed to make asynchronous flows easier.
Lesson 5 • Project
Project: UdaciRacer Simulator
Demonstrate your mastery of asynchronous JavaScript by creating a racing game! You'll use callbacks, Promises, and Async/Await syntax to build out the key functionalities of the UdaciRacer Simulator.
Taught By The Best
![Photo of Richard Kalehoff](https://cdn.sanity.io/images/tlr8oxjg/production/14daf9fb30fa7cb7356e14270948350a70b450d4-320x320.jpg?w=3840&q=100&fit=clip&auto=format)
Richard Kalehoff
Software Engineer at Udacity
Richard is a Course Developer with a passion for teaching. He has a degree in computer science, and first worked for a nonprofit doing everything from front end web development, to backend programming, to database and server management.
![Photo of Rachel Manning](https://cdn.sanity.io/images/tlr8oxjg/production/ce2a900d602c83d6e85291dbadf3cdb5eaeeda50-200x200.png?w=3840&q=100&fit=clip&auto=format)
Rachel Manning
FULL STACK DEVELOPER
Rachel is a full stack freelance developer and educator where she spent 3 years as a bootcamp curriculum developer while developing full stack freelance projects. An advocate for continued learning, she is passionate about mentoring women and underserved community in technology.
![Photo of Alyssa Hope](https://cdn.sanity.io/images/tlr8oxjg/production/44c5180cb1324bc9294eabeacef9b1b33505a611-200x200.png?w=3840&q=100&fit=clip&auto=format)
Alyssa Hope
Instructor
Alyssa is a full stack developer who was previously the lead instructor at a coding bootcamp. With a degree in International Communications, her passion is to express thoughts well, whether in code or writing.
![Photo of Andrew Wong](https://cdn.sanity.io/images/tlr8oxjg/production/bf619d4fe2bb51a838f9a122cad34428c80455ca-200x200.jpg?w=3840&q=100&fit=clip&auto=format)
Andrew Wong
Software Engineer
Andrew is a full stack engineer who enjoys making the world a better place through code. He first discovered his passion for teaching as an instructor at App Academy, and continues to enjoy empowering students to advance their education.
Ratings & Reviews
Average Rating: 4.4 Stars
119 Reviews
Mary Antonia S.
May 31, 2022
It's matched it well. Definitely challenging but in a good way
Maddie L.
April 5, 2022
So far I have learned a lot. The project has helped me identify some gaps in my knowledge that I have since been able to fill.
Ryan S.
February 20, 2022
The program is going quite well. I started out (basically from scratch) a couple of months ago with the intro to programming course. Upon completing that, I decided to continue forward with the Intermediate Javascript course. The material and the first project have been VERY challenging for me but the course structure, with it's project-based model and reviewer feedback have REALLY kept me pushing forward through the challenge and confusion. The biggest benefit that I can name so far is the fact that, now when I seek out information online or elsewhere, I'm able to make much more sense of what I find. These trainings have helped to familiarize me with industry jargon and the fundamentals of programming languages . Although the end goal seem miles away, I'm moving forward.
Ryan M.
February 10, 2022
So far I like the program and I enjoyed working on the first project.
Juan T.
February 9, 2022
I think the program is good, on the other hand for the project I feel there needs to be more clear information about the goals to be achieved
The Udacity Difference
Combine technology training for employees with industry experts, mentors, and projects, for critical thinking that pushes innovation. Our proven upskilling system goes after success—relentlessly.
![](/_next/image?url=%2Fimages%2Fexperience%2Fproject-feedback.png&w=1200&q=75)
Demonstrate proficiency with practical projects
Projects are based on real-world scenarios and challenges, allowing you to apply the skills you learn to practical situations, while giving you real hands-on experience.
Gain proven experience
Retain knowledge longer
Apply new skills immediately
![](/_next/image?url=%2Fimages%2Fexperience%2Fon-demand-support.png&w=1200&q=75)
Top-tier services to ensure learner success
Reviewers provide timely and constructive feedback on your project submissions, highlighting areas of improvement and offering practical tips to enhance your work.
Get help from subject matter experts
Learn industry best practices
Gain valuable insights and improve your skills
![](/_next/image?url=%2Fimages%2Fbackgrounds%2Fblue-lines-wide.png&w=3840&q=100)
Unlock access to Intermediate JavaScript and the rest of our best-in-class catalog
-
Unlimited access to our top-rated courses
-
Real-world projects
-
Personalized project reviews
-
Program certificates
-
Proven career outcomes
Full Catalog Access
One subscription opens up this course and our entire catalog of projects and skills.
Month-To-Month
4 Months
Average time to complete a Nanodegree program
Your subscription also includes:
Your subscription also includes:
(75)
4 months
, Intermediate
(85)
3 months
, Intermediate
(93)
2 months
, Intermediate
(269)
3 months
, Intermediate
4 weeks
, Beginner
1 month
, Beginner
(729)
3 months
, Intermediate
(449)
4 months
, Intermediate
(1309)
4 months
, Beginner
(523)
2 months
, Intermediate
13 hours
(225)
5 months
, Intermediate
(398)
3 months
, Intermediate
4 weeks
, Beginner
(416)
4 months
, Intermediate
8 hours
Get Started Today
Intermediate JavaScript
Month-To-Month
- Unlimited access to our top-rated courses
- Real-world projects
- Personalized project reviews
- Program certificates
- Proven career outcomes
4 Months
- All the same great benefits in our month-to-month plan
- Most cost-effective way to acquire a new set of skills
Related Programs
Related Programs
(75)
4 months
, Intermediate
(85)
3 months
, Intermediate
(93)
2 months
, Intermediate
(269)
3 months
, Intermediate
4 weeks
, Beginner
1 month
, Beginner
(729)
3 months
, Intermediate
(449)
4 months
, Intermediate
(1309)
4 months
, Beginner
(523)
2 months
, Intermediate
13 hours
(225)
5 months
, Intermediate
(398)
3 months
, Intermediate
4 weeks
, Beginner
(416)
4 months
, Intermediate
8 hours