Hacker News new | ask | show | jobs
It is perfectly OK to only code at work, you can have a life too (reddit.com)
88 points by majikarp 2500 days ago
11 comments

>It is perfectly OK to only code at work, you can have a life too

That short life-affirming quote structured like a pithy aphorism is hiding the true debate that motivates it.

The real discussion before that quote is this:

Some employers prefer programmers that like programming outside of work. For the other programmers that would rather constrain coding work to 40 hours a week, they feel that employer preference is unfair.

So yes, of course it's fine to want to do non-coding activities outside of work... but that's not what the real frustration is about.

Unfortunately, there's nothing you can do to prevent some employers for preferring coders who code outside of work. It's been that way for decades. On the other hand, some employers don't care about personal coding projects so that culture may be a better fit.

I don't know if I agree with your premises or conclusions. I think employers prefer engineers who are effective and have a past track record of success. For some companies, some of these are going to have a "can't rip my keyboard out of my hands" characteristic, but I've mostly found that working on software outside of work has minimal correlation with productivity.

Engineers that are steadily growing and continuing that professional growth may work on things outside of work. But they definitely ensure that whatever they do at work, in those 8 hours a day when they're on the job, is in large part contributing to that.

IMO, that's 99% of it. Engineering off the job or on a side project? It indicates a certain degree of intrinsic fascination. But if that's targeted in the wrong direction, it can result in someone being distracted and building the wrong thing really well. It varies.

> I think employers prefer engineers who are effective and have a past track record of success.

I have talked to startup founders who were very explicit that they only hired developers who coded obsessively outside of work. One was very clear: If you didn't have a public Github profile showing a track record of frequent commits on personal project outside of work hours, you would not be hired at his firm.

> I've mostly found that working on software outside of work has minimal correlation with productivity.

Same. That doesn't mean everyone is hiring based on that.

I understand that these kinds of firms and founders exist, but I think it's best to avoid them. If a founder prefers obsession over effectiveness, isn't that just the textbook way to start a firm that's at best dysfunctional and at worst a self-forced failure? I find these kinds of firms really unacceptable and an embarrassment to the industry.
> you would not be hired at his firm.

If they make that public it would be good, it would save me the bother of applying for a job with them.

While it would be nice of these companies to out themselves so we can avoid them, it’s usually pretty easy to read between the lines and spot them. Their job descriptions tend to have more red flags than a Chinese parade. I can spot a “you must have no life outside of work” job opening a mile away and avoid it.
"We want passionate developers to join our family. We work hard and we play hard. Together. You'll be part of an exceptional team that won't slow down until we've changed the world."

How did I do?

I hope they explicitly state that requirement in the job listing so as not to waste their time or potential job hunters' time.
I find some employers try to restrict your outside of work coding with agreements not to work for anyone else during the employment period. Some demand ip for any projects.

I feel like I have to sneak around when coding after work.

As an employer (100+ people), I prefer folks that code outside of work in the same way that I prefer marketing people that study/practice marketing outside of work. For the simple reason that it correlates highly with performance.
As someone who is (more or less) in marketing, I'm not sure what studying/practicing marketing outside of work even looks like. I suppose I could read more business books--I read some--but mostly they don't have a whole lot of value. Am I supposed to have a side gig where I do some consulting? I'd think you might have a problem if I were to do that for closely related companies where I had the most experience. (Not that they'd hire me if they were ethical for conflict of interest reasons.)

What's the sales rep supposed to do in their spare time to study and practice? Or the finance person?

Also there is a difference between studying and reflecting on something outside of work, and actually practicing outside of work.

Do I want my surgeon to be studying the latest techniques outside of his work? YES

Do I need a surgeon who dissects animals and removes tumors at home as a hobby on weekends? NO

Is there such a distinction in programming? Plenty of people use side projects as a way to test out new languages, tools, etc. It's widely held that learning programming in general is easiest if you have something you're trying to build. Are there people just reading a "React for dummies" book and coming away comfortable with it?
The latter sounds like a fun premise for a TV series, though.
Gonna bet that for whatever reasons they do it, people who code on their own time are on average better coders and will on average have an easier time gettinv employment. Isn't this true for any skill (except maybe neurosurgery)?
Not really. You can't, for example, lift weights 8 or 12 hours a day unless you're taking steroids because your muscles need to heal and they can only do that between bouts. You can through-hike long backpacking trails but it takes a toll on your body and eventually you will have to rest. And you can't hike all day and into the night, you need to rest between bouts, again because your body needs to heal.

I think the dangerous thing about people thinking you have to code all the time is that they're just assuming that it makes you a better coder without any real reasoning. And that's the kind of assumption that is very prone to confirmation bias.

>Isn't this true for any skill

I'm not sure why it would hold that, if you do something for 40 hours a week, you'll necessarily improve if you do it for an even greater amount of time. And, besides, effectiveness as a developer is not just about coding anyway. A lot more goes into creating products and services than lines of code.

The underlying assumption is that when you code outside of work, you're working on things that are different from what you do at work.
That might be true for some physical/mechanical skills, such as sports. However, some quick googling shows that even professional athletes rarely average more than 40 hours a week practising over the course of a year, so even that's questionable.

And as for things like programming or any mental/intellectual skill like that? I highly doubt it.

As a general rule, you're going to see heavy diminishing returns on time invested. By the time you've spent 40 hours doing it, a few more hours on the weekend is unlikely to have any real benefit, and to the extent it causes burn out or takes the place of something that helps you stay healthy, it's likely to be a net negative.

I feel like a lot of people that push back on this premise do so believing that "coding outside of work" means doing more of your day job. When you look at it from that perspective, yeah, doing 60 hours of the same thing per week instead of 40 is not going to do much for you.

In reality, most people that code outside of work do so to learn new things; new stacks or languages, or take on projects that are orthogonal to their day job.

I think the argument should probably be framed around "learning outside of work" rather than "coding outside of work".

I believe hiring decisions are employers perogative.

What I do appreciate is them being honest and upfront about it so that I don't waste time pursuing a job that might not fit me.

That works until their cumulative prerogatives shut you out of your chosen career because they're discriminating against you. Discrimination is simply avoiding the thing you don't prefer because you have a preference for something else. If you discriminate against enough people, it becomes a problem for people who don't fit into your prerogative.
The entire hiring process is an act of discrimination. What's the alternative? Hire everybody that applies?
Given that the market is so unbalanced in favor of programmers, and will keep being that way for the next 10 years, that's hardly an issue.
> Some employers prefer programmers that like programming outside of work

Many employers prefer programmers that keep current with new technologies, and programmers will generally have better opportunities for job switching the broader their skills are. Many employers also don't provide much opportunity for breadth development in working hours, leaving programmers in a narrow lane if they restrict themselves to programming at work.

It's not that employers specifically prefer you programming outside of work, programming outside of work is a way of avoiding getting sick in a rut defined by you your present role with your present employer.

There are, also, employers that use “your life is coding” as a filter, probably because they are looking for people whose preferred lifestyle wouldn't change if they were in nearly 24/7 crunch mode. Unless you are one of those people, even if your actually do like to code outside of work, you should probably avoid those firms like the plague.

Well... I do code outside of work, and learn things outside of work, but those are rarely (if ever) the things that my current employer can immediately turn a profit on. These days, for example, I’m trying to broaden my understanding of the Linux kernel, which isn’t something I’m going to apply to my regular Java development job. So, preferring programmers who also code outside of work is one thing, giving them coding assignments to complete outside of work (which is what they’re really doing) is something else entirely.
And you see that attitude on this thread with some who would presumably pass on anyone lacking personal Github repos for reasons of culture fit, insufficient passion, or some other such filter.
I really wanted to code my own side projects in my spare time. I always have so much ideas that I become anxious when will I have time for them all.

But during my spare time, which I would like to designate to my own projects, life kicks in. Something breaks, an old friend is back in town, I don't feel well, there is a recipe I want to try or my girlfriend and I want to have a day outdoors because we didn't have enough quality time together during the week. Then Sunday evening comes and I become sad because I'm far behind my own plans.

But the most important thing I was missing is thet I actually enjoy stuff beyond coding. I was so concentrated on it that I stopped being thankful for all of the detours that make my life complete and meaningful. Tonight I'm going to change the mixer tap at my folks home, and I'm glad I'll make them happy and life a bit more comfortable. My buddy is back, so latter were going out for drinks, we're gonna have a ball. And I actually love those things, it's refreshing. Yes I would like to brush up on some fresher skills or try out the latest AWS Blazefeather. And I will eventually. But I realized that other stuff in life makes me also a calm and enjoyable person, and personality and temper is also a part of an engineers value.

If I were an employer I’d like to see a healthy life outside of work on a prospective hire. Mental health is a great factor in work productivity too
Contains predictable reddit comments of never working a millisecond of unpaid time.

That’s certainly a choice; there’s nothing wrong with it.

OTOH, if you enjoy coding (as I do), there’s also nothing wrong with coding at home or doing the occasional extra work from home (and conversely, dicking off in the office now and then when there’s an opportunity).

Many find that being flexible like this yields a better outcome for all parties.

Absolutely. Aside from quite a bit of work travel which inevitably blurs the boundaries between personal time and work time (as does the fact that otherwise I mostly work from home), I generally keep work to work hours.

However, as you suggest, I also generally will do a bit of work here and there if something comes up and tend to checkin on email now and then at home. Conversely, I'll run out and do a few errands on weekdays if I need to pickup groceries, etc. I know a lot of people have trouble setting boundaries for various reasons (with faults on both employer and employee sides) but overall I find flexibility can be a better deal for everyone.

I just honestly enjoy doing it. I spend every saturday and sunday morning working on side projects at coffee shops - it's my favorite part of the week.
Yes, I think the key point is to know yourself, do what you truly like at leisure time, and never put yourself on pressure outside of work (for example, thinking not coding at home will make you a worse programmer, or that you're missing something). Sometimes I've not touched a line of code at home for months because I was focusing on other hobbies, like reading, that I had abandoned. No regrets. Lately I've gone back to think about possible personal projects I could do. Being flexible with yourself is important.
This is key! It echoes my comment elsewhere in the thread quite well. Being flexible is important. You'll just end up depressing yourself if you'll force yourself to write code in your free time even when you don't want to. (Been there, done that).
If I’ve got the work scratch on my own time I turn to learning. It can benefit me long term, and perhaps score me some cred at work in the short term.
It fluctuates for me, which I think is normal. I enjoy programming a lot - it was a hobby before a profession. I enjoy learning programming languages and puzzling things out.

But sometimes I don't want to code at home - I have other hobbies, a wife, friends, .. that I'd rather do something with. But I do find that after a certain time I'll miss programming for fun.

It used to bother me when I lost motivation to work on side-projects or to learn new things. But after losing and regaining the motivation often enough, I now figure it's just a cyclical thing. I might be on a day out with my wife and suddenly think of something I want to learn and continue spending several weeks learning or building it. Only to find myself without a project again for several weeks and enjoying going to the movies, gaming, citytrips...

The only thing which I do believe is that if you have absolutely no interest in learning new things - in your own time or in paid time - it's going to be hard to keep up with the evolving industry. But I could be wrong, we still have the cobol cowboys... :)

The field of software engineering changes rapidly and is complex to master. To remain good at the job, one must continue to explore and learn. The only way that is going to happen is if you are genuinely interested in the field. The best indicator of that is that you have pet projects outside of work.
I don't get this. It is like being an accomplished painter, but never painting anything for yourself. Or a carpenter, and not making your own table or chairs.

As a coder, you have the ability to create almost anything. How can that knowledge not tempt you to create something yourself?

I'm not sure I would take "only" in that case too literally. There are a lot of people who genuinely do enjoy programming but get quite enough of it at work, thank you very much. In my case I do a lot of writing (words) for work and like doing it--among other things that are part of my job. That doesn't mean I spend every night working on writing the great American novel--though I do know writers at work who also do that sort of thing.

(I actually do some unrelated personal writing but not a huge amount.)

There are also people for whom coding really is just a job. It puts food on the table. They enjoy/tolerate it well enough for what it pays. But it's not something they want to do as a hobby.

ADDED: People can do whatever they want in their spare time. But, not to pick on you, the belief in many corners of tech that writing software must be some all-consuming passion is unhealthy.

> the belief in many corners of tech that writing software must be some all-consuming passion is unhealthy.

To add to this, it’s not only unhealthy but leads one away from the concrete reality we live in and this results to out of touch thinking.

I dont know about carpenters but car mechanics are known to have a pretty crappy car themselves. It’s a generality ofc, but that says something on its own. I personally think noone should look at the personal life other people. There are countless examples of people who despite being good and productive employees, their pesonal life wouldn’t indicate such. Also, from my exprience, since I started coding for a living i found myself wanting to fill my life with something else outside the 40 weekly hours spent in front of a computer. Wanting is not always possible but a desired tendency.
> As a coder, you have the ability to create almost anything. How can that knowledge not tempt you to create something yourself?

Oh, it definitely does, but...

The stuff I wrote during school, in Turbo Pascal, is just too old and completely unrelated to what I do for living now.

I also have hobbies other than programming. Since I started spending 8 hours a day coding at work, I usually spend my afternoons doing the other things that interest me. When else should I be doing them?

And now I have small kids, so there is almost no free time anyway.

The projects I did in previous jobs, I don't own the code. I was never paid to work on an open-source project.

...and this is why I don't have anything to show you on Github. Not because I don't care about programming, but because I also have a life. (Perhaps that is a competitive disadvantage. Well, I can still find a job regardless.)

Yeah, I could choose to just ignore everything for a few weeks or months, and build something on Github instead, just to get that extra point at an interview, but it would feel like building a Potemkin village. Unless really necessary, I would prefer not to do that. I hope this makes sense.

Because I'd rather help someone else make their thing. For me it's not an ego trip, but rather a way to contribute to someone else. I happen to be good at it, and it happens that a lot of people will pay me good money to do it. I think what you're really asking when you get down to it is "Why do other people have to have different motivations than me? It's weird that we're not all the same. How can you be any good if you're not exactly like me?"

My greatest accomplishments were all done as paid work for other people and I'm very proud that they could build a successful business with the things I've created.

I'm not terribly interested in going into business for myself because A) I suck at it and B) it's just not that interesting for me. I'd rather someone else take on the risk of having a cool idea and the knowledge to run a business and let me help them get the technical side under control. That's what I'm good at.

Programming is not by itself an art, so it doesn't fulfill people's self-expression needs (although it may contain bits of art like e.g. video games).

You cannot create "almost anything" with coding, it's not like I can bake fries by typing some code.

I do not write this in jest, I just find that people tend to overestimate coding.

I think coding is different things to different people. So sometimes it’s hard to sync up and have a useful conversation.

I believe you can create anything with coding. You can automate home routines. You can figure how the best dose of vitamins and supplements. You can optimize finances. It’s pretty limitless. Not to mention staring at a screen, giving it commands and seeing the result for hours just being fun. In both a meditative way and a discovering secrets way.

But for many people, it’s a job and not interesting in and of itself.

Someone mentioned painting and there are painters who make art and do it for expression. And there are painters who paint houses. They are both fine professions and really just a choice or an orientation. I don’t do either, but I think the artist painter will do lots of side projects outside her studio while the house painter is less likely to paint too many houses pro bono.

This doesn’t mean programmers who code outside of work are superior humans. I think any company who has this as a binary hiring decision is missing out that there are great programmers who don’t do it out of passion. I once worked with a programmer who didn’t own a computer (in 2005) and he was good. And there are hobby programmers who suck at work even though they have lots of personal projects.

> I believe you can create anything with coding. You can automate home routines. You can figure how the best dose of vitamins and supplements. You can optimize finances. It’s pretty limitless. Not to mention staring at a screen, giving it commands and seeing the result for hours just being fun. In both a meditative way and a discovering secrets way.

> But for many people, it’s a job and not interesting in and of itself.

I am one of those people who want to only code at work. I also enjoy programming a lot.

My problem with "coding for fun" for me is that anything interesting that I want to build gets tedious after the initial, easy and fun parts are implemented. I end up trying to fix edge cases and debug hard to fix bugs.

At that point it feels like a chore to do.

> This doesn’t mean programmers who code outside of work are superior humans. I think any company who has this as a binary hiring decision is missing out that there are great programmers who don’t do it out of passion. I once worked with a programmer who didn’t own a computer (in 2005) and he was good. And there are hobby programmers who suck at work even though they have lots of personal projects.

Exactly. People who want to do something else don't go around demeaning people who code in their free time. But the opposite does happen.

> it's not like I can bake fries by typing some code.

I mean, you'd need hardware, but cooking based on software is obviously a very real thing.

If you can code a bartender, why not a baker? https://www.youtube.com/watch?v=2DopvpNF7J4

To me, coding is more of an art. There are beauty and expression in it, not just a bunch of syntax put together.
Programming by itself can also be an art. It fit the definition of art.
What if I love other stuff more than coding ? Like climbing, or cooking,...

Don't assume every developer loves coding. I didn't meet any developer who hated coding, usually they like it, but loving it as a hobby is a different thing.

I just can’t find anything nearly as interesting to do in my own time as what I do at work. Sure, I could build stuff for myself, but it’s kind of boring!
A lot of times people have invention assignment agreements which make it really hard to have their own independent projects.
Is this actually enforceable though? Asking for a friend.
I'm sure it depends on local laws but, in many cases, absolutely if the company wants to try to enforce it. At a minimum, they can make you spend a lot of money on lawyers.
Exactly. It’s not worth it to even find out. Every company I’ve worked for over the last decade or so has been very clear during orientation: they own everything you create, within or outside working hours, and using their equipment or your own equipment. Taking the risk to find out whether they will enforce it would mean spending $$$ that I don’t have on lawyers.
Absolutely, in fact many employment agreements have wording that puts you in violation of your agreement if you don't disclose your ideas immediately in writing.
This honestly comes off as a bit superior. It makes sense when people are like how you've described - it doesn't not make sense when they are not.
When I don't do any coding over the weekend, my coding tasks on Monday are far more fun. Which is difficult because I love messing around with my own little programs and games.
That was my issue. I do love what I do, but I was doing it so much at work that I didn't have energy for my passion projects. When I was trying to do both, I loved neither. So I had to rebalance things to reach a happier median.
There are people who used to write code at home for their own personal projects and really enjoyed it, but have become too busy, tired, disillusioned or whatever else to keep it going these days. There are also people who never could think of anything they wanted to build, but nonetheless liked coding for school better than doing a lot of other things, and got good at it.

If I was interviewing a person who told me they have never created anything that wasn't for school or a paycheck, it would definitely bother me-- but I would still do my best to look objectively at the quality of their work. After all, there are many skilled electricians and plumbers who don't use their skills in their own homes unless they have an annoying problem they can fix easily.

If you’re not sufficiently excited about programming that you want to spend your free time doing it, that’s fine. But don’t expect technical employers to be all that excited by you.
Yeah, if you have a family, you are probably not sufficiently dedicated to your job anyway. And if you only have a girlfriend, if she truly loves you, she will certainly understand that you don't want to waste your precious free time with her. It's all about priorities.
If you think excitement indicates skill to the extent that you want to base your hiring on it, that’s fine, but don’t expect skilled programmers to be all that interested in working for you.
I guess coding outside of work does allow you to explore things that you might not get a chance to in the day job, which in turn might help with interview situations.
tech is moving so fast, if you're not learning in your spare time, you'll quickly fall behind. That doesn't mean that you won't be able to find a job though
This is a commonly held belief but I don’t think it’s true. There is a lot of surface-level technical turnover in software. A lot of “new framework-of-the-month” churn. A lot of project management/methodology fads: Agile and Pair Programming and Test-driven development. The tooling changes slightly every so often. But the fundamental principles and techniques of good software engineering have not changed in decades.

Take a good productive software developer 30 years ago, and time travel him/her here today and they will be productive with very little ramp-up. A bad software developer from 30 years ago will be bad today too.

Learning for its own sake is great, but don’t actively try to create and get on an unnecessary treadmill.