Nanodegree key: nd035
Version: 1.0.0
Locale: en-us
Learn enterprise scale back-end development with Java, and be prepared for the software engineering jobs that are in demand at a majority of Fortune 500 companies like Google, Amazon, and more.
Content
Part 01 : Welcome to the Nanodegree
Welcome to the Nanodegree program!
-
Module 01: Nanodegree Orientation
-
Lesson 01: Nanodegree Introduction
Welcome to the Nanodegree program!
- Concept 01: Welcome to the Nanodegree Experience
- Concept 02: Welcome to the Java Developer Nanodegree program
- Concept 03: Prerequisites
- Concept 04: Meet your instructors
- Concept 05: How to succeed
- Concept 06: What you will learn in this nanodegree
- Concept 07: Access the Career Portal
- Concept 08: Prepare for the Udacity Talent Program
-
-
Module 02: How to Get Help from Peers and Mentors
-
Lesson 01: Welcome to Udacity
You are starting a challenging but rewarding journey! Take 5 minutes to read how to get help with projects and content.
-
Lesson 02: Get Help with Your Account
What to do if you have questions about your account or general questions about the program.
-
Part 02 : Java Basics
Learn the fundamentals of Java while being introduced to a Spring Boot framework and associated integrations and plugins.
-
Module 01: Java Basics
-
Lesson 01: Java Refresher Course
Let’s get up to speed with Java
- Concept 01: Java Introduction
- Concept 02: Java Basic APIs
- Concept 03: Java Basic APIs - String
- Concept 04: Java Basic APIs - StringBuilder, StringBuffer, Regex
- Concept 05: Java Basic APIs - Binary Search, Recursion, Big-O Notation
- Concept 06: Collections
- Concept 07: Collections - List
- Concept 08: Collections - Stack and Queue
- Concept 09: Collections - Map and Set
- Concept 10: Environment Setup
- Concept 11: Exception and File IO
- Concept 12: Java Programming Practice Exercises
- Concept 13: Java Refresher Course - Summary
-
Lesson 03: Spring Boot template engine
Spring Boot template engine
- Concept 01: Spring Boot Template Engine
- Concept 02: Spring Boot Template Engine - Thymeleaf
- Concept 03: Thymeleaf - Variable
- Concept 04: Thymeleaf - Condition
- Concept 05: Thymeleaf - Loop
- Concept 06: Thymeleaf - Scope
- Concept 07: Thymeleaf - URL
- Concept 08: Spring Boot Unit Test, Hot Swap And Logging
- Concept 09: Spring Boot Form Validation
-
Lesson 04: Spring Boot - continued
Spring boot exception, web socket, and package.
-
Lesson 05: Create a Chat Room Application with Spring Boot
In this project you will create a Chat Room!
-
Part 03 : Web Services and APIs
Explore 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.
-
Module 01: Web Services and APIs
-
Lesson 01: Overview
First, meet your instructor Kesha and learn about the course. Then, learn a brief overview of web services and how they compare to APIs and microservices.
- Concept 01: Instructor Introduction
- Concept 02: Course Intro
- Concept 03: Web Services & APIs Overview
- Concept 04: Web Services
- Concept 05: Benefits of Web Services
- Concept 06: Web Services vs APIs vs Microservices
- Concept 07: Web Service Demo
- Concept 08: Spring Initializr
- Concept 09: Lab: Test an API
- Concept 10: Recap
-
Lesson 02: REST APIs
Learn how to build RESTful APIs with Spring Boot, first by learning about the REST architecture, then how to use annotations with REST controllers in Spring Boot.
- Concept 01: Introduction
- Concept 02: Architecture Style
- Concept 03: Case Study: Intro & Maven Dependencies
- Concept 04: Lab I: Build a Dog REST API (Set Up)
- Concept 05: Lab I: Solution
- Concept 06: Case Study: Annotations
- Concept 07: Lab II: Build a Dog REST API (Annotations I)
- Concept 08: Lab II: Solution
- Concept 09: Case Study Continued
- Concept 10: Lab III: Build a Dog REST API (Annotations II)
- Concept 11: Lab III: Solution
- Concept 12: Recap
-
Lesson 03: GraphQL APIs
Dive into GraphQL, a query language for APIs. GraphQL lets calling clients limit the data response to just what is needed.
- Concept 01: Introduction
- Concept 02: Overview
- Concept 03: Schemas
- Concept 04: Operations
- Concept 05: GraphiQL
- Concept 06: Case Study: Steps
- Concept 07: Case Study: Bootstrap & Configure
- Concept 08: Lab I: Build a Dog GraphQL API (Set Up)
- Concept 09: Lab I: Solution
- Concept 10: Case Study: Schema Creation
- Concept 11: Lab II: Build a Dog GraphQL API (Schema)
- Concept 12: Lab II: Solution
- Concept 13: Case Study: Queries & Mutations
- Concept 14: Case Study: Exception Handling
- Concept 15: Lab III: Build a Dog GraphQL API (Queries & Exceptions)
- Concept 16: Lab III: Solution
- Concept 17: Case Study: Testing
- Concept 18: Case Study: GraphiQL
- Concept 19: Lab IV: Build a Dog GraphQL API (Testing)
- Concept 20: Lab IV: Solution
- Concept 21: Recap
-
Lesson 04: Microservices
Find out how Microservices improve on the older monolithic application structure, including how to use Eureka and Spring Data REST for easy development and deployment.
- Concept 01: Introduction
- Concept 02: MSA
- Concept 03: Spring Cloud & Eureka
- Concept 04: Case Study: Eureka Server
- Concept 05: Lab I: Build a Dog Microservice (Eureka)
- Concept 06: Lab I: Solution
- Concept 07: Spring Data REST
- Concept 08: Case Study: Spring Data REST
- Concept 09: Lab II: Build a Dog Microservice (Spring Data REST)
- Concept 10: Lab II: Solution
- Concept 11: Microservice Registration
- Concept 12: Case Study: Registration
- Concept 13: Lab III: Build a Dog Microservice (Registration)
- Concept 14: Lab III: Solution
- Concept 15: Recap
-
Lesson 05: Security
Security is key to keeping your information safe - here, you'll learn how to add security to your APIs to keep out unwanted eyes and avoid undesired changes.
-
Lesson 06: Consuming SOAP & REST
Enable the consumption of SOAP and REST APIs within your own API to further speed up development time and avoid reinventing the wheel.
-
Lesson 07: Documentation
Learn about the importance of documentation and easily implement it with the use of Swagger within your code.
- Concept 01: Introduction
- Concept 02: Importance
- Concept 03: Swagger
- Concept 04: Swagger UI
- Concept 05: Swagger Configuration
- Concept 06: Case Study: Swagger Configuration
- Concept 07: Customizing Swagger
- Concept 08: Case Study: Error Messages
- Concept 09: Lab: Document Your Dog API
- Concept 10: Lab Solution: Document Your Dog API
- Concept 11: Recap
-
Lesson 08: Unit & Integration Tests
Build unit and integration tests to give you confidence your application continues to work as intended after making new changes to your code.
- Concept 01: Introduction
- Concept 02: Overview
- Concept 03: Unit Testing
- Concept 04: Case Study: Unit Testing
- Concept 05: Integration Testing
- Concept 06: Case Study: Integration Testing
- Concept 07: Lab: Test Your Dog API
- Concept 08: Recap
- Concept 09: An Emphasis on Testing & Documentation
- Concept 10: Course Outro
-
Lesson 09: Project: Build the Backend System for a Car Website
In this project, you'll create a REST API to store vehicle data, while consuming information regarding location and pricing data from external resources. Also, you'll document and test your API!
Project Description - Build the Backend System for a Car Website
-
Part 04 : Data Stores & Persistence
Learn about different data stores and how to build persistence for Java applications. Work with relational and non-relational databases, and use Java to read/write and build test cases for MySQL and MongoDB.
-
Module 01: Data Stores & Persistence
-
Lesson 01: RDBMS & JDBC
Learn the basics of a relational database, MySQL and how to use it in your java applications using JDBC.
-
Lesson 02: Java Persistence API
Learn how to write simple, maintainable and flexible persistence layer code using JPA and Spring Data JPA.
-
Lesson 03: NoSQL and MongoDB
Learn the advantages of NoSQL databases and the basics of MongoDB, a document database.
-
Lesson 04: MongoDB for Java
Learn to use MongoDB in your java applications
-
Lesson 05: Midterm: Customer Reviews API
You will build the MySQL part of persistence layer for a REST API that supports the customer reviews section of a product page in an e-commerce application.
-
Lesson 06: Final - Customer Reviews API
You will add support for sorting & filtering reviews to your e-commerce app. Polyglot persistence will be introduced with Review information residing in both MySQL and MongoDB in different shapes.
-
-
Module 02: Career Services: GitHub
-
Lesson 01: Optimize Your GitHub Profile
Other professionals are collaborating on GitHub and growing their network. Submit your profile to ensure your profile is on par with leaders in your field.
- Concept 01: Prove Your Skills With GitHub
- Concept 02: Introduction
- Concept 03: GitHub profile important items
- Concept 04: Good GitHub repository
- Concept 05: Interview with Art - Part 1
- Concept 06: Identify fixes for example “bad” profile
- Concept 07: Quick Fixes #1
- Concept 08: Quick Fixes #2
- Concept 09: Writing READMEs with Walter
- Concept 10: Interview with Art - Part 2
- Concept 11: Commit messages best practices
- Concept 12: Reflect on your commit messages
- Concept 13: Participating in open source projects
- Concept 14: Interview with Art - Part 3
- Concept 15: Participating in open source projects 2
- Concept 16: Starring interesting repositories
- Concept 17: Next Steps
-
Part 05 : Security and DevOps
-
Module 01: Security and DevOps
-
Lesson 01: Authentication and Authorization
Implement authentication on a Spring Boot application using a JSON Web token.
- Concept 01: Introduction
- Concept 02: Authentication & Authorization
- Concept 03: Authentication Considerations
- Concept 04: Authentication Protection
- Concept 05: Hashing
- Concept 06: Salting
- Concept 07: How to Pick a Good Hash Function
- Concept 08: Authorization
- Concept 09: JWTs
- Concept 10: eCommerce Starter Code
- Concept 11: JWT Internals
-
Lesson 02: Testing
Learn fundamental concepts of testing. Learn how to set, write and run tests using Junit, the most popular Java Unit Testing Framework and Mockito.
- Concept 01: Introduction to Testing
- Concept 02: What is Testing and Why Does it Matter?
- Concept 03: Software Development Life Cycle
- Concept 04: Types of Testing
- Concept 05: Introduction to JUnits
- Concept 06: More Advanced Features of JUnit
- Concept 07: Code Coverage
- Concept 08: Mocks
- Concept 09: Mockito
- Concept 10: Best Practices
-
Lesson 03: Logging
Learn how to use logging to get better insights into your code and debug your applications more easily. Get practice with two commonly used logging utilities: SLF4J and Log4J.
-
Lesson 04: Splunk
Splunk was founded in 2003 to make sense of machine-generated data. Here you’ll learn about what Splunk can be used for, how to install it, and how to use it for generating dashboards and more.
-
Lesson 05: CI/CD
You’ll learn about various CI/CD tools including git, docker, Jenkins, and more and how to use them to setup a pipeline on an AWS instance.
-
-
Module 02: Career Services: LinkedIn
-
Lesson 01: Take 30 Min to Improve your LinkedIn
Find your next job or connect with industry peers on LinkedIn. Ensure your profile attracts relevant leads that will grow your professional network.
- Concept 01: Get Opportunities with LinkedIn
- Concept 02: Use Your Story to Stand Out
- Concept 03: Why Use an Elevator Pitch
- Concept 04: Create Your Elevator Pitch
- Concept 05: Use Your Elevator Pitch on LinkedIn
- Concept 06: Create Your Profile With SEO In Mind
- Concept 07: Profile Essentials
- Concept 08: Work Experiences & Accomplishments
- Concept 09: Build and Strengthen Your Network
- Concept 10: Reaching Out on LinkedIn
- Concept 11: Boost Your Visibility
- Concept 12: Up Next
-
Part 06 (Elective): Intro to Java Programming
-
Module 01: Intro to Java Programming
-
Lesson 01: Variables and Data Types
Discover the basic idea behind programing and write your first Java program. Use variables to store and retrieve information.
- Concept 01: Intro
- Concept 02: Course Map
- Concept 03: Hello World
- Concept 04: Print a Line
- Concept 05: The Memory Game
- Concept 06: Variables
- Concept 07: Updating Variables
- Concept 08: Third Bus Stop
- Concept 09: Displaying the Output
- Concept 10: Remembering the Stops
- Concept 11: The Bus Driver
- Concept 12: Variables (Strings)
- Concept 13: String Concatenation
- Concept 14: String Operations
- Concept 15: Variable Names
- Concept 16: Data Types
- Concept 17: Data Types Quiz
- Concept 18: All the Maths
- Concept 19: Casting
- Concept 20: Comments
- Concept 21: The 5th Subject
- Concept 22: Track the Values
- Concept 23: Summary
- Concept 24: Lesson 1 Problem Set
-
Lesson 02: Control Flow and Conditionals
Use if-else statements and switch-case statements to write Java programs to tackle any decision making scenario.
- Concept 01: Introducing Control Flow
- Concept 02: Decision Making
- Concept 03: if Statement
- Concept 04: Self-Driving Car
- Concept 05: Recognize Traffic Lights
- Concept 06: Windshield Wipers
- Concept 07: Variable Scope
- Concept 08: What's the Scope?
- Concept 09: else Statement
- Concept 10: else-if
- Concept 11: Multiple else-if's
- Concept 12: Boolean Expressions
- Concept 13: Evaluate these Expressions
- Concept 14: The Art Museum
- Concept 15: Tickets to the Museum
- Concept 16: Complete Museum Code
- Concept 17: Logical Operators
- Concept 18: Order of Operations for Logical Operators
- Concept 19: Logical Operators Practice
- Concept 20: true or false?
- Concept 21: Nested if Statements
- Concept 22: Restaurant Rating
- Concept 23: switch Statement
- Concept 24: switch(month)
- Concept 25: Conclusion
- Concept 26: Lesson 2 Problem Set
-
Lesson 03: Functions
Create functions in Java. Declare methods with input arguments and return types. Then, call the functions you create.
- Concept 01: Introducing Functions 1
- Concept 02: Introducing Functions 2
- Concept 03: What is a Function?
- Concept 04: Importance of Functions
- Concept 05: Function Definition
- Concept 06: Practice with Syntax
- Concept 07: Calling Chorus
- Concept 08: Play Music
- Concept 09: Parameters and Arguments
- Concept 10: Weather Arguments
- Concept 11: Variable Temperature
- Concept 12: Rollercoaster Parameters
- Concept 13: Multiple Parameters Intro
- Concept 14: Multiple Parameters
- Concept 15: Argument Order
- Concept 16: Liking Photos
- Concept 17: Return Values
- Concept 18: Popular Photos
- Concept 19: Return Photo Likes
- Concept 20: What's Missing?
- Concept 21: Making Change
- Concept 22: Random Numbers
- Concept 23: Rolling Dice
- Concept 24: Consider All Sides
- Concept 25: Improved Dice Roll
- Concept 26: Power of Functions
- Concept 27: Java Documentation
- Concept 28: Read this Doc
- Concept 29: Importance of Documentation
- Concept 30: Java Documentation Comments
- Concept 31: Complete this Doc
- Concept 32: Conclusion
- Concept 33: Lesson 3 Problem Set
-
Lesson 04: Loops
Use for and while loops to iterate over a block of code. Learn how to write nested loops. Use 2D arrays to store and retrieve information.
- Concept 01: Alarm
- Concept 02: How Many Repeats?
- Concept 03: While Loops
- Concept 04: Googol
- Concept 05: Yahtzee
- Concept 06: It's a Match
- Concept 07: Three Dice
- Concept 08: Roll a Yahtzee
- Concept 09: Warning Alert
- Concept 10: For Loops
- Concept 11: Loop Counters
- Concept 12: Count the Blocks
- Concept 13: Not Just Increment
- Concept 14: Counting Down
- Concept 15: Step Faster
- Concept 16: Break
- Concept 17: Know When to Quit Intro
- Concept 18: Know When to Quit Quiz
- Concept 19: Know When to Quit Solution
- Concept 20: Press Conference
- Concept 21: Arrays
- Concept 22: Array Index Intro
- Concept 23: Array Index Quiz
- Concept 24: Press Conference Part 2
- Concept 25: Arrays and Loops
- Concept 26: Rubik's Cube Championship
- Concept 27: Find the Longest Name
- Concept 28: What if There's a Tie?
- Concept 29: 2D Arrays
- Concept 30: Sandra's Grade
- Concept 31: Iterating Over 2D Arrays
- Concept 32: Nested Loops
- Concept 33: Inside a Nested Loop
- Concept 34: How Nested Loops Work
- Concept 35: Summary
- Concept 36: Lesson 4 Problem Set
-
Lesson 05: IntelliJ and Debugging
Prepare for your next project by installing Java and IntelliJ, debugging your code, and applying the skills learned in previous lessons.
- Concept 01: Introduction
- Concept 02: JDK
- Concept 03: Mac: Install Java Development Kit
- Concept 04: Windows: Install Java Development Kit
- Concept 05: Mac: The Terminal
- Concept 06: Windows: Command Prompt
- Concept 07: Mac: Hello Java!
- Concept 08: Windows: Hello Java!
- Concept 09: Windows: Changing Environment Variables
- Concept 10: IntelliJ
- Concept 11: Mac: Install IntelliJ
- Concept 12: Mac: Install IntelliJ 2
- Concept 13: Windows: Install IntelliJ
- Concept 14: Setup a Project
- Concept 15: IntelliJ Environment
- Concept 16: Hello World in IntelliJ
- Concept 17: Tic Tac Toe
- Concept 18: Download Tic Tac Toe
- Concept 19: Import the Project Code into IntelliJ
- Concept 20: Run the Game!
- Concept 21: The Grid
- Concept 22: 2D Coordinates
- Concept 23: Winning Conditions
- Concept 24: Detect a Win
- Concept 25: What type of error
- Concept 26: Debugging in IntelliJ
- Concept 27: Project Instructions
- Concept 28: Next Steps
-