Hacker News new | past | comments | ask | show | jobs | submit login
Is it ethical to read programming books on the clock? (workplace.stackexchange.com)
52 points by protomyth on Nov 9, 2013 | hide | past | favorite | 52 comments



That feeling in your gut that there's something wrong with what you're doing, even though you know what you're doing is completely reasonable, is from having internalised the dominant culture's view on work, which from an anglo-american context probably means suspicion of anything which doesn't place an emphasis on a projection of looking busy like a labourer on a factory line with some kind of neurotic rendition of the protestant work ethic.

Obviously if your boss is a tool, or has issue with it, even though its reasonable, whether to continue on with it any way is up to you.

But if you know its reasonable, and its just the feeling, screw that feeling. Your life will be better off if you can get rid of it completely. Its the same feeling that makes bankers stay at the office for 12 hours even when they don't do anything for 6 of them. Not only will you do your job better if you're spending some time researching and thinking about the task, but if your boss is a tool, you'll likely be upskilling your future self for your next job as well.

All this is assuming you work at a job or living a life where your skills are actually the important thing, and not just the impression you are constantly working...


The odd thing about "looking busy" in the context of software development is that goofing off by browsing random stuff on the internet looks more work-like than reading a work-related book.


This comment is just spot-on, but the last sentence alone is worth multiple up-votes. Sums up so many very tangible pieces of corporate work.


Stop and sharpen the axe?! There's too much wood to cut to spend time sharpening the axe!

http://c2.com/cgi/wiki?SharpenTheSaw


That's a surprisingly fitting analogy. Also related, http://en.wikipedia.org/wiki/Technical_debt


You can ask the question the other way: Is it ethical for your employer to expect you to obtain the knowledge to solve a work-specific problem on your own time and without pay?


> Is it ethical for your employer to expect you to obtain the knowledge to solve a work-specific problem on your own time and without pay?

Worse, I paid a lot of money on my own time for my degree my employer expected


>> "Is it ethical for your employer to expect you to obtain the knowledge to solve a work-specific problem"

To play devils advocate:

If you have applied to do the job shouldn't you already have the knowledge? If you can't do a job you have got it dishonestly or their was a failing in the hiring process.

If the job has changed to incorporate something new (e.g. a new technology) that it did not when you were hired then learning during working hours should be acceptable.


It's implicit in most of our work arrangements that we have to learn new technologies to excel at our jobs to greatest degree possible. If your employer does not realize this that's a problem. Realistically if you are at your job for more than a few months some of the technologies you need to perform at your best have not been released yet/have not reached production quality yet. Sometimes its most fitting to read documentation and/or blog posts to prepare yourself to use new technology, sometimes a book is best. Anxiety about reading technical books is most likely anxiety about fear of looking like you're not doing work.


>> If you have applied to do the job shouldn't you already have the knowledge? If you can't do a job you have got it dishonestly or their was a failing in the hiring process.

Great point. Unfortunately, I could never ethically apply for any job thought if this was true. The employers hide far too much knowledge for me to say truthfully if I KNOW something.

For instance, I KNOW javascript. But do I really?

Sure, I can make websites more enhanced with form validation, do some html scraping, enhance the design, or even collect analytics. But that's not what they asked. They asked if I knew javascript.

I definitely don't know how to create a really great search tool for a pure front-end app. I've never created a video game in the language. I'm horrible at implementing graphics in it with canvas. So do I really know the knowledge for what they are asking me for?


> If you have applied to do the job shouldn't you already have the knowledge? If you can't do a job you have got it dishonestly or their was a failing in the hiring process.

Or, you met the broad requirements for the job, such as knowledge of specific languages, but haven't worked with the library or framework used by the company.

Also, reading is necessary when presented with new problems or when trying to identify a solution to the existing problems.


Most jobs fundamentally use a changing set of technologies, and workers are expected to be up to speed on the latest information in the field.


Also note that regardless of where you live, it's illegal for employers to have an employee work off the clock, regardless of any stipulations in the personal contract, since there are tax issues involved.


This may be true some places, but it's certainly not true that this is the case regardless of where you live.


This is another of those beautiful pieces I call contemporary historical texts that often make their way to HN. I'm referring mostly to this bit:

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 self-improvement, psychology, productivity, marketing, business, and other topics that certainly improve my overall effectiveness as an employee, but usually don't have much to do with programming.

So on the off hours he's reading books about self-improvement and productivity, and other topics that increase his effectiveness as an employee. We are now apparently at that stage where our employers and jobs have been sublimated. They don't even need to be there in order to make us more "effective". Being effective is what we want to do.

And I ask myself, whatever has become of wanting to stay in bed? Where is the desire to be completely ineffective and blissfuly idle? If I were Picasso, Bach or Einstein the world would be better off if I were effective, but since I'm not, I wish I could be ineffective, and lazy, and just spend as much time as possible doing absolutely nothing. But I can't, because work has first turned from being a very unpleasant necessity and the domain of the unfortunate into a mark of responsibility and usefulness, and recently into an essential part of the self.

The number of people making significant contributions to our culture is vanishingly small. But aside from those poor bastards on whose shoulders we sometimes need to stand (and even our heroes in this day and age are more over-achievers than geniuses), wouldn't the world be better off if we could all just slouch?


There is no logical reason why you "should" be more productive, especially if you will survive regardless. I agree on that point.

However, imagine you were watching a replay of your life, like it's a movie. Would you rather watch a replay of a boring person who sleeps all day, or a more interesting one where stuff happens?


I think I might agree with what you're getting at, but I'm not sure "watching" is the correct metaphor. Watching a programmer program is likely to be nearly as boring as watching someone sleeping even though it's interesting from the programmer's perspective and productive.


In my view, if you actually do 8 hours of work in a single day regularly, meaning you perform a physical action which is directly attributable to your work description for a total of at least 8 hours every day for at least 5 days in a row, then you are one of:

* a physical labour worker

* a genius

* a sucker

* working crunch time to deliver a release (a potential sucker if the crunch time doesn't actually pay off)

* someone whose mind is too alien, that I cannot form a theory of mind (https://en.wikipedia.org/wiki/Theory_of_mind) for


The scary thing here is that people are phrasing economic obligations in moral terms. You may get fired for doing something your boss doesnt like, that has nothing to do with whether it is immoral to do so.

> It's unethical to act against the express request of your employer;

!


Great point. I feel like your highlighting the core issue this is bringing up: worker autonomy.

IMO, why wouldn't you want more worker autonomy than less when it comes down to knowledge based crafting? We see innovation as the key to success in reality, yet managers and executives FEAR it I say!


Successful teams collaborate on decisions. Technical decisions, decisions about how, are best left to developers... although insight from management about changes in the team, new features, and the like can significantly impact those decisions. Decisions about what to do are more frequently business decisions, including prioritization of the work. Respect, understanding responsibilities, and collaboration is the makings of a good team.


When somebody says:

> It's unethical to act against the express request of your employer;

What they really mean is:

> If your boss requested that you do not do that, then it is unethical to hide that you're doing that from your boss while continuing to receive salary from that boss.

If you really don't want to do something, the ethical thing is to discuss that openly with your boss, and if he doesn't agree, he can fire you. Continuing to do it behind his back is unethical.


whistle-blowing is unethical?


You always have to weigh things against each other. Is whistle blowing unethitcal if it exposes a greater evil? No. This is the case with every single possible action, not just disobeying your boss in secret. Is murder unethical? If it saves the lives of 100 people, maybe not.


I think the top answer is very reasonable. As long as it relates to your work it's fair game. I'd add that exploring other technologies (through reading) wouldn't be too unethical as if you stay in the bubble of your own stack, you won't ever be able to explore other tools that might do the job more effectively.


I think it comes down to how directly related the book in question is to the work you are currently doing. If you're trying to debug a problem and to do so you need to understand a system that was previously a black box to you, well, you shouldn't feel bad about leaning back and reading a book or two - until you know enough to fix the bug. This also applies when trying to optimise systems.

If the book is something that is not directly related to the job at hand, for example you want to know a bit more about Git or Vim, as tools that you use every day, this is also fair game, although I would expect it to be done more as a one-hour block here or there, particularly when you're tired and not able to focus on coding.

If it's about some new technology that isn't going to be of direct benefit to your employer it's a little trickier. In those cases it comes down to your current workload. If you have deadlines coming up this is not the thing to be doing. On the other hand I have noticed in my career that it's quite common for things that I have read from pure personal curiosity to turn out to provide game-changing insight into my job. That afternoon you wasted reading about a reverse engineering technique came into play when a library you bought wasn't working correctly and the supplier is stone-walling you. That book on SQL databases turned out to be really useful when you all of a sudden had to manage a large data set.

The thing is that any decent employer should be OK with you spending a portion of your time in pure learning mode. If they aren't it's more of a signal that you should be looking to change jobs, rather than that you are goofing off.


It can be answered by reversing the question. Would it be ethical for your current employer to ask you to do a job outside of the scope he explicitly hired you for ? I.e. would you do photoshop work in a pinch, even if you're paid as a database engineer ? Would you help brainstorming the UX of a product while you were brought in to deal with performance bottlenecks ?

If you think you should put your whole knowledge and skillset to solve any problem coming your way, no matter what's written on your contract or business card, you should allow yourself to expand this knowledge and skillset during work hours as long as there is no direct damaging effects to the things you work on.


If you were a lawyer you would happily travel to a meeting on a train, book another meeting in the same city, bill both clients for travel, and bill another client for the reading research you did on the train that's relevant to their case.

Alledgedly.


Programmers shouldn't be measured by minutes clocked, but by value delivered. There is often little correlation between the two.

The sooner management understands this, the sooner this question doesn't even get asked.


How does one work effectively as a coder without doing so?


Actually I'm not 100% what professional coders do, but when I can't figure out a piece of code myself (talking about semantic errors), I google it, find a solution I understand or spent some time understand the available solutions and then implement them.

I guess under strain, people might implement huge chunks of code they don't really understand.

The other way you can achieve the same result is reading a book on the topic trying to understand how it all works at lower level and creating your own implementation.

The second process is much more expensive in time and time is your currency at work.

A good programmer theoretically should implement something simple that he understand first and then come back with a professional solution.

Not sure how often that happens though.


Totally ethical if you ask me.

Sometimes, there is not much work to do. All of my stuff is done, we are waiting for the client, etc.

What would you have me do? Browse facebook or hacker news?

Nope.

I open a pdf or an epub and read it!

... that being said, I would feel wrong to read a physical book. I guess I feel as if I am expected to be at the computer for 8 hours a day.


Is it ethical to get up and get a cup of coffee on the clock? Stop and chat with coworkers? Browse the Internet?

It's unreasonable for employers to expect you to spend 100% of your time 100% focused on the 'task at hand'. You need to have a little downtime on the clock for reflection, thinking, stress relief, etc especially if you are a programmer. Frankly if I was an employer I'd be happy if you were using it try and keep sharp as opposed to looking at lolcats or something (not that there's anything wrong with that).

Of course this has to be "within reason", and an employer is well within their rights to decide that certain activities are too disruptive and ban them. Violating an explicit ban would be somewhat unethical.

Another question: is it a polite thing to do? There are certain general and company specific social norms for what and how much of that stuff is acceptable.

So I would say go for it, with the caveat that you shouldn't abuse the privilege.

This is for employees ofc. As a freelancer I try to be very conscientious about stopping the clock when I feel I'm not adding enough value for the client. I get paid a higher rate than I probably would otherwise, and therefore don't screw around. I do sometimes bill for reading that's done for research for the project, just as I don't stop the clock every time I look up something in the docs - but I do this as little as possible and always with the clients understanding.


Only if it is a quality book.

And if your employer is not interested in investing in your education and development it is time to switch jobs.

It is ethical - my job is to solve problems. If I need to do research how to solve a problem best it is unethical for me not to do it.

When I am stuck on a problem, usually I take a long lunch, shower or hit the gym. Having few hours doing something else allows me to attack the problem from another angle. And usually I solve it better and faster that way.

As long as you don't work for pointy hair boss it should be fine.


If you are a salaried rather than hourly employee, what does "on the clock" mean? You're paid to get work done, and the degree of independence you have in how you do the job is a major part of what justifies your employers claim that you are FLSA exempt -- outside of government service, almost all employers claim this about all employees engaged in analytical or development positions related to software.


... what? Not reading documentation on the clock would be unethical.


There's a difference between documentation for w/e you are working on and documentation for this cool new framework you saw on HN that has little to do with your duties.


True. One has to apply one's conscience to the question of whether one is sharpening the saw, decompressing, skiving or what.

But I have e.g. said to my boss "I'm reading up on 'Orrible for the next two hours", put on the headphones (Metal Machine Music by preference ... it never gets old) and read far too much about Oracle, ignoring with explicit permission anyone who interrupts. That's clear. New thing you've never seen before that is suddenly your problem? TOTALLY hit the books on the clock.

Learning about the thing you are dealing with at work is totally work, and if it makes your work sufficiently more effective then not doing it is the wrong thing.


I'm OK with it, as long as it's directly relevant to work. I spend a lot of time coding at home on work-related projects, so it evens out for me.

I'll even go so far as to say that reading HN (the tech stuff, not the political discussions, though those are interesting to me too) has been very helpful. I know people tire of MongoDB vs. SQL, CoffeeScript vs JavaScript, etc. etc., but for those who haven't been exposed to why such controversies exist (which is, pretty much everyone straight out of school and anyone whose work is limited to legacy codebases), these topics...for a time...can be incredibly useful in widening your scope and changing the way in which you assess your own domain, even if it's not necessarily about moving to a new technology.

(it's not that HN is in itself useful, it just happens to be one of the best aggregators for such material)


A boss pays you to do a job, if you do the job adequately the boss continues the employment. There is nothing beyond this, no duty, no morality. As we have all seen there is certainly no inclination for such things coming from the corporate side. We work in a capitalist system, playing the game as it's meant to be played releases you to work solely in your self interest. I would ask the Boss if he allowed me to operate in this manner, if he says yes I would consider myself pretty lucky. If not I would decide whether this affronted my dignity as a wage slave too much and if so look for another employer.


Is it for your current job or the one you are applying for?


The fundamental point is what you're getting paid to do. Is the company paying for your experience or aptitude?

If it's the latter, becoming a better programmer is part of your job, and choosing to read books instead of writing code is just a choice of priority, just like choosing to work on one feature of the project over another.

If it's the former, ask yourself if you really want to be working for this company.


Given that I routinely tell my minions to expense the books that they need, to look up the answer in one of the books I have on my shelf or the group's shelf, and that we have in the past (and may in the future, I dunno) purchased corporate subscriptions to Safari Bookshelf and similar programs, I think the answer is pretty obvious.


It think so - if it relates to the current assignment. Hell we've got a time-code for it. "Technical reading".


From a holistic point of view, reading that book could help boost momentum, focus and drive for whatever problem you're trying to solve. It's a part of process that is inherently creative. To set such rules, can be stifling for certain people.


In the company I work for, it is mandatory. 1 or 2 hours per week. Choose your subject among those we need to master and take time to read, think and get better.


My brother works for a three-letter tech company. They require a certain amount of "reading" per week (and testing).


Is it ethical not to?


The very question gives me an ugh feeling. I try to do right by my friends and family. I try to do no harm to all you random NPCs. I don't try to do anything by my employer, except stay employed for as long as I want to, and do as good a job as satisfies me.


> Is it ethical to read programming books on the clock?

It's a badly phrased question but getting at what it's really asking, then no, it's not ok.

Being paid to further yourself is not what a job is.

And no, reading is not 'work'.

It's like asking should I be paid for 100% of the time when being forced to travel for work.

Work should give you some travel allowance, and work should provide some training.

But being paid to read is basically slacking off.


Just to make sure, are you saying that an employer should not have to pay for 100% of one's time when traveling for work?


Correct.

It's certainly never done I've heard of?

Some companies will count your travel time, but I've never heard of anyone being paid for the other time you're forced to be away form home.

[Edit]So, my point is there's work, and there's work. Reading a book I don't think is valid work. Reading a book then using company time to use/develop those idea I don't have a issue with.

But readings fun but pointless without implementing the ideas. Hacking is about doing, not reading.

We all have facebook time at work, if you want to swap that out, also fine.

But to be 'On the clock' using the ~ 4 hours per day programmers do real work to read I don't think is appropriate.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: