"Do you think it is fair that some employers expect you to learn skills needed for your job at home?"
It may not be fair, but in the specialty I work in, its pretty much a business necessity.
For those who don't know, I'm in what's sometimes called Building Automation Systems (BAS). Also sometimes called Energy Management Systems (EMS).
Essentially, its the use of dedicated computers in a "black box" (or they may be just DIN rail or board mounted) to control all the various kinds of mechanical, electrical, and electronic equipment that might be part of a building and its infrastructure. This might include heating, ventilation, and air conditioning; elevators; automated doors; water treatment and distribution systems; electrical distribution systems; "smart" lighting; fire detection and suppression systems; electronic security systems; etc and so forth.
We install devices, wire, and program the dedicated digital controllers. Which are typically connected together so as to share data and/or to allow for master controls from a central operator station via a data network. The data network is also used to collect data. For instance, to check all the various components for proper operation, do troubleshooting, collect energy usage data, and so forth.
Typically these days command, monitoring, and data collection is also routed via standard LAN/WAN so that someone anywhere within the customer/owner organization can view or make changes using a standard Web Browser. Granting the the individual has access rights and a suitable password(s). Thus we install web servers, database servers, interact with the customer/owner IT folks, create custom web pages, custom databases, and custom apps to collect and present data in various report formats. All this might be for one building, or for multiple buildings scattered over wide geographic areas.
In any event, in our world things change fast and they're changing all the time. The nature of the beast is that we must keep up with the latest in hardware offerings from various manufacturers of these "dedicated" computers, have to keep up with all the various sort of equipment and machinery they might be expected to control, keep up to date in what's happening in the data networking world, keep up to data with the latest OS's, learn proprietary programming languages, learn some general purpose programming languages (C, C++, Java, VB.NET, etc), be more than passing familiar with the various incarnations of MS Office and VB for Office, etc and so forth.
Of course, we do have specialists, a limited number. Who are very good at their specialties. But most of us are generalists. That is, we each have multiple areas in which we have very strong knowledge and experience, plus we have a great many other areas in which we have to have at least some adequate working knowledge. At least enough to know what we're looking at, understand the terminology, handle the normal simple issues, and understand enough to know where and how to look it up or who to call for more info/guidance.
Hard to find an answer if one doesn't even know what questions to ask or what to look up.
In any event, my field of work is highly competitive, and always changing. No company doing what we do (at least doing what the particular department I work within does) can afford the time to give everyone all the initial training or continuing education they need in order to keep up.
So typically a person or two is selected to attend company paid training on something new or significantly changed. And everyone else is tossed the manual (or stack of manuals) and told to "figure it out". And if yah have any questions call "Fred", he went through the course. Or whatever. For instance we all know each other and who is a "heavy" in whatever particular subject.
We also hold a once a month "tech meeting" whose specific purpose is the sharing "lessons learned", new developments and proven techniques/methods, tips and tricks of the trade, those tidbits of info that aren't in the "book" (or which are in the "book" but the book is wrong), etc.
To get into what I do, and to stay in it successfully, one MUST spend at least some time on your own learning things related to and required by the job.
There aren't any comprehensive courses, college degree programs, text books, etc that cover my field of work. Most attempts at such and claims of such which I've seen are a joke.
Typically for a newbie to be hired he's going to have to be able to prove proficiency and competency in two or three areas, and then be willing an able to study on his own to learn at least an adequate level of knowledge in a half dozen more.
For instance, a couple years ago we had a new guy hired. He brought several years of experience, plus formal training, in HVAC (heating, ventilation, and air conditioning) system, electrical power systems, and computer systems with him. Was weak in general programming knowledge, Web page development, electronic sensors and actuators, etc. Was also weak in the knowledge of fire and safety systems code, building code, and electrical code. And a number of other things.
No problem, we don't expect Mr Know-It-All, there are none in our field.
Chuckle, he lasted 3 days with us. Seems he had this mistaken idea that he'd first be sent off to formal schooling. Instead he was handed both paper and digital copies of stacks of manuals and told to start learning. And, handed the names and phone numbers of the rest of us, with the list including a brief description for each name of what that person's strong areas of knowledge were.
As soon as he found out that he was expected to spend significant personal time learning, he quit.
Just as well. Not the type of person we wanted and needed anyway.
For instance, he was first placed with me as a "helper". We were working on one project and I was teaching him as he assisted me. We came upon something about which he knew nothing. I gave him the short course verbally and drawing pictures. Just to introduce the subject. Then told him to read chapter so-and-so of a particular text book he'd been given a copy of. After which, the next day, I expected him to ask me questions so I could clarify or expand upon what the text said.
Now that chapter was simple, being meant only as an "Intro" to the subject. Whole volumes of books are devoted to that particular subject. If one wished to become a subject matter expert in it. But this fellow only needed a basic understanding of the terms and what they meant. Just enough to know that if he manipulated the value of this or that variable, what effect it'd have. The actual code for the routine is complex and involved, and would require an advanced knowledge of calculus to create. He wasn't gonna have to create the code. Just learn how to use the function.
What can I say? He balked and insisted of my boss that if he was expected to learn this stuff, that the company spend what would have been several thousand dollars to send him off to a specialty cram course (1 week) in that particular subject that is offered by an outfit on the East coast.
The boss refused, of course.
The thing is, if he'd stuck around and proved himself, he MIGHT have been sent off to that course at a later date. If it were deemed a good and worthy investment. For instance, he'd made adequate progress overall in various other areas, had tried to comprehend this particular subject but understanding escaped him. In short, he was worth keeping but needed extra instruction in this particular area.
But we can't, no one can, afford to send everyone to formal classes on company time for everything one needs to know for the kind of work we do.
For instance, a couple years back we faced the need to learn about a new system, a special kind of data server that uses a Java framework. Formal factory classes cost $12,000 a head per seated student. It was discussed. And it was finally decided two guys should go. I was asked if I wanted to be one of them. I declined. I was already passing familiar with Java and several other subjects the class would teach. Told the boss to send someone else, just make sure the guys brought back copies of the text books and tech manuals. I'd read them and then ask one of the guys who'd attended the formal classes if there was something I couldn't figure out.
If the company had wanted all of us who would work with that system to attend that school, they'd have had to pay for 12 of us to attend, plus suffer the lost work time of 12 people versus two. As that system is only a small amount of what we do overall, it just wouldn't be economically feasible. Would take forever to get a ROI, and long before then the system would (and did) undergo several major revisions.
Just my take on it.
These days, I don't really know anyone in ANY technical field who doesn't spend at least a few hours a week of his/her own personal time skill building and keeping up in his/her field.