The differences between frontend & backend: frontend code tends to be more loosey-goosey, less robust. Generally the goal of the frontend coder is to write lots of features in a short amount of time. Backend development is more "slow", you still want lots of features, but they need to be robust and work correctly 99.99% of the time.
For that reason, I think the best way to think like a backend developer is pick a language that doesn't have dynamic objects (like Python). I'm not saying that Python can't work, I'm saying that using a static-type language will help you outgrow any sloppy thinking habits that people tend to get when they spend too much time in Javascript.
Hiring wise, Java is still a very in-demand skill. Tech wise, Java is an extremely stable and proven platform that will serve any project well. It's "boring" technology (which is a good thing). If you really want to change your thinking, then try to stop gravitating towards shiny things and instead use a "boring" platform.