I recently became kinda intrigued by PLCs and even consider buying one just to play with it (idk maybe it's the novelty of it) and the various programming languages for them and how they can be so different. What kind of education do you need to work on this kind of stuff?
I commented to another user, my background is a Software Systems Engineering degree but the majority of my coworkers are Electrical Engineers or some style of Electrical Technician.
As long as you understand digital logic well enough you'll be able to grasp the concepts. Having more formal education helps but is one of those fields that isn't strictly necessary unless you're working in a specialized sector. My personal take is that Software is still playing catch-up in this domain to the rest of the world but its coming. Up until the last 5 or 10 years the software was mostly just running the facilities but now integration to the business environments is becoming a bigger and bigger requirements of my clients.
I've mostly become hands off on the PLC/SCADA systems at my company now because the requirement for software utilities to function within the control system for data collection, trending, reporting, etc. has become so so much bigger. I have clients that want to use OCR to track shipping containers throughout their yard, clients who want me to integrate their invoicing systems to the operations so staff can see the scheduled daily loads coming, designing unmanned kiosks for customers to key through when coming to site and a whole lot more things.
I don't have a ton of PLC experience, but you really don't need much of an education to create basic PLC programs. I wouldn't personally recommend PLCs to anyone who enjoys programming, but I understand the appeal of trying one out.
The programming languages are all defined in IEC 61131-3, and you can more or less use them interchangeably. You can use structured text for (clunky) text-based programming, ladder logic if you want to feel like an electrician in the 70s, or functional block diagrams if you like flowcharts. They each have pros and cons, and being able to use the different languages (with different paradigms) in a single application is one of the more interesting things about PLC programming. There are probably good textbooks for this, but I don't know of any.
PLC programs execute in a constant loop (scan inputs, execute program, set outputs), so basic programming problems (e.g. delaying execution of some function) often require some re-thinking on PLCs. Having a basic understanding of how a PLC actually executes your code is pretty critical. Again, there are probably textbooks for this, but if you buy a physical PLC, its datasheet might also explain this.
You'll need to connect the PLC to some hardware for it to do anything meaningful, so having a basic knowledge of electronics would be useful. If it's just a hobby, you probably wouldn't need to know any more than you would if you were working with an Arduino.
There aren't that many major PLC vendors, so to get started, you could by an entry-level PLC from one of the big players (e.g. Allen-Bradley Micro800 series). Admittedly, I haven't looked at PLC options in 5+ years so there might be better options these days. Unfortunately, PLCs are pretty pricey, and even a small one will probably set you back a few hundred bucks. There are probably simulators available if you're just curious about PLC programming languages, but I don't have any experience there.
Could you get started with Arduino? (Disclaimer: I don't know a lot about what PLCs actually do -- maybe that's too basic for you.)
Right now I'm trying to hack my treadmill with an Arduino unit so I can control it with software, and I'm learning a ton. Plus it's not a huge investment.
I had come across Building Arduino PLCs: The essential techniques you need to develop Arduino-based PLCs when i was looking for something similar a while ago. You might find it a good starting point.