Is it ethical to read programming books on the clock?
workplace.stackexchange.com
workplace.stackexchange.com
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...
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.
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?
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.
Worse, I paid a lot of money on my own time for my degree my employer expected
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?
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?
* 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
> It's unethical to act against the express request of your employer;
!
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!
> 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.
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.
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.
Alledgedly.
The sooner management understands this, the sooner this question doesn't even get asked.
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.
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.
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.
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.
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'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)
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.
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.
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.