loading...
Cover image for The best Java training for developers in Europe

The best Java training for developers in Europe

codingunicorn profile image Coding Unicorn 🦄 Updated on ・4 min read

👉 TLDR: Effective Java Software Design is the best advanced Java training I have ever attended.

Java ecosystem is changing very fast. In order to stay up to date with the industry, it's not enough to code on your project. You have to attend Java courses, where you can learn approaches and patterns used in other projects. I also wanted to learn how to write idiomatic Java, using the latest goodies and additions, such as lambdas, method references, text blocks etc.

Alt Text

I asked our Java Architect about the courses and he recommended attending the Effective Java Software Design training by Eduards Sizovs. I know Eduards from his blog and saw him speaking at meetups and conferences in Europe. The guy has great energy, so my expectations were high, and Eduards met them. The training was an absolute blast! 🚀

Content and practicality (5/5) ⭐️⭐️⭐️⭐️⭐️

I was surprised that the content was 100% practical. No boring theories, introductions to stream API and things that I can easily discover myself.

🧠 For example, I thought that I am good at software design patterns, but after this course, I realized GoF's patterns is a just tip of an iceberg. To write good Java code, there is much more to learn and practice.

I learned lots of new patterns that I already started applying at work:

✔️ Reification
✔️ Method Objects
✔️ Specifications
✔️ Projections
✔️ Pipelines
✔️ ...

I've got a fresh look at how to write code, from micro tasks to design and architecture. Moreover, I learned how to explain and teach it all to my junior teammates.

Some of the topics the course covers:
🚀 how to get out of technical debt
🚀 how to design a service layer
🚀 how to craft a domain model
🚀 how to deal with data and persistence
🚀 how to implement event sourcing and CQRS
🚀 how to implement fault tolerance patterns using Resilience4j

My personal favorites:
1️⃣ How to package code (I was doing it wrong for 5 years) 🤭
2️⃣ Unit and acceptance testing with Spock (testing can be fun!)
3️⃣ Ensuring architecture consistency with ArchUnit

❤️ I love how Eduards is putting business logic in Hibernate entities in a true Domain-Driven Design style:

class BankAccount {
  void close(UnsatisfiedObligations unsatisfiedObligations, Repository repository) {
    checkState(!hasOverdraft(), "Cannot close bank account with unpaid overdraft {}", id);
    checkState(!unsatisfiedObligations.exist(), "Cannot close bank account. Unsatisfied obligations exist for account {}", id);
    this.status = CLOSED;
    this.voidTransactions();
    repository.update(this);
    ...
  }
}

👍 What excited me a lot is that Eduards has given us a demo project that is built using the best practices, tools, and libraries mentioned during the course:

✔️ Spring Boot
✔️ jOOQ
✔️ Flyway
✔️ Failsafe
✔️ PipelinR
✔️ Testcontainers
✔️ Spock
✔️ ArchUnit

10/10. Period.

Inspiration (5/5) ⭐️⭐️⭐️⭐️⭐️

Eduards has inspired me to become a better developer. I now also have a clearer vision on how to grow professionally, how to navigate neverending amounts of information and hype. I have no idea where Eduards takes energy from, but he is a true energizer, inspiration and role model.

❌ The course is not like a boring university lecture.
✅ It's like a practical and inspiring tech meetup.

💡 Take-away: Courses can be fun and inspiring!

Location and price (5/5) ⭐️⭐️⭐️⭐️⭐️

Alt Text

You get what you pay for. Probably there are cheaper courses and I considered some alternatives, but luckily I chose this course.

I even received a homework assignment after the course. After I completed it and published the code on my GitHub, Eduards has sent me a detailed code review, supplied with:

🎓 A list of books and blogs to read
🎓 A list of down-to-earth Java experts to follow
🎓 A list of frameworks and libraries to learn best practices from

I attended the course with my team lead in 🇩🇪 Berlin and it has already paid off. It's a much better time investment than attending a conference.

Summary

👉 I highly recommend Effective Java Software Design course to any professional Java developer.

Alt Text

Because my company has paid for the course, I asked my manager for permission and a budget using the following template:

1️⃣ I want to attend _ _ _ _ _ on _ _ _ _ _. It costs _ _ _ _ _.
2️⃣ The benefits for the project and the company: _ _ _ _ _.
3️⃣ This course is the best, because: _ _ _ _ _.
4️⃣ I considered the following alternatives: _ _ _ _ _.
5️⃣ The timing is good for the team and the project, because _ _ _ _ _.
6️⃣ While I am away, _ _ _ _ _ will be replacing me.
7️⃣ When I am back, I will share the lessons learned with _ _ _ _ _ by creating a _ _ _ _ _.

Hope you'll find my review helpful. Good luck!

P.S. you can follow me here.

Discussion

pic
Editor guide