Full Stack Web Developer Nanodegree Syllabus: Before You Start
Full Stack Web Developer Nanodegree Syllabus: Before You Start
Full Stack Web Developer Nanodegree Syllabus: Before You Start
Nanodegree Syllabus
Build Complex Web Applications
Prerequisites:
➔ You will need to be able to communicate fluently and professionally in written and
spoken English.
➔ To enroll, you should also have experience in the following courses or skills:
◆ Programming with Python or another object-oriented programming language.
◆ Programming with JavaScript Data Structures including Lists, Arrays,
Dictionaries. Free Course
◆ Git/GitHub. Free Course
◆ Introduction to HTML. Free Course
Educational Objectives:
Students will learn about building out the infrastructure that powers and supports the many web,
desktop, mobile and integrated applications in the world.
*The length is an estimation of total hours the average student may take to complete all required coursework, including lecture and
project time. If you spend about 10 hours per week working through the program, you should finish in 16 weeks, so approximately 4
months. Actual hours may vary.
PART 1
Welcome to the Program!
Welcome to the Full Stack Web Developer Nanodegree program. This is your first step on your
journey to become a Full Stack Developer. Learn what this program is all about as well as how
to find support along your learning journey.
Estimated time: 35 minutes
PART 2
Developer's Tools
Brush up your knowledge of essential developers' tools such as the Unix shell, Git, and Github;
then apply your skills to investigate HTTP, the Web's fundamental protocol and basic
networking skills like DNS, NAT, IPv6, Bandwidth, Latency and how to use tcpdump to explore
the packages in the network.
Estimated time: 36 hours 45 minutes
Shell Workshop ➔ The Unix shell is a powerful tool for developers of all sorts.
Get a quick introduction to the basics of using it on your
computer
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.
Tagging, Branching, ➔ Being able to work on your project in isolation from other
and Merging changes will multiply your productivity. You'll learn how to
do this isolated development with Git's branches.
Undoing Changes ➔ Help! Disaster has struck! You don't have to worry, though,
because your project is tracked in version control! You'll
learn how to undo and modify changes that have been
saved to the repository.
Working on Another ➔ In this lesson, you'll learn how to fork another developer's
Developer's project. Collaborating with other developers can be a tricky
Repository process, so you'll learn how to contribute to a public project.
Staying In Sync With ➔ You'll learn how to send suggested changes to another
a Remote Repository developer by using pull requests. You'll also learn how to
use the powerful `git rebase` command to squash commits
together.
Requests & ➔ In this lesson, you will examine HTTP requests and
Responses responses by experimenting directly with a web server,
interacting with it by hand.
The Web from Python ➔ In this lesson, you will write HTTP servers and clients in
Python.
HTTP in the Real ➔ In this lesson, you will examine a number of practical HTTP
World features that go beyond basic requests and responses.
From Ping to HTML ➔ Start exploring the network using low-level command-line
tools such as ping and netcat.
Protocol Layers ➔ Use tcpdump to examine packets that make up the requests
and responses for three protocols: ping, DNS, and HTTP.
Big Networks ➔ Learn more about bandwidth, latency, filtering, and other
properties that matter when users are accessing your
application over the Internet.
PART 3
Data and Tables ➔ Learn the principles behind relational data organization:
tables, queries, aggregations, keys, and joins.
Python DB-API ➔ Now that you've learned the benefits of Version Control and
gotten Git installed, it's time you learn how to create a
repository.
Deeper into SQL ➔ Knowing how to review an existing Git repository history of
commits is extremely important. You'll learn how to do just
that in this lesson.
Project: Logs ➔ In this project, you'll practice your SQL skills by building a
Analysis reporting tool that summarizes data from a large database.
PART 4
Working with CRUD ➔ Learn the CRUD pattern (Create, Read, Update, Delete)
and how it relates to RESTful architectures and to the
operations of a database-backed web service.
Making a Web Server ➔ Build a web service in Python that uses your database to
implement CRUD operations.
Iterative Development ➔ Learn the basics of agile and iterative development while
building a restaurant menu application.
Creating Google Sign-in ➔ Investigate OAuth and build third-party sign-in into your
web applications using Google's authentication services.
Adding Facebook and ➔ Discover additional OAuth providers and add Facebook
Other Providers authentication in your application, giving more choices for
third-party auth.
What's and Why's of ➔ Discover the foundation of Web APIs, the common
APIs systems for passing and updating information to web
applications.
Creating Your Own APIs ➔ Begin creating your own API endpoints and learn to
serialize your data to package it up for transfer across the
web using HTTP.
Securing Your API ➔ Control access to your APIs by limiting who can access
the resources behind them and ensuring that only
authorized users can read and modify data.
Project: Item Catalog ➔ In this project, you will develop an application that
provides a list of items within a variety of categories as
well as provide a user registration and authentication
system. Registered users will have the ability to post, edit
and delete their own items.
PART 5
Linux Security ➔ Dive deep into Linux Security to ensure your service
remains stable and free from attackers.
Web Application ➔ Install all of the required software to turn your Linux server
Servers into a full-fledged web application server and host your very
own application!
➔ Install an Apache web application server on a Linux
system.
Project: Linux Server ➔ In this project, you will take a baseline installation of a Linux
Configuration distribution on a virtual machine and prepare it to host your
web applications, to include installing updates, securing it
from a number of attack vectors, and installing and
configuring web and database servers.
Extracurricular material
PART 1
Web Accessibility
Explore the diversity of different users experience with websites and applications. Learn
about using screen readers practically and recognize the challenge of building web
experiences for all users.
Semantics Basics ➔ Dive into the differences between visual UI and semantically
designed accessible UI. Add semantic elements to HTML to
create a user interface that works for everyone.
PART 2
Refactoring with ➔ Begin refactoring your Cat Clicker code and learn the best
Separation of ways to improve its structure.
Concerns
PART 3
Intro to AJAX
Connect to external web APIs to power asynchronous browser updates and use the
jQuery JavaScript library to build AJAX requests and handle API responses.
Requests and APIs ➔ Learn how to request data from third party APIs using
jQuery's AJAX functions. Examine AJAX queries in live
applications and investigate APIs you can use in your own!
Building the Move ➔ Follow along as Cameron uses The New York Times API to
Planner App build a moving planner app. Learn how to handle errors and
how to debug your AJAX methods.