Java Developer Nanodegree Program Syllabus
Java Developer Nanodegree Program Syllabus
Learning Objectives
• Understand the fundamentals of the Spring Boot framework and associated integrations and plugins.
• Describe the differences between web services, APIs, and microservices; develop REST and GraphQL APIs,
and learn how to secure, consume, document, and test those APIs and web services.
• Build applications that read and write to relational databases using both the Java Persistence API (JPA)
and SQL.
• Use standard design patterns to make a persistence layer easy to test and integrate with a Spring Boot
application.
• Learn about Git, version control, and best practices for authorization and authentication.
Prerequisites
Learners need intermediate knowledge of Java. Some web development experience is desirable, but not required. Learners
should also be able to: initialize and use primitive Java data types (i.e. float, int, etc), select and use Collections from java.
util.Collections, design and create classes and class methods in Java, create interfaces and subclasses in Java, launch Java
applications from an IDE, and write basic queries in SQL.
Required Hardware/Software
*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.
Course Project
Web Development in Java • Add and update project dependencies within a Maven POMfile.
• Configure a Spring Boot application within Java using annotations and factory
Lesson 2 methods.
• Design HTML templates with Thymeleaf and populate HTML templates with
Spring’s MVC data model.
• Explain how a controller populates the data model for a given view.
Lesson 3 • Identify the relationship between controller endpoint return values and the
templates that are displayed.
Spring MVC & Thymeleaf
• Identify the role of the model object passed to controller endpoint methods.
• Identify mappings between Java objects and SQL tables and leverage those
mappings to connect an application with a data store.
• Explain how ORM leverages similarities between Java data types and SQL data
types to reduce development time and programmer error.
• Use the JUnit assertion class to test specific success or failure points.
• Run a suite of JUnit tests from their IDE and interpret the results.
Lesson 5
• Navigate to specific URLs with the Selenium web driver.
Testing • Interact with queried elements from Selenium in the manner of a user to test
that functionality exists as intended.
• Write JUnit tests using these techniques to test individual features of a web
app.
• Organize tests into page objects so that the application structure is mirrored by
the test structure.
Course 2
Lesson 2 • Describe the REST architectural style and the importance of data formats.
• Develop a REST API using Spring Boot and incorporate exception handling.
Develope REST APIs with
Spring Boot • Use proper HTTP response codes.
Test REST APIs • Incorporate unit and integration testing into a REST API.
Course Project
Lesson 2 • Propagate retrievals and persists with the help of lazy loading and cascading.
Connecting to Data Sources • Use Spring and Hibernate to automatically initialize your data sources.
• Learn about the differences in data object design when retrieving data with
SQL.
Persistence Without JPA • Execute SQL queries with JdbcTemplate and automatically map the results to
your data objects.
• Decide when to use SQL and when to use Hibernate, and learn how to combine
them both in the same project.
Course Project
Lesson 1 • Learn the basics of git such as branching, pull requests, and merging.
Peter Zastoupil
Enterprise Developer
Peter Zastoupil is an enterprise developer and technical administrator. He has seven years of
on-the-job experience building features for massive enterprise Java servers, and over four years of
teaching those skills to new developers.
Kesha Williams
Software Engineering Manager at Chick-fil-A
Kesha has over 20 years experience in software development and is a software engineering
manager at Chick-fil-A, routinely leading innovation teams in proving out the use of cloud
services to solve complex business problems. She was recently named an Alexa Champion by
Amazon.
Alex Pritchard
Senior Software Engineer at CPA Global
Alex is a senior software engineer for CPA Global. He is excited to combine his background as
a music educator with more than a decade of enterprise Java experience to help create this
hands-on course about testing and deploying Java applications.
Sareeta Panda
Senior Developer at Walmart eCommerce
Sareeta is a Java enthusiast and senior developer at Walmart eCommerce. She specializes in
enterprise application development with Java and Kafka, NoSQL, Spring security, and CI/CD.
Sareeta has over a decade of experience, spanning recently acquired startups to top Fortune
500 companies.
• 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.
• 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.
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
• Mentors work across more than 30 different industries and often complete a Nanodegree
program themselves.
12.09.22 | V1.0