I have a little problem, I'm still a student as I sad and I don't know if it's worth for me to try to attend a PLC course (at my university as part of career).
Being specialized in analog/power electronics (with little FPGA) and having done something about motor control, electric drives and system/control theory will it enable me to anyway compete with programmers from computer science or automation engineers in programming PLC? Is it worth?
I mean could I find after that anyway a PLC job or it's more likely that they will employ a programmer or automation engineer?
From my perspective, it's a mixed bag. I as an IT guy personally tend to dread the works of an electric engineer that obviously just dabbled in programming, especially when it comes to higher level language stuff. A lot of the things I see around just reeks of early 90s basement dwellers' C64 BASIC experience carried over to the, erm,
somewhat modern world, and is a nightmare to read, reverse-engineer, understand and/or expand. There is just sooo much legacy code going around made by people that most probably only worked to make themselves indispensable, it hurts. (Which is understandable to a degree, because many of the techniques (or lack thereof) were state of the art back in their prime.)
Another issue I have with EEs having a go at modern PLCs is that many resort to using the hardware imitating "languages", which at basic IO-level is pretty much mandatory, but at functional stages the higher level languages provide much much better workflow, modularity and ressource usage. Not to mention maintainability. This is further facillitated by the creators of the respective toolchains often beeing rooted in EE fields, that try to force such a kind of programming. (I.e. there are no gates or latches in programming. These are artificial constructs from a programmer's point of view.)
A lot of this can be attributed to the fact that the entire field of automation is and so far always has been ~5-10 years behind the end-user application developer world, even in terms of hardware. Which is also explained well enough by the need to have very well evaluated stable and thoroughly tested platforms. But especially in terms of programming paradigms, automation is behind by at least two generations so far.
I also don't want to poop on the now about 50-70 years old people that mostly make up the demographic I just talked about. These were absolute pioneers in the field, and deserve all the praise they got and get! Even more today, since a lot of the knowledge and mindsets they have is sorely missed among many of my generation (and then some), don't get me wrong. But these skills nowadays are best used in R&D, less so in actual production and field deployment.
So what would be my recommendation for someone going into automation today?
(1) If your goal is developing automation devices, get an EE degree and expand on its portion of software development in your spare time, and dare to look at current private end-user developments on the PC and phone side to gauge what you may have to deal with 10+ years down the line. This is also where intricate µC knowledge comes in very handy.
(2) If your goal is development and deployment of industrial end-user automation systems, there are now two paths to take: (2.1) Electrical engineering, and (2.2) "logic engineering". The EE will mostly be concerned with the "power and signal" side of things, feeding the machines and PLCs. The "logic engineer" is tasked with making a PLC program to implement a machine's (or plant's) higher level functions, and often also the user interface, now usually done with some kind of touch display instead of buttons, lamps and gauges.
Path 1 is best served by experience in the EE field and being able to calculate electric networks and complicated circuitry coupled with low level programming skills going as deep as FPGA development.
Path 2.1 is the fairly traditional path of the industrial electrical engineer that knows how to wire up field sensors and actors and how to dimension parts to be able to deal with the electrical demands of a machine/plant.
Path 2.2 is relatively abstract and mostly deals with the high level functions of a machine or plant. It is much more akin to a software developer than an electrical engineer. The latter they usually "feed on" for their "basic" IO.
Being able to configure isolated machines like individual motor controls is shared between 2.1 and 2.2. Both should be able to keep up with stuff like that. Ideally. Path 1 only needs to know how to not make this a total pain for members of the path 2 groups =)
TL;DR: If you are on the path of an EE, any opportunity to look at any kind of programming experience for little or free will
definitly be worth your time.