Get started with custom lists to organize and share courses.

Sign up

Full Stack Web Developer

Learn how to create server-side, data-driven web applications that support any front-end and can scale to support hundreds of thousands of users.

Earn a Certificate

  • Nanodegree via Udacity
  • $999 for 4 months
  • 1:1 feedback - Rigorous, timely project and code reviews
10 Reviews
Rating based on 10 student reviews.

Learn More

Full Stack Web Developer
★★★★★ (10 Reviews)
Learn how to create server-side, data-driven web applications that support any front-end and can scale to support hundreds of thousands of users.
Credential Type
Minimum 10hrs/week
4 months

In this program, you’ll prepare for a job as a Full Stack Web Developer, and learn to create complex server-side web applications that use powerful relational databases to persistently store data.

Why Take This Nanodegree?

The Full Stack Web Developer Nanodegree is designed to prepare you for a career in web development. As a Full Stack Web Developer, you are the "jack of all trades" who companies rely on to build, support and maintain their web applications. With our industry partners, we've carefully crafted the most efficient set of projects and skills training to guide you along the way.

In this Nanodegree you will hone your understanding of how the web works, you'll develop complex relational databases used to store your applications' data, you'll secure and configure your own Linux-based servers, and you'll build complete web applications using HTML, CSS, JavaScript and Python.

Required Knowledge

Minimum Requirements:

  • Beginner-level experience in Python. If you do not have this experience, check out our Intro to Programming Nanodegree program or Intro to Computer Science course.
  • Experience building front-end web sites with HTML and CSS.
  • Experience using Git for version control. If you do not have this experience, check out our How to Use Git and GitHub course.
  • You are self-driven and motivated to learn. Participation in this program requires consistently meeting the deadlines, and devoting at least 10 hours per week to your work.
  • You can communicate fluently and professionally in written and spoken English.
  • You have access to a computer with a broadband connection, on which you’ll install a professional code/text editor (ie. VSCode or Atom) as well as virtual machines (using VirtualBox and Vagrant).
  • You are willing to contribute to the success of the program, including collaborating with fellow students, and giving us feedback on how we can improve.

Desirable Prior Experience:


  • You’ve completed an object-oriented Python programming course.
  • You’ve tried to build server-side applications in the past and want to learn how to do it at a professional level.


★★★★☆ (13) 6 weeks 23rd Apr, 2014
<p>In this introductory programming class, you’ll learn Object-Oriented Programming, a must-have technique for software engineers that will allow you to reuse and share code easily. You’ll learn by doing, and will build byte-sized (ha!) mini projects in each lesson to learn and practice programming concepts. </p><p>We’ve heard that programming can be intimidating for newcomers, and we’ve created this course to make sure that you have a great learning experience! You’ll learn <strong><em>actively</em></strong> with our mini projects (see the awesome list below), which you’ll be able to share proudly with your friends. You’ll also learn important programming concepts one by one, with no surprises or leaps of logic along the way. </p><p>You’ll pick up some great tools for your programming toolkit in this course! You will: </p><ul><li>Start coding in the programming language Python;</li><li>Reuse and share code with Object-Oriented Programming;</li><li>Create and share amazing, life-hacking projects!<br></li></ul><p>This introductory course is for you if you want to be a software engineer, or if you want to collaborate with programmers. Mastering Object-Oriented Programming will propel your career in tech forward, and it’s also a great way to learn how software engineers think about solving problems.</p><p>This course is also a part of our <a href="" target="_blank">Full Stack Web Developer</a> Nanodegree.</p><br/><br/><b>Why Take This Course?</b><br/><p>You should take this course if you want to build awesome projects, while writing only a few lines of code. Here are some of them:</p><ul><li><strong>Project Take a Break</strong>: Do you know a friend who works too many hours? We will write a program that schedules breaks throughout the day -- reminding your friend to listen to music, get up and dance to their favorite song, or just walk away from the computer every once in awhile. <a href="" target="_blank"><a href=""></a></a></li><li><strong>Project Profanity Editor</strong>: Imagine it’s late at night and you get an email from your boss, requesting your help with something. You reply, "I can take a shot at it" but accidentally end up including an awkward word (sh*t). Oops. We will write a python program that detects curse words, and saves clumsy email writers from embarrassing moments. <a href="" target="_blank"><a href=""></a></a></li><li><strong>Movie Website</strong>: We will learn how to make an awesome webpage that lists your favorite movies and shows their trailers. <a href="" target="_blank"><a href="">;t=1m24s</a></a><br /></li></ul><p>While building these projects we will learn about a programming technique that is used by software engineers on a daily basis; it is called Object-Oriented Programming. </p><p>Finally, we will work together to get better at reading help documents and using other people’s code almost like lego blocks to build our programs. By building these projects, you’ll become more confident in your ability to code and transition from "programming looks like magic" to "oh, I can do that."</p>
★★☆☆☆ (7) 4 weeks Self paced
<p>This course is a quick, fun introduction to using a relational database from your code, using examples in Python. You&#39;ll learn the basics of SQL (the Structured Query Language) and database design, as well as the Python API for connecting Python code to a database. You&#39;ll also learn a bit about protecting your database-backed web apps from common security problems.</p><p>After taking this course, you&#39;ll be able to write code using a database as a backend to store application data reliably and safely.</p><br/><br/><b>Why Take This Course?</b><br/><p>If you look under the hood of a lot of major web sites — from Wikipedia to Reddit — you&#39;ll find a relational database somewhere.</p><p>Database systems such as PostgreSQL and MySQL have been part of the web developer&#39;s toolkit for many years, and remain some of the most powerful tools available for storing and manipulating structured data.</p><p>If you&#39;re planning to continue on in full-stack development, knowing about databases is essential background. Even though many toolkits hide the details of the database from your application code, being able to interact with the database will serve you well in designing, debugging, and maintaining your applications.</p>
★★★☆☆ (8) 3 weeks Self paced
<p>In this course you will learn the fundamentals of back-end web development! You will create your own web application that queries a database for items on restaurant menus and then dynamically generates complete menus in the form of web pages and API endpoints.</p><p>You’ll start by learning how to interact with a database from a web application using an Object-Relational Mapping (ORM) layer. From there, you’ll learn how GET and POST requests translate to CRUD operations. You’ll then explore the Flask framework and the various ways in which it can speed up the development of your applications. Finally, you’ll develop your very own web application from the ground up using the iterative development process.</p><br/><br/><b>Why Take This Course?</b><br/><p>Interacting with a persistent datastore is what transforms static web pages into powerful and effective web applications. Giving users the ability to create, read, update and delete data is the backbone of the most popular services on the Internet today. But, you must do so safely and securely - the smallest mistake could bring your application down or leak your user’s data.</p><p>In this course, you’ll discover how all of the major components of web applications work and best practices in developing secure, data-driven web applications.</p>
★★★★☆ (3) 2 weeks Self paced
<p>As a Python programmer, leveraging Flask allows you to quickly and easily build your own web applications. But before you share your apps on the Internet you should protect your users&#39; data, ensuring information stored on your site is safe from unwanted manipulation. You could implement web security and permissions on your own, but relying on trusted providers is a faster, safer, and easier way to allow users to login to your application - without having to create and maintain another account, profile, and password. </p><p>In this course, you will learn to implement the OAuth 2.0 framework to allow users to securely login to your web applications. You&#39;ll be provided a <a href="" target="_blank">restaurant menu application</a> created in Flask. By the end of this course, you will write the necessary code to implement Google+ Sign-In and Facebook Login in options so users can create restaurant menus that are viewable by everyone but only modifiable by the original creator.</p><br/><br/><b>Why Take This Course?</b><br/><p>OAuth 2.0 is a popular framework that allows users to login to your web application by using third party sign ins, from providers they&#39;ve already created and trust, with the click of a button. And because passwords and sensitive data are never sent, your web application does not have to deal with the complexities of secure password storage and security breaches. Your users can then control the level of access your application has to their data, and change or revoke this access at any point in time.</p>
★★★★☆ (1) 6 weeks 30th Apr, 2015
<p><b>This course is deprecated.</b></p><p>You will learn about challenges of building applications that can serve hundreds of thousands of users, and how you can prepare for them as a developer. And more importantly - you will learn how to harness the power of <strong>App Engine</strong> - Platform as a Service, run by Google, so you can focus on your application&#39;s features, not on managing infrastructure that runs your app. Let Google run and scale the infrastructure and do what you do best - write code! </p><p>However, to use App Engine effectively, you have to learn how it works, and this is exactly what this course will teach! You will also learn the best practices of using <a href="" target="_blank">Cloud Endpoints</a> that allow you to easily create API services and make them accessible to iOS, Android and Javascript clients. They allow you to automatically generate client libraries to make wiring up the frontend easy. And there are some nifty built-in features, like denial-of-service protection and OAuth 2.0 support.</p><br/><br/><b>Why Take This Course?</b><br/><p>Cloud computing is one of the fastest growing fields right now. And no wonder - it provides an easy and affordable way to run your applications. However, the traditional way of hosting and scaling applications on Virtual Machines in the Cloud comes with a cost - even if the infrastructure is virtual, you still have to manage it - do load balancing, bring instances up and down, take care of patching your software and in general spend a lot of your time and resources on just the infrastructure. </p><p>Google is one of the pioneers in the business of scaling, and now you can use their infrastructure, and let them do all the scaling work so that you can focus on the unique features your app provides.</p><p>Are you a Java developer? If so, maybe you&#39;d like to check out our <a href="" target="_blank">Developing Scalable Apps with Java</a> course.</p><h2>Project</h2><p>There will be an overarching project throughout the course, starting from Lesson 2. You will develop an application for organizing conferences, similar to sites like or We have provided the frontend of the app, and all your effort will go into making the backend.</p><p>And because you will be using Cloud Endpoints, it’s really easy to hook up your backend with a native mobile app. We have created an Android app that uses the same backend as the web frontend. You will able to recompile it against your backend, if you so wish!</p><p>At the end of the course you will do a final project, where you will have to expand the functionality of the same app.</p>
★★★★☆ (3) 1 weeks Self paced
<p>In this course you&#39;ll learn the basic Linux fundamentals every web developer needs to know to share their web applications with the world! You&#39;ll get a basic Python WSGI application up and running within a Vagrant virtual machine that queries data from a PostgreSQL database.</p><p>You&#39;ll start by exploring various Linux distributions and learning the differences between a number of them. You&#39;ll then explore how the Linux operating system differs from other operating systems you may be more familiar with. With this base knowledge, you&#39;ll then move into Linux security - covering topics such as file permissions, user management, package management and configuring firewalls. Finally, you&#39;ll transform a safe and secure baseline server into a web application server by installing and configuring the Apache HTTP Server and PostgreSQL database server.</p><br/><br/><b>Why Take This Course?</b><br/><p>A basic understanding of linux systems administration is required to not only get your web application up and running for the world to see, but also to ensure it continues operating efficiently. In this course, you’ll explore a bare-bones linux system and how it differs from desktop environments you are currently familiar with. You’ll then address a number of security concerns full stack developers must contend with and, finally, serve one of your applications from your very own piece of the Internet.</p>
★★★★☆ (7) 1 weeks Self paced
<p>We have built this course for beginners who have no experience with the Linux system and the command-line interface.</p><p>In this course, you&#39;ll learn the basics of the command line interface of a Linux server: the terminal and shell (GNU Bash). This course includes an introduction to files and directories in the Linux filesystem.</p><br/><br/><b>Why Take This Course?</b><br/><p>Most servers on the Internet today run on Linux or other Unix-like systems. Installing, configuring, and troubleshooting often relies on the command line interface. This, accordingly, is foundational web knowledge, and in fact many of our intermediate and advanced courses rely on a familiarity with the command-line interface to run servers, work with version control systems and more.</p>

10 Reviews.

Jude Kuti
Jude Kuti
completed this credential in Apr 2018.

My Life Saver

Xiaofeng Hao
Field of study
Computer science
Masters Degree
Partially Completed this credential.

Great Nanodegree

Danny Luong
Danny Luong
Field of study
Computer science
Bachelors Degree
completed this credential in Jun 2018.

Great Experience

More reviews
10 ratings
10 reviews

Full Stack Web Developer

Receive email notifications about this credential.
Follow Full Stack Web Developer

Class Central

Get personalized course recommendations, track subjects and courses with reminders, and more.

Sign up for free

Never stop learning Never Stop Learning!

Get personalized course recommendations, track subjects and courses with reminders, and more.