That’s a good question, and it’s one I struggled with myself for many years. I’ll try to answer the best I can.
First I’d start by learning HTML:
This is because HTML is the end result of web development. The coolest server-side code can’t do much without HTML! If you haven’t already, put together a basic personal webpage, or export your Processing or P5.js sketches to the web and add stuff like titles, descriptions, and styles.
Parallel to that, I’d recommend learning the fundamentals of programming using Processing:
(I think you’ve already done this step, but I’m including it for completeness.)
I recommend Processing because it uses “real” Java syntax (in fact it’s built on top of Java), so learning Processing is learning Java. Try to get familiar with using objects and creating classes before moving on to “real” Java.
When you’re familiar with those concepts, then I’d say you’re ready for Java. Honestly this is probably the hardest jump, from Processing to Java, because Java has a lot of boilerplate code that you won’t understand right away.
To learn Java, I’d recommend working through these tutorials:
Specifically, I’d try to give yourself a [Swing]https://happycoding.io/tutorials/java/swing) project, or maybe try using Processing as a Java library. Mostly you’re looking for an excuse to learn about inheritance: this is a must-know topic for more advanced programming.
Finally, when you’re comfortable with classes, objects, and inheritance, then I’d say you’re ready for server-side Java, aka Java EE.
I have a few tutorials that walk you through the setup for server-side Java here:
And I’m actually planning on going back and overhauling these over the next few weeks, so your question comes at a good time.
To get started, you only really need one
.jar file that contains the Java servlets library. This
.jar file comes with servlet containers like Jetty or Tomcat. (Jetty tutorial here.)
But you’re correct that more advanced projects are going to involve more libraries and frameworks. For this I’d recommend using something like Maven. I don’t have any tutorials for this yet, but I hope to put something together soon.
Like I mentioned above, I’m planning on going through and updating the server tutorial over the next few weeks. Specifically I think Google Cloud actually has some really cool tools, so you might want to check those out too. This page is a really great place to start.
Let me know if that makes sense. I’m going to be thinking about this in the very near future, so I’m always happy to talk more about it!