My company (Automation & controls) is partnered with electricians for all the jobs we bid on. Having electricians that know wiring for specialized bus networks, how to do basic troubleshooting on control circuits and all that is amazing to have.
Alternatively, for those reading this in the tech side, the job is super engaging. I get to work on programming machines the size of my bedroom. I get to travel and see equally interesting locations (Dam spillways, Agricultural facilities inland and at port, underground mines, etc.). The fact that I get to get out of my office a few days a month is a big reason I've stuck with my job for as long as I have (7+ years now)
EDIT TO INCLUDE SOME PICTURES (Both the Cool and the Ugly):
https://imgur.com/5uOWDGB https://imgur.com/oJozMBr https://imgur.com/95HSxlx https://imgur.com/yhrPUC3
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.
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.
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'll just say that my business was started by the owner in his farm's shop rebuilding/selling motors. When he expanded to doing controls they were like 3 employees and his friend was the electrician who they hired on. Since then the Electrician partnered with his Son-in-law and they train the majority of their guys right from their apprenticeship.
As much as I keep using "My company" throughout these posts I'm still just a guy in a programming/integrator role.
Especially
> Find your way into Industrial Electrical work if you can. You get a strong mix of tech and electrical, moreso than Residential, can't really say the comparison to Commercial work though...
Avoid residential electrical work if you are technology oriented! Yes, yes, home automation and all that, but that pales in comparison with industrial work. Commercial in theory has the same potential, but (at least here in Italy) the jobs are ..hm.. dodgy (very poor project management, tasks scattered across sub-sub-sub-contractors so nobody has really a clue of the global picture ..stuff like that)
The guy who got me my job was a MS CS, my employer sought him out because they needed a guy for internal software projects. I did a hackathon with him and he hired me as his replacement when he moved to the gaming industry.
My degree is Software Systems Engineering, most of my coworkers are Electrical Engineers or some form of Electrical Diploma.
As long as you have a decent foundation in Networking and Digital Logic you'll be perfectly suited to program PLC/SCADA...
So, "systems integration" job involves making systems interoperate as seamlessly as possible, by doing so adding new features, or reducing weaknesses, like for example vendor lock-in (sadly this is not always possible in industrial automation, see below). So the concept applies also to other sectors - and there are indeed non-industrial automation SIs - you might want to add terms like "PLC", "SCADA", "ICS" (industrial control systems), "industrial automation", "controls" to your search.
As for my own experiences in the (industrial automation) system integration industry, in Italy:
As I said before, and said elsewhere by TheCapn, vendor lock-in (in the form of employing equipment by one company, and their tooling, and their services, etc.) is a thing. But at the same time, your job is to make heterogenous systems interoperate! So most certainly you'll have to work not with your usual tools. Personally I have found that the most successful companies rely on some vendor (and their support, and their expertise), but are very open with working with, and know, the others. Obviously the more you can develop autonomously the better; it is a trade-off between freedom of action and access to more credible (branded, battle-tested, supported by big company etc.) solutions.
Knowing when to add one part to the system, or where you can just expand one of the already existing parts in order to accomplish the task is fundamental. Too often I have seen superflous parts added where it would have been enough to extend one of the existing parts a little (This is often due to vendor lock-in, you cannot work on some equipment, so you put another device by your vendor of choice).
Another thing I love about my job is the "Jack-of-all-trades" mindset required. Also human skills are important, especially here where the industry is mostly composed of little shops: sometimes you just have to understand enough to call the right specialist and contract that part of the job to them. I started as more of a computer person than a engineering one, but I managed to gain some expertise over time thanks to this knowledge transfer.
Edit: System integrators as sibling says, I second that!
This in reverse is part of why I am a programmer; it can take two or three days before I'm really pissed at a software problem, but physical stuff really annoys me in mere minutes.
Why? Don't really know. I know a bit of it is that I know how to get myself into trouble in software and then usually get back out much better than I do in the real world, but even so, I had the patience in software to develop that and I really don't for real things.
On the other hand, a screw-up can have bigger consequences when your buggy code is used by thousands of users a day.
Ps. Love the username/post combo.
I always laugh whenever TechCrunch or someone runs a story about some hot shot university winning a programming competition because they implemented an algorithm the fastest or created yet another new app.
When in the real world, most programming jobs are making changes to a really large code base trying your hardest not to break other things. Not nearly as glamorous.
"That's great, kid. Now figure out why this build works on everyone else's machine but not yours. And then once the build works why the test suite throws a series of errors, one at a time, each new one appearing as you fix the last, when everyone else tells you it's green (though at some point you'll figure out they're all passing flags to disable parts of it, but forgot they're doing that). Oh we have some other things for you to do that are actual programming but you can't do those until you fix that. Oh and when you're halfway done Fred over there's gonna tell you you need to pull master because he just updated all the dependencies. Oh hey what do you know about code signing and app store distribution?"
My BF's dad owns an electrical company, and I know BF will most likely end up working there - I've considered in the past joining him. This post is encouraging because it seems like I could get all the movement and outdoor time that I'm missing with coding, and also be building stuff that's useful to people.
Do you see many female electricians? I suspect there are few - any ideas as to why? Is there a lot of heavy/difficult physical labor that I would be unable to do?
I get to play with lots of tech still, except it's more of the layer 1 stuff. Doing fiberoptical backhaul work, or installing DSL in peoples homes.
I'm still interested in both hardware and software. I run Gentoo Linux on my machines at home, and I have a DO VPS for "cloud things", but I'm glad it's not my job, because software issues can piss me off like no other thing is capable of.