158

I have an issue that hasn't ever surfaced as a problem, but it's a question that's been bugging me internally a little bit for the last several years.

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.

And to address the question of why I don't just read these programming books at home: on the off-hours, I read books about other topics, things that probably improve my overall effectiveness as an employee, but usually don't have much to do with programming. I don't feel like I could justify replacing that reading with technical reading.

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

Jason Swett
  • 1,659
  • 2
  • 12
  • 10
  • 3
    If you have a hard time justifying why you do X (study marketing when you are paid for programming) it might indicate that X should be done on your own time. – Thorbjørn Ravn Andersen May 30 '13 at 09:58
  • 3
    Are we talking about "reading a book" -- as in reading a career-related book during interstitial times at work (eg compiles, or when waiting on things). Or are we talking about spending a few hours at a time reading hundreds of pages? – Angelo May 30 '13 at 16:36
  • Reading a directly work-related book for about the last hour of each day. – Jason Swett May 30 '13 at 16:59
  • 34
    inverse question: is it ethical to ask employes to expect employees to further their education outside of working (and paid) hours? – haylem Nov 02 '13 at 12:22
  • 7
    If you need the knowledge in the book to do your job, and your employer knows that you do not already possess the requisite knowledge, then you are basically required to learn the material, either through a book or via the internet. Most of my employees read Stack Overflow as part of their job to solve issues they see. This is no different. If you were not forthcoming about your existing knowledge then that's the ethics issue, more so than reading information relevant to completing your work. – David S. Jan 21 '14 at 22:12
  • 4
    I think what "feels funny" is that your company didn't pay for getting you raised and educated. But still they profit from it. It's impossible to attribute who exactly will profit how much from your learning. Whether you're on the clock or not, it's still your own life time ticking. It doesn't seem right to make such a sharp separation. – maxy Jan 22 '14 at 18:48
  • 1
    I guess it depends how relevant the book in question is to the task(s) at hand. Surely, your employer should not expect you to read some big fat boring documentation in your own time at home... – jub0bs Jan 23 '14 at 11:48
  • 1
    It's definitely not unethical. If you work at a company that doesn't like it, find a new company - this will be the least of the problems you'll run into with them. – Chris B. Behrens Aug 15 '14 at 18:35
  • For me it depends on the subject. If I'm reading about language X that my employer doesn't use, that's definitely on my own time. If I'm reading about technology Y that we need for the project I'm actively working on, that's on the clock. Learning something specific I need to know to do my job (as opposed to just background knowledge) is something I have no problem putting on the clock, and if my employer objects it's time to find a new employer. – Kathy Apr 27 '16 at 14:33
  • How much "free time" do you have at work? Are you neglecting tasks specifically given to you to read? If we had a particularly tight schedule and I saw a programmer reading a book only loosely related to their tasks, I wouldn't be too happy. On the contrary, if things were slow I'd be glad they weren't goofing off online or something. – Andrew Whatever Apr 27 '16 at 16:52
  • Don't forget to accept an answer. – Stevoisiak Jun 22 '17 at 18:22
  • @JasonSwett You may want to combine your reading of the "programming" book with writing some application that benefits the company utilizing what was learned from the book. Also, when you say "programming book" do you mean language books, design patterns, other, etc. ? – NDEthos Aug 11 '21 at 20:49

9 Answers9

157

I think it is ethical, but there are a few areas of consideration:

  1. Don't hide it from your boss. If you have to hide it, you're getting into insubordination.
  2. 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.
  3. 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. 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.

JeffO
  • 1,691
  • 1
  • 4
  • 3
  • 3
    Good points. I am following all three. That last point is also a good one to bring up: I've never considered it ethical to charge consulting clients for my education. A client is paying for results, not the education of the vendor. – Jason Swett May 28 '13 at 15:43
  • 55
    @JasonSwett, if the education is NECESSARY for you to deliver the results to the client, and the client knew going in that you were not already up to speed on whatever it was, then the time you spend studying for it IS legitimately billable. Example: If they're paying to deliver a USB thingie, and you told them BEFORE you accepted the job that you'd have to do considerable study on USB to do it, and they said "That's OK", you're in like Flynn. – John R. Strohm May 28 '13 at 15:55
  • 5
    +1 for "Make sure you're getting your work done". Ultimately, it comes down to providing a good value to your employer. If your reading pays off more than some other work that you could do, then you are justified. Otherwise, if your self-improvement is really more beneficial to you than to your employer, then it is similar to doing other side-work. –  May 28 '13 at 16:10
  • @JohnR.Strohm I forgot that case. That's totally right. – Jason Swett May 28 '13 at 16:23
  • If, as a programmer, I read a C++ book when I'm working on a C++ project, that's obviously project related. But what if I read, for example, Code Complete or The Pragmatic Programmer, is that related? – GreenMatt May 29 '13 at 17:44
  • 5
    @GreenMatt - I'd be concerned if you started reading one of those books at work and didn't feel compelled to take them home and finish them. –  Jun 05 '13 at 19:46
  • I have seen companies where developers can request books and have them covered by the company as an expense - even if it's something unrelated to the current project/needs, they simply want their staff to have skills in a wide variety of technologies, so that when it comes time to choose the next one, they can make an informed choice. This applies only to in-house employees (not contractors), and has limits (I.E. don't spend more than 2 hours a day reading non-related books..), but I wouldn't be surprised to find out that this is a common occurrence. – user2813274 Aug 21 '14 at 16:07
  • 1
    Taking time away from work that is ostensibly "directly" on the project at hand is definitely required for delivering quality software. Many managers seem to confuse the idea of developing software with the activity of typing code, as the answer here does. Those are not the same thing. And very often, probably at least a few hours per work week, it is healthy and important to get your brain away from any of the specifics of the problem at hand and think about something unrelated. Learning by reading books or tutorials is a great way to do it. –  Oct 06 '14 at 17:52
  • 1
    By taking that time away from the main project, you'll get the main project finished faster (since your burnout will be less, and your creativity higher) and likely of higher quality and with fewer bugs. I would whole heartedly recommend charging a consulting client for time spent this way -- as it directly contributes to a more overall successful solution that they are paying you for. Thinking about how to bill for a programming project in a way that accounts for the specific actions taken in each hour slice of time is misguided and demonstrates poor understanding of software productivity. –  Oct 06 '14 at 17:55
35

Is it ethical to read programming books on the clock?

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.

Jim G.
  • 14,663
  • 11
  • 70
  • 79
24

Whether it's ethical or not is not really the question you should be asking, since ethics is subjective and can encompass many things not necessarily to do with insubordination or not following the rules of the employer.

At the end of the day the question comes down to "are you doing things within the rules laid out by your employer". If they have not displayed any issue as of yet with the desire to further ones knowledge within the scope of your job then I would say it's not something to worry about until they express otherwise. Think for yourself and ask yourself "What am I looking to accomplish with this?". If your answer is that you are looking to further your knowledge, and improve your skills so as to make yourself invaluable to your employer and to produce better results and to help the business grow, then good job, you're a fantastic employee. There is absolutely no need for you to be "aware of the bigger picture" in that regard.

Additionally be sensible about how much time is dedicated to training yourself and how much time is dedicated to actually getting work done. Try not to spend more than 5-10% of your actual work time reading books when you should be getting your work done, keeping in mind that average true productivity for a person is roughly only 60%. If you can do it in the time you would normally be spacing out, goofing off, having coffee, reading mail, checking Facebook, watching YouTube videos, chatting to the cute girl in the opposite cubicle, or whatever else, then even better.

The thing is, any programmer who is actually any good understands that being a programmer is something you are always learning. Whether it's through a book or via an Internet search, we do it every day, day in and day out in an effort to accomplish the goals we, and the businesses we work for, set out for us. Too many times does one see an individual who thinks they're a rockstar (both fresh out of college and sometimes even after 7 or 8 years) and yet in practice their actual abilities stink. Why is this? Because they never took the opportunities to really learn what they were doing nor to learn anything new.

I'm saddened by some of the responses listed above, especially some of the more popular ones that seem to be under the impression that a good employee is one that tows the line, unquestioning, and is always asking permission rather than thinking for themselves, and to them I say for shame. You are the reason finding high quality skills out there is a complete crapshoot. I can guarantee you, only the best programmers are the ones that are passionate, experimental, and willing to push the boundaries, while the worst are the ones who are drones: there to punch in, punch out, and to be an extension of their manager or their manager's manager.

Tharaxis
  • 249
  • 3
  • 2
  • 5
    Hi Tharaxis, welcome to The Workplace SE! The last two paragraphs are spot on. Developers should be able to think for themselves and do whatever it takes to get the job done. Thanks for writing such a great first post on our Q&A site. – jmort253 Nov 10 '13 at 21:46
  • 5
    The thing is, any programmer who is actually any good understands that being a programmer is something you are always learning. Yes! This! – starsplusplus Jan 21 '14 at 08:52
6

it seems totally appropriate to do my learning on the clock.

If you're not an independent contractor (where you discuss in advance whether something is billable or not), I'd say it's expected that during your work hours you work simultaneously on short-term issues ("here's a bug to be sorted out") and long-term projects. For example, you know your iOS app will have to support iCloud eventually, and you read up on 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.

From the way you describe it, you're honestly using your best judgement to make sure you're performing your job correctly in the long term.

If you have the gut feelings that the managers wouldn't approve of your activities, you should honestly talk with the boss about those issues.

You should resolve these issues as soon as possible. If they have the same view about the way to do your work, that's great! But if your managers see things differently, it's likely that the disagreement will increase, not decrease over time.

In that case, it is important to admit that perhaps you're not a good match for each other?

I see different ways how the conversation with your managers may progress further, from

sure, I know I frowned a couple of times when I saw you reading the books, but now that you explain how those are useful for the company, please continue!

to

we need to work 60 hours per week on finishing this app for the foreseeable future, so if I see you opening the book again, you're fired.

In the latter case, it's probably a good time to think about changing work places.

ilya n.
  • 171
  • 1
  • 4
  • Another reason for "as soon as as possible," in my mind, is that if the boss is going to disallow something, s/he is likely to be less happy if that something has been going on, without his/her knowledge, for a long time. – Mathieu K. Jul 09 '16 at 05:54
  • (Or maybe that's the point the answerer is making--perhaps I hadn't understood.) – Mathieu K. Jul 09 '16 at 05:55
5

Ethics aren't relevant [edit] to this discussion[/edit]. The question is are you performing the duties you were assigned and complying with the company's code of conduct?

Whether the Zeitgeist approves of your activities or not, the only thing that matters is the agreement between you and your employer, and whether each party is meeting their obligations.

Most development jobs have a fairly explicitly-defined training program. If your company doesn't, talk to your manager about defining one. It can be something as simple as a company account for SafariBooksOnline.com and an hour a week of time to read it. Some companies will send you to a local training course or two a year, and if you're in a senior position, it might be one of the big events that you travel to.

In short, this is not something you should be worrying about. If you have a question about it, ask your supervisor. If your compensation package (including training, learning time, and such) is not what you feel is adequate, then it's your responsibility to renegotiate your compensation, relocate to another position, or resign yourself to the reality of your existing position.

In no event should you go against your employer's instructions or code of conduct. That's unethical. It's also insubordination, grounds for dismissal, and damaging to your references list.

Wesley Long
  • 63,364
  • 22
  • 144
  • 213
  • 1
  • Ethics do matter, but they strongly relate back to policy on training. Referencing something from any resource is par for the course, but self-directed training can be different than confirming a technique or answer. In other words, it can get into a grey area if the time spent 'referencing' is fairly lengthy. The 'fairly lengthy' is a matter of discretion more often than not left up to the supervisor.
  • – JustinC May 28 '13 at 19:27
  • "Ethics aren't relevant" remind me never to hire this guy. If you exchange work for pay but they short you on the pay, that's unethical, they stole your work. Likewise if you work on things that aren't assigned you are potentially stealing their money. –  May 28 '13 at 19:37
  • 12
    "Most development jobs have a fairly explicitly-defined training program" - Not in my experience. I've been a dev at several places now. I've yet to have worked for a place that has an actual dev training program. – Brian Knoblauch May 28 '13 at 19:41
  • 1
    @ioSamurai : "Ethics aren't relevant" refers to this person's situation. Ethics are what is considered the "right" thing to do when there is no authority to ask. This person is trying to use "ethics" as a way to sidestep authority, even though he probably doesn't realize it. Ethics are for those in leadership positions. Authority is what line-level employees should worry about. This person is trying to make decisions that are supposed to be made above him, and that's what's likely to get him canned if he isn't careful.

    BTW - shorting you on pay isn't "Unethical." It's fraud.

    – Wesley Long May 28 '13 at 20:00
  • 2
    @WesleyLong fraud is unethical... –  May 28 '13 at 20:53
  • 2
    @ioSamurai - Well, yes, fraud is unethical in the same sense that the ocean is damp. Ethics is colloquially defined as a code of conduct that guides you in making decisions where either choice is technically legal, but one is clearly accepted as superior to the other by a common sense of right and wrong. Shorting your pay goes beyond ethical considerations and goes to tort and crime territory. – Wesley Long May 28 '13 at 21:31
  • 1
    @WesleyLong, really, "crime" ?? – Angelo May 30 '13 at 16:47
  • @Angelo. Yes, depending on the state's laws. Ref: http://www.dllr.state.md.us/labor/wagepay/wpremedies.shtml – Wesley Long Jun 04 '13 at 19:11
  • I'm sorry, but ethics is not just about complying with the company's code of conduct. If everyone were to agree with you, there would never be any whistleblowers. No Daniel Ellsberg, no Bradley Manning, no Edward Snowden... – jub0bs Jan 23 '14 at 12:16