Hello,
It depends on which application you want to work with.
Mostly, for the backend side, Java is indeed the main language used (often java 11 for now).
On the frontend part, it changes with each modules/apps. Recents apps use Angular like Datahub and datafeeder, Console is a mix of JSP and AngularJS, Geoserver uses Apache wickets.
Maybe you won't need to use it all, it depends of what you want to achieve.
Don't hesitate if you want to discuss about it !