Java Functional Programming Course

Learn how to use the Java Functional Programming idioms, for writing highly maintainable and performant code

Java Functional Programming Course

Learn how to use the Java Functional Programming idioms, for writing highly maintainable and performant code

Overview

The course teaches the principles of Functional Programming in Java. It focuses on the usage and benefits of Functional Interfaces, the Optional class and the Streams API, for writing cleaner, more efficient and maintainable code.

Through a series of hands-on examples and practical exercises, the participants will learn how to apply each individual Functional Programming technique and to combine them cohesively.

Objectives

By the end of the course, the participants will:

  • Understand the core concepts of Functional Programming in Java
  • Use Functional Interfaces to write lambda expressions and method references
  • Use the Optional class to handle null values more elegantly and more efficiently
  • Apply the Streams API for processing collections of data
  • Integrate the Functional Programming techniques and idioms in new and existing Java projects

Duration and Schedule

The minimum course duration is 2 days, 6 or 7 hours per day. If possible, we highly recommend a longer duration, to allow more time for hands-on work and refactoring existing projects to incorporate Functional Programming idioms.

Each course session will be composed of a theoretical and a practical part. The ratio between the theoretical and practical components will vary depending on:

  • The complexity of the discussed topic
  • The questions and discussions related to it
  • The participant's interest in that topic

Target Audience

The course is ideal for Java developers who want to:

  • Improve their understanding and usage of Functional Programming
  • Enhance their code quality and productivity
  • Refactor existing code to use the Functional Programming idioms

Prerequisites

The course participants:

  • Must be proficient in Java programming, especially using Object-Oriented Programming concepts
  • Must have the desire to learn new programming concepts and practices
  • Should know high-level software design guidelines, especially:
    • Separation of Concerns
    • Single Responsibility Principle

Presented Topics

Day 1: Java 8+ Features, Functional Programming Idioms
  • Java 8+ features overview
  • Functional interfaces
  • Optional class
  • Streams API

Day 2: More Functional Programming Features
  • CompletableFuture overview
  • 3rd party libraries
  • Hands-on - the participants use-cases

Course Schedule

Day 1

Java 8+ Features, Functional Programming Idioms
  • Java 8+ features overview
  • Functional interfaces
  • Optional class
  • Streams API

Day 2

More Functional Programming Features
  • CompletableFuture overview
  • 3rd party libraries
  • Hands-on - the participants use-cases

Understanding Your Needs

Please contact us for a short discussion, to understand your learning needs and timeline

Testimonials

We really enjoyed Bogdan's training sessions. It's always cool to learn and have fun while doing them. He is very patient and always prepared to offer the best solution/explanation for any problem/question. ... I also love his ability to extend the context for each chapter, offering many smart hooks to integrate the concept in a broader picture, which makes it all easier to understand.

Sorin, Crossover

Contact Us

Please send us a message about any inquiry you may have

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.