10

After coming across this question, I started questioning my knowledge of the software development industry. The top voted answer explains how it is completely unreasonable for the company to ask a recent graduate to study the stack they are working with on their own time.

Disclaimer: Please keep in mind that the original question was just the inspiration, and no details of the OP's specific situation should carry on to this one and factor into your answer.

When I was starting off as a junior, it was made clear to me in the interview that I was expected to study our stack both during business hours and on my own, so I can get up to speed quickly. Of course, any personal time spent would not be reimbursed. As far as I know from peers, or at least as I thought I knew, this is pretty standard for the software development industry.

Some things to note:

  1. This is not about a "bait and switch". Getting hired because you have a specific skillset and being assigned to work on something completely different without prior notice and with the expectation of spending your own time to retrain is obviously a red flag.
  2. Assume a non-toxic environment. A manager saying "You better study over the weekend or you're fired first thing on Monday" is, unquestionably, a reason to pack your things and go.
  3. This only considers recent graduates or people just starting out. At the beginning of your career in any field, you undoubtedly have a lot of learning to do. The company assigning time for you to study is well and all, but each person learns at a different rate and there are business goals and deadlines in place.

So, to summarize and properly ask: As a junior developer, is it inappropriate for my manager (or whatever supervisor) to suggest that I spend some of my own UNPAID time studying our company's stack? Should I immediately start looking for another job or should I be understanding, as long as they are reasonable? (As in, work your Mon-Fri 9-5 and maybe an hour or two over the weekend, just to catch up faster, as opposed to you have to work 9-5, and study an extra 3-4 hours per day or you're fired).

P.S. - Obviously, we are not talking about completely skipping office-hours training and expecting the junior to reach mastery on their own time.

EDIT - Regarding the close votes for the question being too broad, I wholeheartedly disagree. This is about reaching a very specific conclusion (by popular vote) on whether this should or should not be happening, as a guide for juniors who find themselves in the same place. If you think it needs some rewording to reflect that, feel free to edit.

  • It was made clear in what way? I've been on the other side of the table on an interview where one of my coworkers - our current FNG at the time - admitted to choosing to working overtime to come up to speed with our code. The candidate asked me about this later, as I happened to encounter him at lunch. He assumed that meant that our FNG had been expected to, and that we would expect him to. As it happened, our FNG had been hired despite a weak background, and he was choosing to do that to compensate. Nobody asked him to, nobody expected him to. – Ed Grimm Feb 25 at 0:51
  • There's a lot of subtlety in the real world that gets totally lost in speculative questions like this. Personalities of the manager and employer, expectations, exemption status, etc. Unfortunately, that makes it hard to give anything resembling a very concrete answer. – dwizum Feb 25 at 14:54
  • 2
    But in what else would you invest your free time than knowledge for your professional career? you know there's like a 60k difference between a jr position and a mid :) try to see it as what you can gain rather than what the company is gaining – Roberto Torres Feb 25 at 17:22
  • 1
    A professional career is not all in life. Some of us value our life/work balance and some need their own time to take rest, look after the family, spend time in a hobby, even getting new skills in a different non-related area. It all depends on the priorities and goals of every individual. – gustavovelascoh Feb 26 at 10:18
  • 1
    I would like to add that as a developer myself, learning a stack is not limited to investment in the company. If you go to another company some time later, then you can use that knowledge in that company as well, so it's a self-investment - and if an employer is giving someone time from office (not in your case) to learn a new stack, then it's the employer's favor on that employee because the employer is actually risking that his/her employee is now marketable to another company but he/she gives the employee time anyway. – Anonymous Mar 29 at 13:29
18

No, it is not okay to expect that of your employees.

You say:

Assume a non-toxic environment. A manager saying "You better study over the weekend or you're fired first thing on Monday" is, unquestionably, a reason to pack your things and go.

But how is that not exactly what is implied when you tell a junior walking in the door that you expect them to spend their own personal time learning the stack. If I explicitly tell one of my employees what I expect of them I am prepared to have repercussions if they don't meet those expectations.

What you can do instead is reward people who go above and beyond. But I would caution that you watch the culture you are establishing and be careful that you don't implicitly make it an expectation.

  • Hmm, I gave it some thought and this is actually a bit more complicated, because there are just so many stacks nowadays. Even JS flavors alone its all over the place. But you are right that people should not be spending their own time/money to do their job. If the company hired them, they need to pay for needed training. – Nelson Feb 25 at 5:16
  • 1
    I like the first part of this answer, but isn't the second part a bit trickier? To me, this kind of things could make it so that some employees start putting more hours than expected, and it could set the norm to doing a 7am-8pm. I think I like the reward system but for some reason I can't help but not understand how good it is compared to, let's say, allowing extra hours to be paid. – Ara Feb 25 at 16:17
  • 1
    Your example is totally different situation. Merely suggesting/ recomending someone spends a little free time to learn some technology isnt forcing them to do it and there are no implied repercussions if you do not. Unless you are being forced then the only downside is you fall behind a little or have to work harder to find time to learn during work. – ayrton clark Feb 25 at 16:19
  • 1
    @Ara I believe you are correct and I reworded to take your point into consideration. – bruglesco Feb 25 at 18:29
  • 2
    @GregKos initiative is done without prompting. If your prompted as a junior, there's a good chance you will feel it is required. – bruglesco Feb 25 at 19:50
11

TLDR: It may be appropriate to expect an employee to study a new technology outside of their 40 hour work week, but such expectations should be reflected in their compensation.

I think the issue is more nuanced than the question you refer to might indicate, and the question contains confounding factors. It may also depend on local custom and labor law.

In the US jobs are divided into exempt and non-exempt. Roughly, exempt employees are paid an annual salary, and routinely exercise their professional judgement in their work duties. This may include making their own judgment about how many hours they will work in a given week. Non-exempt employees are generally more closely supervised, and work for an hourly wage. The exempt worker is expected to work enough hours to accomplish their duties. If that means putting in 80 hours in a week, so be it. A non-exempt worker may be required to work overtime, but they absolutely must be paid for it.

So the question arises: why would anyone take an exempt job over a non-exempt job? Well, the primary attraction is the greater scope for exercising professional judgment. It also usually includes a salary that is higher than the expected annual earnings for the hourly worker. However, the unpaid overtime for the exempt worker may result in a lower "effective" hourly wage than the non-exempt worker. To sweeten the pot, employers may throw in 'upside' for the exempt worker: bonuses and stock options. They may also get more flexibility in their working hours. For example, I don't have to go off the clock if I have a dentist appointment in the middle of the day. If all my tasks are in order and I feel like leaving early on a Friday I can do so.

The problem comes because some employers view exempt employees simply as a way to get free overtime. Bad employers may require the long work weeks, but not really come through with the financial upside, flexibility, or professional autonomy. The worst employers will try to bully their exempt employees into making a silk purse out of a sow's ear. Demanding that a very junior software developer convert an even more junior Java developer into a full-stack web developer on their own time without some sort of generous compensation is an example of the later approach.

I would expect a computer science graduate in a salaried position to be willing to put in some study time at home to pick up a new technology for their job. I'd even expect them to put in very long hours (say 60-80 hours in a week) for short periods to accomplish some business critical task, but I'd also expect the employer to make it worth their while with salary, bonuses, or stock options.

  • 1
    Excellent answer, but a fair bit of superfluous info that I think warrants a TLDR! – Mars Feb 25 at 7:19
  • I completely agree with your last paragraph, but I also agree with @Mars that it needs a TL;DR. Also, about the first half gives a negative answer, but then you suggest that it would be okay under conditions. – GregKos Feb 25 at 19:39
10

TLDR: Expecting employees to do regular work (incl. self-training) in their spare-time is not okay. Expecting employees to do emergency tasks outside of work hours in a reasonable amount, taking the wishes of the employee into account, and compensating that with money/time off is okay as long as it's officially communicated early or not enforced (clearly voluntary).

There are some different aspects that might be mixed up in what you are asking and that might be conflated in what you perceive as the norm:

  1. A general view by developers that part of their profession is keeping up with new technology.
  2. A general expectation from an employer that developers study the stack used at work in their spare time without payment.
  3. A general expectation from an employer that developers do extra time when there is a deadline or otherwise critical issue with a time constraint (e.g. emergency on a live system).
  4. Developers putting in more work than required.

As for 1), yes if you want to retain or improve your market value you better keep up with technological developments. How you do that, i.e. during work time or in your spare time does not matter. This is nothing you absolutely have to do to stay employed, but it's a good helpful attitude to help shape a successful career. If you value your free time and prefer to spend it with non-coding things, you make sure you can do the bulk of this keeping up with technology on the clock. Otherwise you might do part of it for fun in your spare time. And if you don't care, you just don't do it, but it will likely limit your options regarding jobs and projects.

As for 2), this is absolutely not the norm in any decent company! However, especially in startup culture and companies that manage to attract many people who want to prove themselves and/or are unexperienced enough it may be widespread enough to appear like the norm. But a one-sided expectation to work unpaid is not a healthy work relationship and I would quit any such job in the long run. Suggestions from superiors to learn something or do some other low relevance work related task over the weekend would irk me, likely be countered with a sarcastic remark and I would very likely simply not do it (unless I really need the job for now, but that would trigger the job hunting really fast). Again, if a developer feels he wants to spend time learning something by himself on the weekend, that's totally fine, any pressure from the employer is not.

As for 3) as long as any emergency extra time is compensated with extra time off at another time, i.e. as long as there is a give and take relationship, that is totally fine. In particular, the employer needs to do proper planning, and respect time commitments of the employees outside of work, i.e. approved vacancy should stay approved unless absolutely necessary to cancel it. If an employee needs to leave early sometimes, that should be part of the give and take and not require much hoops. In such a relationship, there's typically "official" over-time, that is lawfully requested (in European countries this might require a certain notification time in advance) and can be enforced and unofficial over-time that is done by the team knowing the deadline/problem without any pressure by the employer. I.e. the relationship needs to be so healthy that the team does this out of their professional ambition.

2) is different from 3) as there is a mutual benefit and a mutual understanding that both give and take and that each partner only takes when it's necessary. Learning a new framework is part of the daily business and thus is something that the employer needs to factor in when doing the planning for a project. If all hell breaks loose and learning a new stack is part of trouble shooting or emergency deadline run-up (perhaps because the relevant developer with that skill got hit by a bus), that's okay (again, if properly compensated), but it cannot be a standard expectation.

4) is also okay, if this isn't based on any fear that people who don't do this get fired. However, it is typically also in the interest of an employer to make sure his employees take time off to relax, as more time spent working does not necessarily mean more work being done and burn outs etc. are also damaging the company as it may loose a valuable worker for quite some time. So such voluntary work should be limited in general.

From a legal point, at least in Europe working times are often strictly regulated officially. E.g. in many country working on the weekend or beyond a certain daily hourly rate can get employer or employee in legal trouble. Same goes when there is an expectation from the employer for employees to do over-time, often that needs a special contractual basis and/or needs to be decided in agreement with employee representatives and announced well in advanced by law.

  • I'd like to add to 2) that in some countries it's even illegal to ask employees to work on weekends, even if the employee is paid for this job (and especially if they are not). E.g. in my company one needs to have a very good explanation if they decide to work after 10pm or on Sunday. Of course, unless this employee is supposed to work on weekends/outside normal work hours. – lawful_neutral Feb 25 at 19:49
  • @lawful_neutral Incorporated a small legal hint at the end. – Frank Hopkins Feb 25 at 20:29
5

Free time is your time. Unless agreed otherwise, you're free to do whatever you want.

Those are your legal rights, and your manager should respect them.

That is, a manager that ...

  • directs you to learn in your free time violates the law
  • honestly advises that learning in your free time would advance your career is ok
  • asks you to agree to learning on your free time when negotiating your contract of employment is ok.

In the linked question, the team lead "told him he needs to". That is, the team lead directed, which is not ok.

In your case, you came to an agreement with your future manager that you would learn in your free time in exchange for getting the job. You knew your manager's expectations up front and could freely decide whether you want to do it.

The employee in the other question was denied that opportunity.

4

As long as it's reasonable, and you're not being forced, it's okay.

Admittedly, the line is blurry. You must set a good work-life balance early on and keep it throughout your career.

For some people, "going the extra mile" (assuming said work-life balance) for a role is a must, and they well spend numerous hours of unpaid overtime to better themselves and appear more passionate and commited to their employers. Maintaining the balance is tricky, however, and the situation could get complicated if your employer "learns" to expect you to work overtime for free. I personally feel that this is okay when you are starting out and have a lot of stuff to learn, but the limits must always be clear to everyone involved.

On the other hand, when the employer (or the supervisor) asks for such unpaid overtime, you might feel pressured to spend hours studying and show results of such studying in the workplace. If at any point you feel forced to do something you normally wouldn't do without the fear of getting scolded or fired, you might be a victim of toxic management and should probably seek employment elsewhere.

BUT a lighthearted suggestion from a "mentor" that you could read up on this article or watch this tutorial over the weekend as you might find it helpful, is entirely appropriate, and if you are a junior eager to learn the ins and outs of software development you should take advantage of any chance to improve your knowledge! Again, without compromising your work-life balance. Only commit time you're willing to invest.

2

Other, well-established SE community members, with high point scores, are very intelligent and competent coders... but I'm afraid that maybe they don't remember what it was like to be junior developers trying to eke out a living in a competitive job market. I think maybe their answers are somewhat misleading, for the OP's situation.

Being a junior developer is tough. You will occasionally (okay, frequently) be asked to invest a higher level of uncompensated time and effort that is not fair, and may possibly be contrary to the letter of the law. But you won't complain. (The company can readily find a more time-efficient replacement; you do yourself no favors by trying to track your time accurately.) You will have to sacrifice evenings and weekends to even begin to be capable of listening and doing as your are told to do on Monday mornings.

The listening will be one-way. Bugs you find in existing code, inadvertently placed there by your bosses and mentors, must be handled with a great deal of finesse; feature requests you make, or UI/design decisions you make, will be placed at the very bottom of the organizational queue and probably ignored. You will have limited access to system passwords and configurations, which gives you fewer options to quickly build something that demonstrates outside-the-box thinking. There are other anti-perks to being a junior developer, depending on the company culture.

That doesn't mean that your supervisors and mentors are bad people! They are probably very optimistic, and over-confident that you can quickly pick up the relevant skills from a couple hours of off-the-shelf tutorials. (They can!) And, if they are willing to review your code on "Hello World" demonstrations, open source contributions and hobby apps--things that add nothing to the company bottom line, and give you transferable skills--they are willing to make that small sacrifice for your success.

The alternative is to not be employed at all in the industry with your current skill level. The only way to acquire skills would be to (slowly) learn 100% on your own, unstructured free time, for no pay; or learn in college, university or trade school, which costs money and leads to student loan debt.

When you get past that level, you will look back on it and you will believe it was worth it, absolutely.

  • Is there something that make It so special? We don't expect worker to learn who to use machinery in their free time. We don't expect millitary to buy RPG and try it at home. We don't expect pilote to have the new jet home. But somehow It guyz has to have a server rebuild the whole stack and practice. And only in IT, we will be expected to crunch 80H training in a week on our freetime. – user95634 Mar 29 at 13:34
2

As already pointed out by others, it is quite normal to "expect" an employee to be studying in their personal time but they shouldn't be firing someone on that point. And that line is blurry as pointed out by one of the above answers.

I would like to add that what you do in your personal time is none of your employer's business, well, at least that is the general case. However, studying a stack is a self-investment given that, an employer is never responsible for your learning. Your job is to bring him/her value and if someone is giving you extra time for learning, that is more of an exception rather than a rule. With all due respect and without any offense, your expectation of him giving you extra learning time from office is as unjustified as his expectation of you investing your personal time on studying a stack. In this case, it's good if he's expecting you to study in your personal time - if he gives you time from the office hours, that's even better. But like you mentioned, if he's ready to fire you for doing something that is not exactly a part of your job, then that is bad. It is better to study in your personal time, but not everybody gets time to do that and employers should respect that. So it shouldn't be such a strict requirement.

  • In light of the above, spending personal time on studying is almost always a good investment. Quoting uncle Bob, you would expect your doctor to go home and learn about the latest medicines. Or you would expect your professional lawyer to go home and read published journals. It would bother you if you get to know that your l lawyer goes home and when asked to read a journal, he says "no it's time for me to watch television so don't bother me". That said, if someone spends his time for other household chores or any other thing for that matter, then that should be respected by the employer. – Anonymous Mar 29 at 12:02
  • it's a two-way street :) – Anonymous Mar 29 at 13:24
  • On liberal profession, yes. Because this study time even at home is not free time. It's not an hobby it's their work. – user95634 Mar 29 at 13:41
  • @xdtTransform As a software developer myself, we have adapted a lot from liberal professions, especially from doctors and engineers, even accountants. You will see a lot of practices adapted from doctors if you search about professional issues and best practices of software engineering. – Anonymous Mar 29 at 15:52
0

Note: I am the person who wrote the top-voted answer you referred to. This is my opinion.

The situation you describe I would consider to be acceptable, while (as you noted) the situation in the other thread was not. The difference is that, in your case, the situation was presented upfront. If you walk into the interview and the interviewer says to you "We're willing to interview you and consider you seriously for this position, but your tech stack doesn't match ours and you're going to need to do outside work to catch up", at that point you are free to say "Thanks, but I don't want to do that, see you later" and go on your way.

In the referred answer, the person in question was hired based on a skill set they had, with no indication they'd need to retrain. They accepted an offer and got blindsided by this situation. The important part is that, while you can interview simultaneously with many different places, you can only accept one offer, and that means you have to decline all other offers. It's possible in this situation (from the linked question) that the person in question declined offers that he would be better suited to in order to take the offer at this company that blindsided him, and that's not acceptable. That's not even to mention that if the situation is presented in a first interview (or even a phone screen, which is more common), you can save a whole bunch of time; it takes 30 seconds to make such a decision, and save hours of interview time which would be otherwise wasted (by both parties!) in going through an interview for a job which doesn't fit.

  • 2
    I disagree with this answer (not your opinion), because it focuses on the other question almost completely. I respect your opinion and I want it to be heard, but please rephrase it in a more general way. – GregKos Feb 25 at 19:43
  • Edited to make it a bit more clear what I was getting at. – Ertai87 Feb 25 at 20:20
0

No it isn't.

I'll link this question because it's relevant to the situation. In short, it's your responsibility to develop your career and it's also your responsibility to be a better coder. The nature of our industry demands continuing education. It's not a new idea. Robert C. Martin suggests it, about 20 hours of it actually every week. Outside work. It's not unreasonable for an employer to expect career professionals to be developing their careers. We aren't making burgers, we're building complex systems that require a lot of work and a lot of developed skillsets

Part of your job as a developer is to understand the stack. No always muddle through similar problems over and over because you haven't taken the time to internalize any knowledge. It isn't an unreasonable request and more importantly, it's your job.

Finally, to not expand your knowledge in a knowledge economy seems, absurd. Forbes suggests exactly this to new grads.

“As we move to a knowledge economy, the number of jobs where people can simply turn up and be told how to do the job and be well paid for it is diminishing rapidly,”

From the Wallstreet Journal

You have to. Because if you don't, the person who replaces you likely will be doing it.

  • I am slightly confused. You answer "Yes it is" to the question "Is it inappropriate..." but the rest of your answer seems to support the fact that it actually IS appropriate. – GregKos Feb 25 at 19:48
  • Sorry about that, I changed it. @GregKos – ShinEmperor Feb 25 at 21:45
  • 2
    I was also thinking of Uncle Bob, when reading the question but Bob suggests to spend 20 hours on learning new skills and language that are useful for yourself, not studying the companie's stack. – Helena Feb 26 at 23:50
  • 2
    Your line of argument is incomplete, and your conclusion does not match my experience at all. Yes, developers must learn or become obsolete, but this does not imply that they need to learn in their free time. And if my employer fired all coders who spend less than 20 hours of their own time learning, they'd have to replace over 90% of the workforce. Considering they are unable to find acceptable replacements for 10% annual turnover, I don't fear for my job :-) – meriton Feb 27 at 21:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.