0% found this document useful (0 votes)
11 views15 pages

Full Stack JavaScript Developer Nanodegree Program Syllabus

Uploaded by

Hassan Jabbar
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
11 views15 pages

Full Stack JavaScript Developer Nanodegree Program Syllabus

Uploaded by

Hassan Jabbar
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 15

INDIVIDUAL LEARNERS

SCHOOL OF PROGRAMMING & DEVELOPMENT

Full Stack JavaScript


Developer
Nanodegree Program Syllabus
Overview
Master the skills necessary to become a successful full stack developer. Learn how to build UI and UX, create APIs and server
side business logic, and develop the persistence layer to store, process, and retrieve data.

Learning Objectives

A graduate of this program will be able to:

• Build client-side experiences and applications using Angular, collecting data from users and from
backends, providing rich user interactions, and organizing code and data.

• Build server-side executed code with TypeScript and integrate with 3rd party code such as Angular’s
server-side rendering.

• Leverage Express.js to architect and build APIs that power dynamic functionality and to generate and
supply data to web and mobile clients.

• Persist data to a database, query and retrieve data, and pass this data all the way through to various
client devices.

Full Stack JavaScript Developer 2


Program information

Estimated Time Skill Level

4 months at 10hrs/week* Intermediate

Prerequisites

A well-prepared learner should have familiarity with HTML, CSS, Basic JavaScript, and JSON.

Required Hardware/Software

None

*The length of this program 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 5-10 hours per week working through the program, you
should finish within the time provided. Actual hours may vary.

Full Stack JavaScript Developer 3


Course 1

Backend Development with Node.js


There are quite a few technologies involved to build the backend of an application that’s enterprise ready. This course
introduces the fundamental tools needed to build a basic API in a way that is both scalable and maintainable. The course will
go through working with Node.js and the core modules available, writing TypeScript for developer error reduction, testing with
Jasmine to introduce unit testing in a test-driven development environment, and working with Express as a framework for
building APIs.

Course Project

Image Processing API


Design an API for image processing that allows the user to visit a URL, and using URL parameters, resize the
image based on the parameters provided. Upon viewing an image that’s already been resized, a cached image
will be served. This is the core functionality seen in placeholder image websites and can be implemented with
a front end to better serve appropriately sized images. The API presents the first opportunity to pull together
the technologies of the course and tie them together in a commonly used application.

• Understand why to use Node.js.

• Install and understand how Node.js is updated.

• Understand the event loop and control how asynchronous code is processed.
Lesson 1
• Use Node.js REPL to write js expressions, then use Node.js to run a js file.

Getting Started with Node.js • Extend JavaScript by using global variables and functions not available in the
browser.

• Use NPM init to create a package.json/lock to install dependencies and


configure scripts.

Full Stack JavaScript Developer 4


• Take advantage of strict typing to reduce error by installing TypeScript to work
with Node.js.

Lesson 2 • Create valid, formatted, readable TypeScript by configuring ESLint/Prettier to


work with TypeScript.
Developing with TypeScript
• Type variables, functions, and objects with TypeScript.

• Manage async/await, promises and error handling with TypeScript.

• Install Jasmine and configure it to work with JavaScript after TypeScript has
Lesson 3 been compiled.

• Organize, write, and run unit tests.


Unit Testing with Jasmine
• Create asynchronous tests and use Supertest to perform endpoint tests.

• Build a server by applying the top features of Express’s root app object.
Lesson 4
• Improve an application by creating and applying middleware.
Building a Server
• Take advantage of the file system by learning to write and read files from disk.

Course 2

Creating an API with PostgreSQL & Express


This course covers the primary skills required for API development. Students will build a RESTful JSON API with Node and
Postgres. Along the way, learners will cover essential topics like databases and querying, API architecture, database migrations,
REST, CRUD, creating a testing environment, password hashing, and route authorization via JWTs. By completing the exercises
and course content, students will gain the knowledge to create a secure, well-organized API from scratch and learn skills
JavaScript developers use every day.

Full Stack JavaScript Developer 5


Course Project

Build a Storefront Backend


Learners will imagine themselves as a full stack developer at a small company, asked to craft an API to meet
a set of requirements created by business stakeholders and to be consumed by a front end developer
coworker. Use skills and understanding from the course to discern the best architecture, endpoint
structure, and database schema to complete the task. Modeled after a workplace environment and true to
life task, demonstrate that one can reason through the design of an API and are capable of writing the code
and logic necessary to meet requirements.

• Understand what databases are.

• Gain visibility into the most popular types of databases, their respective
strengths, and use cases.

• Become familiar with relational databases.


Lesson 1
• Connect to a database with interactive terminal psql.
Databases & SQL • Write basic database queries with SQL.

• Create, structure, and fill a Postgres database.

• Know what CRUD is and how it pertains to database actions.

• Understand when and how to use SQL filters and foreign keys.

• Set up a Node application to connect to a postgres database.

• Install a Node package dotenv for environment variables.

• Learn best practices for using environment variables.


Lesson 2
• Create models in Node.
Creating an API with • Understand the need for database migrations.
Postgres Connection
• Install a Node package for database migrations.

• Set up a testing environment with a separate testing database.

• Testing models with Jasmine.

Full Stack JavaScript Developer 6


• Understand RESTful APIs and how to design one.

• Understand the full stack request/response loop through the API.


Lesson 3
• Be introduced to what CORS is and when it is necessary.
Creating an API with Express
• Write Express custom middleware.

• Write clean, well-organized Express routes that mirror API structure.

• Be familiar with password hashing, salt, and pepper.

• Understand why these practices are important for data security.


Lesson 4
• Install a Node package Bcrypt and learn to set up Bcrypt for password hashing
Authentication & at user creation.
Authorization in a Node API
• Understand what JWTs are and how they work.

• Implement route authorization with JWTs.

• Understand database relationships and when to implement them.

• Create RESTful routes that demonstrate relationships between data via


well-organized routes.
Lesson 5
• Write custom model and handler methods for extending API endpoints.
SQL for Advanced • Understand SQL Joins and result ordering.
API Functionality
• Write informational API endpoints to support dashboard functionality.

• Organize more advanced business logic in a Node API for cleaner code and
separation of concerns.

Full Stack JavaScript Developer 7


Course 3

Angular Fundamentals
In Angular Fundamentals, students will learn the most important and foundational skills for building single-page applications
(SPAs). Learners will discover the architecture of an application, explore how to retrieve and flow data throughout an
application, and see how applications scale in a maintainable and performant way. Upon completion of the course, learners
will be able to build new and expand existing Angular applications with new components and features, architect an Angular
application for clarity and maintainability while following best practices, and create and use dependencies such as services and
third-party libraries to enrich and extend applications.

Course Project

My Store
Build a full single-page ecommerce application with Angular called MyStore. The application will contain
a variety of different Angular components that communicate with each other, such as a product list
component that renders a list of items for which a user can shop. Pull this data by making requests to a
backend API, then populate the page with items that can be added to the shopping cart.

Build and nest these components in a logical structure for optimal navigation and routing, such as bringing
users to a product detail page. Through using services, among other tools, share data with any component
that needs it, such as the shopping cart. The application will also be able to handle and respond to user
input, through Angular’s powerful template-driven forms.

• Set up and install the Angular CLI.

Lesson 1 • Scaffold a new application using the Angular CLI.

Angular Overview • Generate a component.

• Organize components into closely related sets of capabilities (i.e., modules).

Full Stack JavaScript Developer 8


• Build a component by defining a class containing application data and logic.

• Build templates to represent an application’s user interface.


Lesson 2
• Use data binding to re-render the application by detecting changes in state.
Components
• Extend the style or behavior of HTML elements with directives.

• Use the Angular router to handle navigation between views.

• Extend Angular’s base functionality by importing libraries and modules.


Lesson 3
• Use dependency injection to provide custom services and capabilities.
Libraries & Services
• Find, add, and manage an application’s dependencies.

• Fetch data via HTTP with the HTTP Client Module.


Lesson 4
• Collect user input by building template-driven forms.
Data
• Validate user input.

Full Stack JavaScript Developer 9


Course 4

Deployment Process
Being able to deploy one’s own application is a skill that is often overlooked by developers, thus making it a rare and valuable
skill to have. This course will teach the necessary knowledge to create one’s own production environment and automate the
deployment of code to it. By building an automated pipeline and scripts, learners will gain insights into the world of automated
deployments that has been revolutionizing how fast companies are able to deliver features to their customers.

Course Project

Hosting a Full Stack Application


Host and create an automated deployment pipeline for a full stack application. Learners will have the
option of using their own project or using a provided full stack application. Provision AWS infrastructure
and prepare the application for hosting it.

Move on to creating different scripts for deploying the application and creating a deployment pipeline. This
project will expose students to a key process that is present on most software development projects.

• Create and configure a Postgres database in RDS.

Lesson 1 • Start an Elastic Beanstalk environment using the pre-configured node


template.
Setting Up a Production
Environment • Create environment properties in Elastic Beanstalk.

• Create an S3 bucket and configure it for web hosting.

Full Stack JavaScript Developer 10


• Ensure an application is healthy by using the Elastic Beanstalk CLI.

Lesson 2 • Apply code changes in an S3 bucket by using the AWS CLI to update the bucket
content.
Interact with Cloud Services
• Apply code changes in Elastic Beanstalk by using the EB CLI to deploy a new
application version.

• Create scripts to build back end and front end applications.


Lesson 3
• Create scripts to deploy different pieces of a full stack application.
Write Scripts For Web • Create scripts that ensure a build follows quality standards.
Applications
• Create a root-level script to install all application dependencies.

• Connect a repository to CirceCi.

Lesson 4 • Create a manual approval step for deployments.

• Create an automated integration process.


Configure &
Document a Pipeline • Create documentation using markdown files and diagrams.

• Create an automated deployment process.

Full Stack JavaScript Developer 11


Meet your instructors.

Guillaume Bibeau Laviolette


Software Engineer

Guillaume is a software developer who has worked for companies such as Shutterstock and Filevine
as a software and cloud engineer. He obtained his bachelor’s of statistics and probability at McGill
University in Canada.

Rachel Manning
Full Stack Developer

Rachel is a full stack freelance developer and educator. As an advocate for continued learning,
she is passionate about mentoring women and the underserved community in technology.

Alyssa Hope
Software Engineer

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.

Andrew Wong
Full Stack 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.

Full Stack JavaScript Developer 12


Udacity’s learning
experience

Hands-on Projects Quizzes


Open-ended, experiential projects are designed Auto-graded quizzes strengthen comprehension.
to reflect actual workplace challenges. They aren’t Learners can return to lessons at any time during
just multiple choice questions or step-by-step the course to refresh concepts.
guides, but instead require critical thinking.

Knowledge Custom Study Plans


Find answers to your questions with Knowledge, Create a personalized study plan that fits your
our proprietary wiki. Search questions asked by individual needs. Utilize this plan to keep track of
other students, connect with technical mentors, movement toward your overall goal.
and discover how to solve the challenges that
you encounter.

Workspaces Progress Tracker


See your code in action. Check the output and Take advantage of milestone reminders to stay
quality of your code by running it on interactive on schedule and complete your program.
workspaces that are integrated into the platform.

Full Stack JavaScript Developer 13


Our proven approach for building
job-ready digital skills.
Experienced Project Reviewers

Verify skills mastery.


• Personalized project feedback and critique includes line-by-line code review from
skilled practitioners with an average turnaround time of 1.1 hours.

• Project review cycle creates a feedback loop with multiple opportunities for
improvement—until the concept is mastered.

• Project reviewers leverage industry best practices and provide pro tips.

Technical Mentor Support

24/7 support unblocks learning.


• Learning accelerates as skilled mentors identify areas of achievement and potential
for growth.

• Unlimited access to mentors means help arrives when it’s needed most.

• 2 hr or less average question response time assures that skills development stays on track.

Personal Career Services

Empower job-readiness.
• Access to a Github portfolio review that can give you an edge by highlighting your
strengths, and demonstrating your value to employers.*

• Get help optimizing your LinkedIn and establishing your personal brand so your profile
ranks higher in searches by recruiters and hiring managers.

Mentor Network

Highly vetted for effectiveness.


• Mentors must complete a 5-step hiring process to join Udacity’s selective network.

• After passing an objective and situational assessment, mentors must demonstrate


communication and behavioral fit for a mentorship role.

• Mentors work across more than 30 different industries and often complete a Nanodegree
program themselves.

*Applies to select Nanodegree programs only.

Full Stack JavaScript Developer 14


Learn more at
www.udacity.com/online-learning-for-individuals →

12.16.22 | V1.0

You might also like