Java Developer Nanodegree Program Syllabus PDF
Java Developer Nanodegree Program Syllabus PDF
Program Overview
The ultimate goal of the Java Developer Nanodegree program is to equip students with the unique skills
they need to build enterprise-scale applications with Java. A graduate of this program will be able to:
● Understand the fundamentals of Java, while being introduced to a 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.
● Work with relational and non-relational databases, use Java to read/write and build test cases for
MySQL and MongoDB, and build persistence for Java applications.
● Learn about Git, version control, and best practices for authorization and authentication. Use Jenkins
to build CI/CD pipeline to deploy code to production.
This program is comprised of 4 courses and 4 projects. Each project you build will be an opportunity to
demonstrate what you’ve learned in the lesson, and will demonstrate to potential employers that you have
skills in these areas.
Estimated Length of Program: 4 months
Frequency of Classes: Self-paced
Prerequisite Knowledge: Intermediate knowledge of any programming language, preferably an
object-oriented language (e.g, Python, C++). Some web development experience desirable but not required.
version 1.0
1
Introduction to Java ➔ Use different data structures and algorithms in Java and calculate
time complexity of the code
➔ Implement exception handling, file IO, BufferReader
Spring Boot Servlet, Filter ➔ Describe how the model-view-controller (MVC) architecture works
and Listener ➔ Configure Spring Boot and create Spring Boot servlet, filter and
listener, from scratch
➔ Interact with static resources in a Spring Boot application
Spring Boot with Thymeleaf ➔ Manage spring boot application with Maven plugins
and Mybatis ➔ Create web pages with Thymeleaf
➔ Integrate Spring Boot with Mybatis
Spring Boot Web Socket ➔ Implement Spring Boot websocket structure and components.
with spring boot tests ➔ Create the message model and implement chat room controller.
➔ Create web driver tests to ensure test coverage.
version 1.0
2
During the development of these steps, the student will be guided to write unit tests, error handling,
logging, and other best practices.
Web Services & APIs ➔ Describe web services and their advantages
Overview ➔ Describe how web services communicate
➔ Explore the differences between web services, APIs, and
microservices
Develop REST APIs with ➔ Describe the REST architectural style and the importance of data
Spring Boot formats
➔ Develop a REST API using Spring Boot and incorporate exception
handling.
➔ Use proper HTTP response codes
Develop GraphQL APIs ➔ Describe GraphQL and its advantages over REST
with Spring Boot ➔ Create a GraphQL schema
➔ Develop a GraphQL server and API using Spring Boot
➔ Use GraphQL to execute queries and operations on data
Test REST APIs ➔ Describe and explain unit and integration testing
➔ Incorporate unit and integration testing into a REST API
version 1.0
3
RDBMS & JDBC ➔ Describe the structure of relational databases (MySQL) and explain
ACID compliance.
➔ Write SQL queries to operate on relational databases.
➔ Use Java Database Connectivity (JDBC) API to build persistence for
a Java application.
➔ Use Flyway to perform database migrations.
Java Persistence API ➔ Describe the benefits and uses for Object Relational Mapping and
Java Persistence API (JPA).
➔ Explain the concepts behind Spring Data project.
➔ Develop a Spring Boot app that defines a Repository.
➔ Use Spring and H2 for testing database code.
NoSQL & MongoDB ➔ Describe NoSQL, non relational databases and flexible schema.
➔ Describe the use cases for the document oriented database
MongoDB.
➔ Use Mongo shell to perform different operations such as
create/modify collections, select/create/update/delete documents
and aggregations.
➔ Describe the pros & cons of nested documents and document
references.
version 1.0
4
Git ➔ Learn the basics of git such as branching, pull requests, and
merging
➔ Describe what version control is and means
Authorization and ➔ Identify the need for security in modern day web applications
Authentication ➔ Describe best practices for authorization and authentication
➔ Implement modern authorization and authentication technologies
such as password hashing and JWT
Logging and Analytics ➔ Identify important application metrics and log them
➔ Send logs to Splunk
➔ Create visualizations and dashboards in Splunk to display those
metrics
version 1.0
5