PLC programming itself is not very hard (compared to higher level programming on PCs), but what makes it different than computer programming is that you need to understand what are you controlling. Basically the better you understand the process the better PLC programmer you are.
Surely, having PLC programming experience will help you to do things faster, but until you start understanding the process you won't be making any progress.
I'm not very experienced programmer (graduated in EE and been programming PLCs <2 years) but in this time my knowledge about PLCs didn't grow much (I didn't learn many new functions or algorithms of how to do things), but I learned to navigate through electrical schemes, P&ID, hydraulic diagrams, sensor lists, mechanical layouts, drives' kinematic schemes, component lists and other documentation to make my program work.
What is rewarding about PLC programming is that feeling when you solve some hard problem and still you can earn nice money if you work in right part of industry and often this job includes a lot of traveling to various places and countries.