To give light to the situation: I am currently one of two programmers working in a small startup software company. Part of my job requires me to learn a Web development framework that I am not currently familiar with. I get paid by the hour.

So the question is: Is it wholly ethical to spend multiple hours of the day reading through documentation and tutorials and be paid for this time where I am not actively developing for our product? Or should the bulk of this learning be done at home, or otherwise off hours, to allow for more full-on development of our application during the work day?


10 Answers 10


If your employer wants you to spend your days learning the framework then great, it's both ethical and legal. I've done this in the past, both as a consultant (my consulting company paid) and as an employee. They do it because it makes you more useful. Win-win, assuming what you're learning is useful.

If you were hired on the basis that you know it or will pick it up really quickly (it's a dialect of something you already know, for example), then it's tricky. I'd be inclined to ask the employer.

If your employer is asking you to spend a lot of your own time learning something you were told they'd pay you to learn, then it's a question of how much you need the job and how useful the framework knowlege is. I don't think it's ethical for the employer to demand this of you, but you might have to do it if this is your only available work.

  • My personal situation is that I was not expected to know this framework already, but that I would pick up new technologies. The conflict this creates though, is that our deadlines are very, very tight. We push new features almost every week.
    – nate-bit
    Commented Jun 29, 2011 at 14:35
  • 4
    Sounds like you should be talking about this with your manager or work director not SE. Commented Jun 29, 2011 at 15:01

If it's directly for work, unless there's an understanding otherwise, the company should absolutely pay for it. It doesn't matter if it's all day for two weeks, if that's a reasonable amount of time to learn the framework. If the company hires a programmer with the understanding that they don't already have that skill, the company, generally, should pay for the time for them to learn it. The only exceptions I can think of to this are:

  1. If it's not something that's been asked for by the company (even if you think it's valuable for your work)
  2. If there was an understanding that you would already know it or that you would learn it on your own time or
  3. If it's taking you an unusually long amount of time to learn it, and you need to put in extra time to meet a reasonable time requirement from the company.

If the company requested/asked you to learn the Framework, then there is no question of being unethical to spend entire working day learning it. However, you should be aggressive to get a grasp of it fast so you can start to develop production code as early as possible.

Since you are involved in a Startup with only two of you as programmer, for the benefit of both you and the employer, you may want to wrap up the learning phase fast, hence I would also recommend a bit of study at home.


It's totally legit though you should also be making some progress.

In my opinion you should also be spending some home time furthering your skills. You can't expect your employer to pick up the entire bill for your self-education.


Would you be paid the higher hourly rates of freelance contract work or just 'normal' hourly rates?

I have agreed in one company to a lower starting salary for the first three months once, since I wanted the job and had a personal interest in acquiring the necessary skills.

But if you have just a normal job, it is quite common to spend some time learning or even search the web for new tools and technologies. Some companies even encourage answering questions on SE or similar sites related to the products they use, since this enhances their programmers skills. Learning and researching is just part of the job. Though you can of course always show some enthusiasm and dedication by learning at home too.


Yes, you should. If you didn't lie and claimed to know the framework already, then there's nothing wrong with "on the job training". You should supplement it if you can, but there's nothing wrong here. This used to be the normal way of doing things in software development - you would be paid to constantly learn new things, not expected to know everything immediately.


Of course it's ethical to study and learn a new framework when you're on the clock. You might spend some of your own time on it, but your employer must expect that you need some time to research things at work. I run a web development team and I give all members 5 hours a week - an hour a day - for independent research and self learning. I know what they gain in that time will help them grow as programmers, and I know it's not fair to ask people to use any new technology we don't provide training for.

Any solid employer should want their people doing some learning and research on the clock.

As an example, I bring in new hires who are smart and can code OOP PHP5 but maybe don't know MVC well enough or don't have experience with Zend or CodeIgniter. But I know they can pick it up, so giving them research time with a mentor helps the company keep a good base of programmers.


Bit of an iffy question.

Perhaps spent an hour at the start of each day practicing and learning this framework.

Any extra work on it probably should be done outside of company time...

Unless, there is a large portion of downtime during your day when you aren't actively working or engaged in a company project.


Assuming you didn't overtly lie and say you knew it when you were hired, then it is perfectly ethical to spend time learning at work. Learning for work benefits them by giving you knowledge they can use. Now whether or not it's ethical is a separate issue from whether or not they'll mind, so I would ask your boss and then the answer will tell you a lot about the company you're working for (specifically, whether they care about employees or view you solely as a labor cost).

Incidentally, I was once overtly lied to in the other direction; I told them upfront that I didn't know the specific technology but was interested in learning, they assured me that I would be trained, and then when I got there and needed to spend time learning before I could be productive they fired me. bastards


Should I be paid for time spent learning a framework?

Should a lawyer working on retainer be paid for time spent reading legal volumes?

The answer to both questions is 'YES'.

We have seen the computing world undergo enormous change in the past two decades, and you should expect more of the same for the foreseeable future. An employer should expect and want its employees to keep abreast of these changes so that they retain their value to the company.

This is much like the relationship between a client and his/her lawyer that works on retainer. The client would undoubtedly want that lawyer to stay abreast of all changes occurring in the legal world, so that he/she can best represent the client in mediation and court room interactions.

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