DEV Community

Cover image for Roadmap - Senior Java Developer 2024

Roadmap - Senior Java Developer 2024

antofik on December 29, 2023

The role of a Senior Java Developer has witnessed significant changes over the past years. As technology continues to advance at an unprecedented p...
Collapse
 
aloisseckar profile image
Alois Sečkár

For me, the most "senior" thing you need to do, is to change mindset from "I don't know" to "I don't know YET". Then most of the things will come eventually.

Also it is important to understand, that seniority doesn't mean to learn a lot of things fast (and thus rather briefly), but mostly comes with experience (meanwhile you will learn a lot of new things).

One skill I find much more important that for example deep understanding to JVM or knowing dozes of frameworks - business analysis. Or at least part of it. To be able to transform the requirements into solutions. And be able to think about it, uncover blind spots in the design, forsee the edge cases, propose solutions and communicate them with team and sooner or later also with the customer himself. I believe this differs (senior) software engineers from mere coders. In the emerging world of AI being good at this seems more important than ever.

Collapse
 
antofik profile image
antofik

Fully agree about "YET" part :) It is especially visible in situtation: "I cannot do it" vs "I cannot do it YET"

Collapse
 
josealonso profile image
José Ramón (JR)

Thanks for this very detailed list.
I just want to that say learning Scala or even Kotlin can be a great way to understand the new features that are being incorporated in the latest Java versions. Myself, I didn't understand functional interfaces (Function, BiFunction, Predicate and the others) completely until I learned Scala, even though I don't use Scala at work. Other examples: pattern matching or sealed classes have been in Scala since the very beginning.
Avoid mutability as much as possible leads to much more maintainable programs.
The vavr library allows ro write Java as if it was Scala.

Collapse
 
antofik profile image
antofik

Yes, knowing functional languages is definetely a huge step forward for any programmer. But when we are talking about widely spread enterprise Java developers, their code based is often written on java (sometimes even older than 1.8). Large companies (especially those whose main business not IT) are histent to add Kotlin to their stack, since starting from that point they would need to hire more expensive programmers, knowing both Kotlin and Java

Collapse
 
josealonso profile image
José Ramón (JR) • Edited

If you need to stay in Java, you can use libraries like Lombok, Immutable, vavr or Guava. Guava should be a must, in my opinion. Specially if you still have to use Java 8.

Collapse
 
ionutab profile image
Alexandru I. Bujdei

I like the tree of topics, however, I find the word "Senior" as very subjective in the industry nowadays.
Nevertheless, I have been looking for something like this tree of concepts for a long time.
Thank you

Collapse
 
antofik profile image
antofik

Well, yes, seniority highly depends on the particular work place. But in general, I'd like to believe that Senior is someone who could not only execute tasks and set goals on development of hte current project in technical direction. Decide which technologies should be used, how to do features and so on. One cannot make such decisions without having enough outlook

Collapse
 
kingaziz profile image
Musa Abdulaziz

Thanks for the enlightening the key features.

Collapse
 
antofik profile image
antofik

Thank you!

Collapse
 
naumenko profile image
Svetlana

I like it. Cool

Collapse
 
antofik profile image
antofik

Thank you!

Collapse
 
serhiiilin profile image
Serhii Ilin

Модель was in Russian on the list

Collapse
 
serhiiilin profile image
Serhii Ilin

The same as геометрия

Collapse
 
antofik profile image
antofik

Ops, exported from platform, which has translations for some skills. My bad, fixed.

Collapse
 
pukup profile image
Devto

Cool, now make it into a book or a course

Collapse
 
doitman profile image
DoItMan

where is message broker and cache?(kafka, redis)