I think the best that can be expected is that you do your work, do it well, and never stop growing. You don't have to dump time into coding outside of work, just don't get complacent. That's assuming you don't have crappy leadership, in which case you may want to consider a different team or company.
As an example: I know a guy who's about to become a 3rd level developer at [large, popular software company] at the age of 28, which is a pretty big deal from a career development perspective. I don't think he's touched a line of code, or a single technical article, outside of work in the 5 years he's been here. He regularly works 25-30 hour weeks. He's just smart, puts out good projects, and is productive when he needs to be.
I work where we fill out time sheets every day detailing what we worked on hour by hour (in part and in fairness also for billing reasons). It is counterproductive as I constantly stress about every minute I use on a task and worry I am taking too long. The results I see are those of programmers trying to please project managers and billing accounts, not good products that are optimized. Nobody seems to have time make something good.
The 30 hour guy probably isn't much smarter than the rest of us, he might just have the freedom to create with a relaxed mind. Stress apparently blocks creativity.
I know not everyone can maybe afford to do this but this is something I'm never going to put up with and I left after only 3 months purely out of frustration without even having a new gig. (Was quite suprised to be approached immediately by a subsidiary of a well known online auction house, where I'm still working for 2 years now.)
If you don't have a family (wife + kids) be bold and don't put up with such inhuman conditions. Developers are high in demand and this is the time to use the opportunity.
I doubt any sane developer would come up with the idea of a stopwatch plugin on programming tasks. But I know some PMs who would. It is scary how being well-spoken and technically oblivious leads people to success in our industry.
Abuse is having the shit kicked out of you for answering back. Or being locked in a room for 48 hours without food or drink because you made a mistake. Or having your passport taken away and being forced to work for 18 hour days, 7 days per week, with no holiday and no pay.
All these things are happening in our world today, and equating them with programmers having to keep timesheets is ridiculous. It makes us sound like a bunch of spoiled babies who cry when we aren't allowed to play all day. So please use a different word than 'abuse' to describe something you prefer not to do at work.
In my eyes, it's relative to you or the situation in which you are in. For me personally it felt a lot like abuse and utter lack of trust to resolve using time sheets for a permanent position (not talking about freelancers and contractors).
Also why do you think that we are spoiled? I'm so fed up of people making software development look like a piece of cake and so easy. I tried to help some of my friends start with coding but after couple days they were quite overwhelmed and thought it was not so straightforward as imagined or as it looks to be. I'm also not talking about creating a hello world HTML document.
I'm definitely not a rock star programmer but I try to be solid one with hands-on mindset. I have 5 1/2 years experience working as a front end developer and there is still so much to learn and to improve on. Software development (especially web) is a field where you need to stay up to date and keen. We might not be exhausted physically but it's much harder to recharge and relax your mind.
This is why we shouldn't just put up with everything (timesheets is only one example of many) for the sake of having a job at all (because there are so many unemployed people right?). There are people who want to play safe and I'm fine with that but I learned that "no risk no fun" is true.
Update:
I want to add that I'm always grateful for what I have and don't take anything for granted. However I also know that I don't get anything for free unless you work hard for it.
Now, whether you choose to put up with it or leave, that's a different question. Given a choice, most people would choose an employer who gives them more latitude, as opposed to one who is monitoring them that closely. But that's an argument based on practicality, not morality.
I might spend a couple of hours trying to debug something screwy with my dev environment, or googling around and thinking about what the solution to a problem, that doesn't create more tech debt, should look like. I might spend time dealing with feedback in code review, some of which may be beyond the scope of the story or not immediately perceptible by a stakeholder, but it's work that needs to be done nonetheless. Project managers are not developers for the most part, so they have to trust me on that.
When you hire someone to do tasks that you could do yourself, then asking them to log time is reasonable since you know what needs to be done and what the timeframe should look like. Asking a highly skilled employee such as a software developer to log time is an insult to their judgment and a waste of their (and your) time. You can't gauge my productivity from a time log.
This quibbling over the term 'abuse', like we should all just be thankful we're not sex slaves or PHP devs and leave it at that, is completely irrelevant. Fine, it's not abuse. It's just antagonistically treating your employees like untrustworthy delinquents. Is that better?
2. Why point out that it is "easy"? Is it so you can feel superior to people who might not know this?
so if it isn't third-world violence, then the word 'abuse' in inappropriate?
It's worth pointing out that a lot real and extremely serious abuse is not limited to third-world countries. For example, the USA has an estimated 60,000 slaves.
[1] https://en.wikipedia.org/wiki/Global_Slavery_Index#Controver...
This HN discussion is not framed in a legal context, so not satisfying a legal definition of "workplace abuse" doesn't mean the word is being used inappropriately.
ON TOPIC: I'd definitely call a timesheet "a workspace abuse", yes. Most of the programming is a very creative work. Do you pester a designer for a complex image for a PR campaign? Do you go to him/her on the top of every hour and ask "what's up, you done yet"? Do you check a building's architect monitor every hour?
I am currently having a subtle and a very hard-to-detect bug in an e-commerce shop I am maintaining. It leads to losing a few orders each day (out of 100+). The people I work for are wise enough to understand that pinpointing the cause of the bug is 90% of the work and yes, it may take days -- days during which I add more defensive coding on several places, increase logging statements, introduce several new integration tests, and what not.
If I was forced to use a timesheet in this situation I'd honestly wouldn't even know what to say in it on the top of every hour. I would strongly resemble the private detectives in those noir animations I guess. "Currently chasing clue X" -- "No wait, that's not it. Damn it, I am out of cigarettes. I must persevere!" -- "The owner of the bar knew nothing. Damn. Moving on."
Would you want that in timesheets if you were the manager? How would it help you?
But bandying around words like 'abuse' based on those likes and dislikes is akin to crying wolf when you see a pussy cat. It devalues its meaning for those cases where people are genuinely suffering and need help.
However, English isn't a programming language.
https://www.youtube.com/watch?v=0rYT0YvQ3hs
By devaluing the word, when we hear people talking about 'abuse' we will assume they're just whinging.
One of the biggest problems with estimation (a frequent HN topic) is not knowing how long it took to do something. If you don't know how long it typically takes you to do a task, how the hell can you estimate how long it will take to do a variation of that task?
"Stress apparently blocks creativity" -- most certainly does.
Same here, and I know a bunch of other people like this as well. It's just a matter of perspective. When you read such forums and similar, you often read opinions and insights of people who are the top of the field. So it's easy to lose the perspective of where you stand compared with the rest of your class or some other cohort.
>>> He's just smart, puts out good projects, and is productive when he needs to be.
Smart is the key word here. More hours of work does not necessarily mean better work. It shouldn't be about working longer, it should be about working smarter.
At the same time, writing good code is only small part of his success, I guess. Managing to ship top quality products without hand holding, making sure you are productive without anyone breathing down your neck, are all important and not something articles will teach you (usually).
The company I work for now has problems managing customer expectations and controlling scope creep, so naturally rather than address the real issues the PMs have decided it's easier to stick their noses in the CMMI manual and send the software development team straight to process improvement hell.
I've reached the point where my motivation is so low it takes me a week to complete a task I know I could have done in a couple of hours if I could just reach down and muster up a little bit of give-a-shiat.
I need to get out of this place, but I rather doubt any of the other major employers around here would be any better (I just interviewed at one that looked like it would be an even worse situation. They declined to make me an offer - the interviewer must have picked up on my shock/disgust when he described their development processes to me).
Now, my side projects are seeing more love than ever before, probably because I need an outlet for my creativity (which my employer is most definitely not providing). One thing age and experience has given me is the ability to see my own projects through to some level of completion (as complete as software can be). My younger years were full of half-completed projects :)
I'm working on something I hope to turn into a SaaS product, maybe that's the escape plan (If I'm really lucky).
And the truth is that most of the developers need that. Some can be assigned a relatively abstract problem and they find the solution (by finding who to talk to, etc). While some needs a fair share of requirements gathering etc done for them, or they struggle to convert a large milestone to reasonable small tasks. That's ok, you just need to recognize it handle accordingly.
>>> any of the other major employers around here would be any better
major as in employing a large number of employees? Sometimes you can find happiness in a company of a dozen employees :)
RC, home automation, every other silly thing you can make or teaching/volunteering at various places that do coding tutoring (schools, community centers, or even your own kids or family) might help you with that.
That said it only works if you like it, if you already considering programming to be a hobby, it's ok not to.
Not every profession needs to be also a hobby, and you don't need to spend your free time on your profession to be good at it.
I know plenty of developers that don't like technology that much and pretty much dislike IT related stuff specifically, and I know plenty of developers that spend every weekend cloning some project from hack a day. Both of these groups consist of good, lesser, and poor developers and so far I haven't really seen any substantial statistical proof that hobby programming enables you to become a better developer.
There could be extreme cases in which being a "super weekend hacker" gives you some advantage, especially if you are a single digit employee at startup and you need to hack everything together like crazy without worrying about the finer details, like documentation, maintainability, performance and all the other things that separate a hack job from a product, if your entire professional programming career is about flying solo and pushing out MVP/POC's then effectively one could say you are being paid for a hobby.
But if you are a developer at a large company with an established development life cycle and methodology the small hacks you pick up from your hobby would not really be relevant, hacking micro services on the newest SBC over the weekend won't necessarily help you work better as part of a team, won't necessarily help you write better documentation, and won't necessarily help you adhere to strict coding practices.
He built a video codec implementation by himself in 3 months.
At work? I can't even fathom a working environment where I could work on anything for 3 months (hell, even 3 days) without a panicking supervisor asking why it wasn't done yet and whether I could help out with this other thing that was a crisis and why can't we just buy something or better yet use an open source solution because we need results right now.
Plus of course a lot of trust that people who were known to do good work could be left alone to deliver it.
(Part of being a premium consultancy was setting reasonable expectations to the client and refusing to even offer a crap job at high speed. Takes a lot of faith in your standards and customer funnel to do that, though.)
If you take coding at home serious as you (presumably) do at work, like following deadlines, doing stuff you don't enjoy, stress yourself out, then it is a very unhealthy expectation.
Just sometimes you need to get focused and finish some ugly small issue that prevents you from actually shipping. The feeling of shipping something that works usually beats it all at the end.
>The gamers weren’t just Softdisk guys anymore, they were, as they called themselves, the IFD guys, co-owners of Ideas from the Deep. Softdisk, as a result, took on an even greater pallor. But it was a day job, a job they all needed since there was no real money coming in yet and no guarantee that it would come in at all. They decided, then, to continue working on titles for Gamers Edge during the day while they churned out Commander Keen from the lake house at night.
>They became all the more efficient at "borrowing" the Softdisk computers. Every night after work they’d back their cars up to the office and load the machines. The next morning they’d come in early enough to bring the com- puters back. They even got a little cocky about it. Though the machines were top of the line, they wanted some minor adjustments made..."
(again I think I need to write my "I was a 10x programmer until I got chronic fatigue" post)
Edit: Over time, 3 of my side projects allowed me to move country, take a 5 year 'sabbatical' (for me that mostly consisted of programming and repairing old 70-80s computers and developing new projects) and basically do whatever I like. If only for my 'main job' I would've not made that happen for a while (note; this was 8-9 years ago).
Us modern people have it incredibly easy with appliances doing the bulk of the chores home.
IMO, yes it does, but only behind a tiny sliver of developers. You can still have an excellent and rewarding (professionally and financially) without putting in the extra effort and without the "true calling" that some devs have (and many more blog about having).
If you don't have the passion to spend time on nights/weekends coding projects, don't do it. You'll still do OK. You probably won't do quite as well as someone who does, but excelling at work is only one aspect of a happy life. (I think it would be foolish to pretend though that someone else equally talented who has greater passion and puts in 50% more effort won't have better outcomes in their field over a large population study.)
I have ideas to explore (Nothing I'd ever want to turn into a business, perish the thought), but I just... can't find the motivation to spend more hours doing what I already spend about a third of my life doing. I enjoy reading articles and the like, sure, but if I wanted to work on side projects, I'd need to take extended time away from work to "reset" and get into something.
Does this make me destined to fall behind? I'm hoping not, but given how many people talk about needing one's job to be their all-consuming passion, to be something they spend spare time and weekends on... I'm not always hopeful.