Press "Enter" to skip to content

Pragmatic Functional Programming in Java 8+

Pragmatic Functional Programming in Java 8+

In this workshop, attendees will learn how to supercharge their everyday Java programming experience by utilizing pragmatic Functional Programming ideas – which allow writing readable, predictable and less error-prone code faster.

The course is aimed at Java professionals who want to quickly break the cognitive barrier of making a paradigm shift and get up to speed with new tools.


  1. Introduction to Idiomatic Functional Programming
    1. Immutability/Referential Transparency/Equational Reasoning
    2. Currying
    3. Functor-based Design Patterns
    4. Tail-Recursion
  2. Lambda Expressions Anatomy
    1. Basics
    2. Functional Interfaces
    3. Internals
    4. Exception Handling
  3. Idiomatic Optional
  4. Stream API Basics
  5. Streams API Deep Dive
    1. Working with Infinite Sequences
    2. Writing Custom Collectors
    3. Parallel Streams (and why they might be not suitable for production)
    4. Writing Custom Spliterators
    5. Parallel Processing Without Parallel Streams
    6. Bugs
  6. Gang of Four Design Patterns Revisited
  7. CompletableFuture Deep Dive
  8. Functional Data Structures
    1. Persistent Collections
    2. List/Queue/Map
  9. Monadic Types Beyond Optional/Stream
    1. Try
    2. Lazy
    3. Either
  10. Functional Programming with Legacy Java 

This is just a default outline, the actual agenda is always derived from the pre-training analysis.


Excellent teacher, lots of exercises which go beyond the common stuff… and lots of additional exercises which you can explore after the workshop. I learned how to properly use “functional” java in my daily job. Thanks for the amazing workshop!

If you enjoyed the content, consider supporting the site:

Support the siteSupport the site