Skills you'll learn:

Introduction to Programming
Nanodegree Program
Welcome to the world of programming! Learn the skills that all programmers use, whether they build apps, web pages, or analyze data.
Welcome to the world of programming! Learn the skills that all programmers use, whether they build apps, web pages, or analyze data.
Beginner
5 months
Last Updated January 14, 2025
Prerequisites:
Beginner
5 months
Last Updated January 14, 2025
Skills you'll learn:
Prerequisites:
No experience required

Skills that demand high salaries
The Bureau of Labor Statistics projects 25.7% employment growth for software developers between 2022 and 2032.*
Software Engineer
Low
$102,732
Average
$128,882
High
$175,000

Skills that demand high salaries
Software Engineer
The Bureau of Labor Statistics projects 25.7% employment growth for software developers between 2022 and 2032.*
Salary Ranges
- Low
- $102,732
- Average
- $128,882
- High
- $175,000
Courses In This Program
Course 1 • 45 minutes
Welcome and Orientation
Welcome to the Introduction to Programming Nanodegree program. This is your first step on your journey to become a programmer. Learn what this program is all about as well as how to find support along your learning journey.
Lesson 1
Welcome and Orientation
In this lesson, we'll introduce you to your instructors, give you an overview of what you'll be learning, and tell you how to get help and support when you need it.
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
Introduction to Web Development
Get acquainted with how the web works! Learn about your browser, the internet, and a filetype called HTML. HTML stands for "Hypertext Markup Language." HTML is the language used to create webpages. Learn the basics of HTML to create a simple web page!
Lesson 1
The Web and HTML
In this lesson, we'll be exploring how to create web pages—and, along the way, you'll learn some important concepts about how computer languages work.
Lesson 2
Basic HTML Page
In this first lab, you'll demonstrate your understanding of HTML basics by turning your notes from the lesson into a working HTML web page.
Lesson 3
Styling with CSS
Learn how to add style to your website by using Cascading Style Sheets (CSS).
Lesson 4 • Project
Animal Trading Cards
Use your knowledge of HTML and CSS to create a web-based trading card depicting your favorite animal.
Course 3 • 2 months
Introduction to Programming with Python I
Learn basic programming with Python, one of the most versatile and widely used programming languages! You'll first learn core programming concepts and fundamental Python syntax by writing code to make a virtual "turtle" robot draw colorful shapes on the screen. You'll then learn how to write Python functions, run Python from a Command-Line Interface (CLI), manipulate strings and lists, and refactor your code to improve its structure and make it more modular.
Lesson 1
Introduction to VS Code workspaces
Lesson 2
Turtles and Code
Get started learning core programming concepts with Python, while writing instructions to make a virtual "turtle" robot draw colorful shapes on the screen.
Lesson 3
Python Functions
Expand your knowledge of Python by learning to write functions and conditional statements.
Lesson 4
Shell Workshop
The Unix shell is a powerful tool for developers of all sorts. In this lesson, you'll get a quick introduction to the very basics of using it on your own computer.
Lesson 5
Python at Home
Install Python on your own computer so you can write code anytime!
Lesson 6
Strings and Lists
Learn to work with strings and text in your Python code.
Lesson 7
Style and Structure
Get practice writing longer programs, and improving their structure and style.
Lesson 8 • Project
Adventure Game
Demonstrate your Python skills by coding a simple version of an old-fashioned text-based adventure game.
Course 4 • 1 month
Introduction to Programming with Python II
Continue to advance your skills as a beginning programmer! Python is one of the most versatile and widely used programming languages. In this second-level course, you will build on your understanding of fundamental Python and learn some more advanced skills, including how to work with files on your computer's disk and how to use Object-Oriented Programming (OOP) to create classes, objects, and methods.
Lesson 1
Introduction
In this lesson, we'll introduce you to your instructors, give you an overview of what you'll be learning, and provide a review you can use to check your pre-existing Python skills.
Lesson 2
Working with files
Learn to work with files on your disk using Python code: listing files in a directory, moving files around, and reading & writing the contents of text files.
Lesson 3
Web APIs
Learn to interact with Web APIs using the requests module, manipulate JSON, and use dictionaries.
Lesson 4
Objects and Classes
Learn to create new kinds of data object using classes, including creating your own methods.
Lesson 5 • Project
Rock Paper Scissors
Apply your Python and Object-Oriented Programming knowledge to create a game of Rock Paper Scissors where a human can play against a computer player!
Course 5 • 2 months
Introduction to Javascript
In this course, you will use learn the basics of JavaScript! You will learn how to create and use the primary data types in JavaScript and how to use conditionals and loops to control the flow of your JavaScript code. You'll write your first JavaScript functions and you'll learn how to use arrays and objects to store collections of data. By the end of the course, you use your new JavaScript knowledge to build the core functionality of an eCommerce shopping cart.
Lesson 1
Introduction to VS Code workspaces
Lesson 2
What is JavaScript
Learn the history of JavaScript and start writing your code immediately using the JavaScript console.
Lesson 3
Data Types & Variables
Learn to represent real-world data using JavaScript variables, and distinguish between the different data types in the language.
Lesson 4
Conditionals
Learn how to add logic to your JavaScript programs using conditional statements.
Lesson 5
Loops
Harness the power of JavaScript loops to reduce code duplication and automate repetitive tasks.
Lesson 6
Functions
Dive into the world of JavaScript functions. Learn to harness their power to streamline and organize your programs.
Lesson 7
Arrays
Learn how to use Arrays to store complex data in your JavaScript programs.
Lesson 8
Objects
Meet the next JavaScript data structure: the Object. Learn to use it to store complex data alongside Arrays.
Lesson 9 • Project
Build a Shopping Cart
In this project, you will use your JavaScript development skills to build the core functionality of an eCommerce shopping cart for Kirana's fruit market.
Course 6 • 45 minutes
Congratulations! What's next?
Great work finishing the program! Here's some info on next steps in your programming journey.
Lesson 1
Congratulations! What's next?
Great work finishing the program! Here's some advice on next steps in your programming journey.
(Optional) Course 7 • 1 week
Git and GitHub
Programmers use version control software to manage changes to software projects large and small. In these lessons you will learn to keep track of changes to your code using the Git version control software, and collaborate with other programmers using GitHub.
Lesson 1
What is Version Control
Version control is an incredibly important part of a professional programmer's life. In this lesson, you'll learn about the benefits of version control and install the version control tool Git!
Lesson 2
Create a Git Repo
Now that you've learned the benefits of Version Control and gotten Git installed, it's time you learn how to create a repository.
Lesson 3
Commits, Tags, Conflicts
Knowing how to review an existing Git repository's history of commits is extremely important. You'll learn how to do just that in this lesson.
Lesson 4
Remotes and Developer Repos
In this lesson, you'll learn how to fork another developer's project. Collaborating with other developers can be a tricky process, so you'll learn how to contribute to a public project.
Lesson 5
Writing READMEs for Repos
Learn the importance of well documented code and see how to craft meaningful READMEs.
Taught By The Best

Kelly Howard
Instructor
Kelly was previously a Product Manager at Brainjolt and a Learning Experience Designer at Pathstream. She is currently a Marketing Automation Manager where she leads automation, analytics, and systems design for Pathstream's B2C business.

Karl Krueger
Command Line Instructor
Before joining Udacity, Karl was a Site Reliability Engineer (SRE) at Google for eight years, building automation and monitoring to keep the world's busiest web services online.

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.

Abe Feinberg
Science Teacher and Educational Psychologist
Abe is a science teacher and educational psychologist who loves learning and finding out how things work. He has a particular interest in using AI to optimize education, and his ultimate goal is to replace himself with a robot that can teach better than he can.

Richard Kalehoff
Instructor
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.

Julia Van Cleve
Instructor
Julia is a Content Developer at Udacity and was previously a middle school math teacher in San Jose, CA. She also dabbled in freelance web development, designing websites for small businesses in the Bay Area.

James Parkes
Instructor
James received his degree in Computer Science and Mathematics, then went on to become a Udacity instructor in several programs. His personal mission is clear: to open the doors of opportunity for others by empowering them with excellent educational experiences.
Student Reviews
Average Rating: 4.8 Stars
1,339 Reviews
Mohammad Raza K.
April 13, 2023
It's awesome!
Matias G.
December 13, 2022
I'm loving this program, and all my needs and expectations are matched.
Frank D.
December 8, 2022
The program is going well, this really helps me in becoming a good programmer in the future, exactly what I needed, Thank you!
Cedric H.
December 8, 2022
tout à fait ce que je voudrais, mais j'aurais aussi discuter ou partager avec un groupe d'apprenants qui suivent le même programme que moi..
Hassan Adel A.
November 24, 2022
super
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.

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

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

Enroll in Introduction to Programming. Choose the plan that works for you
All Access monthly
Cancel Anytime
Unlimited access to our top-rated courses
Hands-on projects with expert feedback
Personalized career coaching and interview prep
Program Certificates
Best Value
All Access bundle1
All the same great benefits as our monthly plan
The most cost-effective way to develop the skills you want
- 1Discount applies to the first 4 months of membership, after which plans are converted to month-to-month.
Your subscription also includes:
Your subscription also includes:

2 months
Beginner

(113)
2 months
Intermediate

3 weeks
Beginner

(498)
3 months
Intermediate

(83)
3 months
Intermediate

2 months
Beginner

(98)
3 months
Intermediate

(140)
2 months
Intermediate

(809)
3 months
Intermediate

(832)
2 months
Beginner

4 weeks
Beginner

1 hour
Discovery

(293)
3 months
Intermediate

(252)
3 months
Intermediate

2 months
Beginner

2 weeks
Beginner
About Introduction to Programming
Our Introduction to Programming Nanodegree is the gateway for aspiring programmers. This program, ideal for beginners, covers the essentials of programming, including Python, HTML, and CSS. You'll learn through practical projects, building a strong foundation in coding and web development. This Nanodegree program paves the way for a successful career in technology, equipping you with the skills to build web pages and understand core programming concepts. Our expert instructors, like Karl Krueger and Rachel Manning, guide you through hands-on projects, ensuring real-world application of your newfound skills. By the end of the Introduction to Programming, you'll have a portfolio to showcase your abilities, setting you on the path to professional success.