The Functional Programming for Java Developers training course is designed to provide the Java Developer with the knowledge and skills to incorporate functional programming into their daily coding lives.
The course begins by covering the fundamentals of functional programming in contrast to imperative programming and how functional style can reduce bugs, and increase the maintainability of code. Next, students will learn about immutability, pure functions, functions as first-class values, higher-order functions, and simple monads. The course also introduces functional concurrency, with Java's Promise mechanism, provided by the CompletableFuture API. The course also teaches how to mix programming styles during migration, and how to handle exceptions in a functional system. The course concludes with investigating the overlap between object-oriented programming concepts such as the Liskov Substitution Principle and design patterns with functional concepts.
Hands-on exercises will be incorporated throughout to enhance learning.
Purpose
|
Learn to utilize functional programming when creating code. |
Audience
|
Developers and developer teams needing to learn Functional Programming for Java Developers. |
Role
| Data Scientist - Software Developer - Web Developer |
Skill Level
| Intermediate |
Style
| Workshops |
Duration
| 3 Days |
Related Technologies
| Java |
Productivity Objectives
- Describe Functional Programming and how it differs from imperative programming
- Explain how side-effect-free functions reduce errors and are easier to test
- Employ immutable data, and understand how immutable data structures can be used in a memory-efficient way
- Formulate higher-order functions and use syntax that simplifies these constructs
- Utilize generics, along with co- and contra-variance to create more reusable functional code
- Examine Monads and Functors and common operations these provide
- Use common Monadic libraries for parallel and asynchronous data processing