38 comments

[ 2.8 ms ] story [ 74.7 ms ] thread
I very much agree with this.

I'm not always one of those people, but sometimes I am. It seems pretty simple to me.

It's also perfectly OK to not write code at all, that's what the vast majority of people do. Which isn't to say if you're not writing code in your free-time you should quit altogether. It's just to say that what's "OK" isn't a terribly high standard.

I've always felt guilty if I'm only coding at work, because I've always felt that if my employer is willing to pay me X dollars an hour to code, then they must be getting at least X dollars of value out of my work, and likely they're getting much more. So I felt like I was letting myself down if I wasn't also using this skill in a way where I could capture all of the value I was creating, rather than sharing it with my employer. Unlike with most professions where you can't really do the work outside of a larger corporate setting, programming all by yourself can actually produce very valuable things, that you can reap all the rewards of for yourself.

But not everyone thinks this way, and making progress on programming projects by yourself is very hard, especially if you also have a full-time job. So I agree with the author about the ok-ness of not doing it.

The value of the work you do at home is a small fraction of the value you produce at work. Employers risk a lot of money on engineering, but even more on marketing, sales, product management, support, vendors, operational processes, legal, infrastructure, and more. Each of those areas acts as a multiplier on the value produced by everyone in the organization.
Is it? I'd wager most human beings can't just turn off their head when the clock hits 6 pm. So you will think about work, think about problems at work and your mind will inevitable work on issues you experienced at work when you sleep.

Sure, none of it visible, but I find the way we think about productivity highly questionable.

I meant my comment in the context of the person I was replying to, who was considering working on something at home that is unrelated to their day job.
In my case the work I did at home eventually turned into my company which now has all of the things you're describing to better leverage it. But it all started with high leverage work that I did all by myself.
I always want to tell people things like this, to take care of themselves and not overprioritize work.

At the same time I've never done that and it's in large part why my career has gone so well.

It's "OK" either way, live life how you want to. But if someone asked me for career advice and said they don't know how much time they should spend outside of work on programming, I'd have a hard time telling them "no time at all".

If your goal is to advance your career, yeah, my advice is to program in your free time.

If your priorities are different - maybe your career is already set, and you want to focus on life - sure, don't program in your free time.

Exactly. Everyone is free to choose his priorities. If you priorities are family, hobbies, or any myriad of things, that's amazing! But it will be probably be a bit harder to advance in the field than someone who lives and breathes code every day. That's just obvious...

I find myself right at the middle, I don't code much in my free time but I do like reading programming books and learning about new topics and paradigms while only doing basic exercises now and then. I catch up on new technologies even if I'm not using them at the moment.

Depends on what you want out of a career too. The big FAANG type companies don't tend to care at all about your GitHub, so "practice whiteboard problems" is better advice for someone looking for that of job.
I don't think any company cares that much about your github. It almost always comes down to the interview.

But programming in your free time will (likely) make you more effective in your job, garner recognition/ place you in a programming community, teach you about new problem spaces, etc.

So while that may not help you move from job to job (I'd argue, however, that it does), it'll help you accelerate your career within a company.

I don't think it's contentious to say that practice will improve your skill, and improving your skill generally leads to a better (by some definition) career.

> I don't think any company cares that much about your github. It almost always comes down to the interview.

Personally, I would weight a great GitHub more highly than an interview. But great GitHubs are very rare.

Sure, I would too. Interviews are mostly stupid.

At small companies where you have more wild-west type procedures you can probably get away with saying "Github is good enough", but my experience is that even mid sized companies start to put all of their bags in the interview basket.

I would like to see evidence that, say, 10 hours a day (assuming 2 hours of free time programming) yields better results than 8. It's plausible, but it's not at all obvious.
Me too. I can't say one way or the other, I can only speak to what I perceive in my career. I believe I've made it this far, in part at least, due to the extra hours I've put in. I believe I'm a much better programmer for it too.

But I also put way more in than an extra 2 hours a day.

> The big FAANG type companies don't tend to care at all about your GitHub

My feedback from Google was to put more code up on my GitHub (and I already had hundreds of thousands of lines in a major open source project on there.)

I doubt that the feedback Google gives to candidates is valuable (seems like it wasn't for you). I'm surprised they give any at all since they are probably afraid of getting sued. If you got anything back, it's probably been so filtered down from the original pages of feedback the interviewers wrote that it's meaningless.
I've always assumed that people telling other people this are either delusional or are actively undermining their competition.
Why would people not prioritizing their career be "delusional"?
> If your goal is to advance your career, yeah, my advice is to program in your free time.

I don't know how long you've been in this game, but I'd say most programmers I've observed don't need to program at home to advance their careers. Programming skills don't end up being the bottleneck. By the time the other necessary things are in place to advance, their programming skills have been more than sufficient for the next level. YMMV

I agree - I think putting in the extra hours is way more important early on in your career. Eventually it isn't going to pay off the same way (though I think it still will, just less).
> But if someone asked me for career advice and said they don't know how much time they should spend outside of work on programming, I'd have a hard time telling them "no time at all".

One of the most interesting hiring measure one my teams held was whether the new hire has a hobby or not.

Obviously we were in a talent rich environment (Bangalore), where this was the easiest proxy to judge a senior engineer's treatment of a junior developer's time - we could find really talented people, but a lot of them drove everyone nuts.

Indirectly, a lot of the qualities we were looking in people came out in the way they expressed their hobbies - there are lonely hobbies, group hobbies, competitive hobbies and entirely leisure hobbies.

Working with those folks, I've seen books full of stamps from countries which don't exist, played with trillion dollar bills from Zimbabwe, heard free bird on the guitar too many times, been inspired to run marathons, learnt to solve rubik's cubes, done support car for motorbike trips, "waterboy"ed soccer games, umpired cricket matches ... even the odd "do you even lift" bro in there.

There's been the coders too - but even those were super interesting. Home automation systems, car dash hacks for phones, wall clocks from tablets (I too wrote a Sudoku hinting solver, because my mom loves it).

That ended up with "Get people who have weekends" as a result.

> If your goal is to advance your career, yeah, my advice is to program in your free time.

I'd tell people to not do it in their free time, but spend dedicated time for it as you prep for interviews.

My general "get better" advice would be to "understand something and get writing, draw diagrams" (I think jvns.ca lz77/huffman blog is a standout example to aspire to).

And it is also perfectly OK to only code things needed for your employer at work to the level justified by the salary, and then turn around and create awesome things for yourself in off-office-work time, if this is something one enjoys.
I read this as it was ok at work to only code and not do meetings or any other non-coding activities. I guess other people have different problems.
That's also how I read it; the intended phrase is 'to code only at work'.
It's perfectly okay to do whatever you want to do outside of work. I took slack off my phone more than a year ago and it has been absolute bliss.

I have a hard stop and never work on work related things. If I want to code, it's for me and for fun.

I notice that it's mostly non-coders who are always "you guys should work harder and be more passionate about your work!"

If I have a coding job, I struggle to code outside it, and prefer doing other creative projects. If I have a management job, I really enjoy side projects and hobby coding outside it. It's like I only have 40 hours of coding creativity per week in me, and if I'm not getting to do that at work, then I enjoy doing that for fun.

Good life advice, possibly bad career advice? The top flight engineers that I know are always working. Not always on work related things, but always working. Hard to tell if it's a 10,000 hours type of thing or just passionate people don't feel like it's work. All the same I guess.
I think, to be fair, the article is about it being okay to be a software worker in general and not be breathing it 24/7.

It's not evangelizing about how to be the 1 in 10,000. It's rather brief opining about feeling comfortable not being one of those people, but rather one of the surely skilled people who fill out the industry—like most skills.

So I guess it just depends on your career aspirations, and your life aspirations. So yeah—all the same!

Here's the thing: you get better at something the more time you spend on it. Someone who's been coding for 5 years but codes in their spare time is going to be as good as or better than someone who's done it for 8 years strictly on the job. And the effects don't stop, those who code in their spare time will always be outpacing those who don't and the gap will always be growing between them. Yes, it's perfectly OK to only code at work - assuming you understand that your career will advance at a proportional pace.
That depends on the number of hours you're doing. If you're only coding at work but doing 70 hour weeks, you don't really have the time or energy to code at home.
For a discussion about maintaining a healthy work/life balance, that sure is far from it.
1) Most corporate software doesn't have that high of a quality threshold. You don't have to eat, live, and breathe code in order to produce good code that works, especially with today's tools and libraries.

2) Some people do better if they have an opportunity to decompress at home. Their subconscious works on tough problems while they're relaxed or asleep so when they go into work the following day, they're closer to a solution. An opportunity they might've lost if they coded in the evenings after spending all day in front of a computer.

I'm always interested to hear about when people consider programming a passion. I code outside of work, but I don't think I would call it a passion. I'm working on business ideas that I hope will some day be successful, or i'm sharpening skills so I can get higher paying jobs in the future. I wouldn't ever code outside of work without the promise of some other return.
I’m sorry if this sounds bad but I frankly think that computer programming is... not that interesting. I get satisfaction and pleasure from coming up with a good way to write some code, but I’d rather read something interesting from the humanities, read a math textbook, exercise, socialize than write code. Even study algorithms or complexity (not my favorite academic area but still quite interesting). (About to get even worse) I just feel that the field of simply programming is not so deep to require “passion” etc. beyond the entry level. In my worldview it’s just technical work and I feel sort of similar about passionate programmers as I would about some guy who is a plumber who is so passionate that he spends all his free time investigating plumbing. I don’t really see the point beyond doing a reasonably good job and taking some craftsman type pride in accomplishing a solid job.
I sort of agree and disagree.

from a business perspective, yes, it is perfectly ok to code your work hours.

Now, depending on what your work hours involves, it may not be enough for you to achieve your professional aspirations, in which case, taking the time to code outside of work hours is a good plan.

It all comes down to what are your personal strategies and goals (including family and all your interests/hobbies), what are you risks ( like your skills being too specialized or your skills becoming redundant) and how to mitigate those. Your job should be a piece of that overall personal strategy.

I've found my programming skills aren't the main driver in furthering my career. It's soft skills, organisation and being able to prioritise.

I have had periods of 6 months where I didn't write a single line of code. Sure, you forget how much you miss it once you start again - but it certainly isn't the driving factor in my career any more.

Engineer @ Fortune 500

People's free time is just that. Their free time. It's perfectly OK to do anything you want with that time, and no one has the right to tell you otherwise.

With that said, I think it's a lot healthier to have other hobbies outside of coding. It certainly helps with creativity and generally not becoming a robot. Not to say coding as a hobby in addition to your profession is unhealthy, but only coding in and outside of work could be.