I've worked at a few different places where they hadn't given me explicit permission to read programming books on the clock, but I've done it anyway.

On one hand, it seems totally appropriate to do my learning on the clock. Even if I were explicitly told that I'm not allowed to read programming books at work, I feel like it would still be irresponsible for me not to in the same way that even if your boss told you not to bother writing tests for your code or use source control, it would be irresponsible for you not to. I see sharpening the saw as part of the job, just as much as writing production code is part of the job.

On the other hand, I just feel a little bit funny about it. According to reason, I'm not doing anything wrong—in fact, I'm going out of my way to do something right. But according to my gut, something's up. I don't get it.

Anyway, my question is: Is it ethical to read programming books on the clock?

This question has been edited for brevity. See the original question here.

Be open about it

Don't hide it from your boss. If you have to hide it, you're getting into insubordination.

The text should relate to your current job, project, or to something reasonable in the future. Otherwise, it's sort of goofing off or using company time to prepare yourself to work somewhere else. Again, you should be sharing this with a boss. You may be encouraged to try different things, but you would know this already.

Make sure you're getting your work done. If I let an employee read on the job and they constantly tell me they didn't get something finished because they didn't have enough time, I would have you cut-back on reading. I'm assuming you are factoring this time into your estimates.

Basically, if you have to hide this from the boss it's a problem. Billing this time to a client would be unethical unless they were aware they had to compensate you for research.

Employers get what they pay for

It's unethical to act against the express request of your employer; so if they told you not to, the answer would be no it's not ethical. Outside of that however, I would absolutely say yes. Like you said, sharpening the saw 'n such is a necessity, and it's unethical for a company to expect you to do that in your off hours; those are hours for you, not your company; if they want those hours they'll have to pay.

So in short, if they told you to stop then stop, but that doesn't mean you should start doing it in your off hours, absolutely not (unless you wanted to).

Necessary research

Is it ethical for lawyers working on retainer to read legal volumes on the clock?

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.