"You need to code in your spare time to be a good developer" - I've been hearing this all the time during my career. When I had just started, I heard it a lot. After almost 10 years of working in the development industry, I'm still hearing it. I hear this phrase when I read interviews of some CEOs and they are saying: “I will never hire a developer who doesn’t code in their spare time”. When I go to interviews with some companies they ask me: “Tell us about your side projects” with the hopes of some nice story which I don't have.
But more often, I see how developers doubt themselves because they don't code in their free time, especially when their colleagues and friends are doing the opposite.
But is it that important? Does everyone expect it from me? And do I really need to code in my free time to be a great successful developer?
My answer is no.
“But hey, I love to write code and I’m passionate about it”
Don’t get me wrong. I don’t mind if someone codes in their free time. It makes a lot of sense in various different situations like with junior developers who obviously need to learn and practice. Or when you need to learn a new language or a new technology. Or when you are preparing for an interview (especially for big companies). Or when you just like coding and it’s your hobby. Or when you work on your own projects. And so on. All these situations and reasons are wonderful and great, there is no reason to argue.
My question is a bit different - why do some people expect that I will code in my free time if my circumstances are different?
Just to give a bit of context about myself - it happens that coding is not my hobby although I do like it and do my work at a high level. I really enjoy it when I see the result of my work. It's an amazing feeling to see how people interact with interfaces that I’ve built. And I love it even after 8 years of developing.
But I spend 8 hours per day for work, a third of a day goes to sleeping, and as a result, I don't have that much time left for something else. What about my hobbies? Family? My friends? I need a lot of time for all these. I need a balance. I don’t want to tell my wife something like: “Yeah, I will be right there, just finishing one more small bug” when she asks me to join the family dinner. Because I know that in that case I will have dinner alone and will eat something cold. I don’t want to miss really important moments in my life.
My hobbies are slightly related to computers. I do like practicing yoga. I enjoy bicycle trips. I like baking (even though I’m not very good at it). I’m trying to learn how to play the harmonica. I want to try new things and new hobbies, I want to feel the life outside of these computers. And how can I find enough time for all these hobbies when I have so little time left in the evenings?
My hobbies and my interests don’t make me a bad developer
Hobbies and interests which are not related to the IT industry make my brains work and think broader. I can find a lot of similarities and approaches that I can apply to work-related processes. My imagination works better. Having different hobbies also teaches me how to find that balance and spend my time accurately.
Besides, I need to rest after a full time working day spent in front of a computer. Well, my grandmother still believes that it's nonsense: “How can you ever be tired, you are just sitting and pressing buttons! And for some reason, you even get paid!” I’m quite sure that she would prefer me to find some real proper job with a lot of hand working. Because only then I would be granted the right to complain that I’m tired.
Anyway, maybe my body is not that tired but my mind and my brains are. We are not robots. I just can’t bring myself to code for another 1-2 more hours. My productivity will be low, I will probably just spend an hour opening the IDE and just building my project. My mind wants to rest by doing something different and I understand it. How often was I able to find a solution to some problem at a completely random time while doing something different? Quite a lot of times!
When I was a bit younger, I was sure that the word “burnout” is something fake just to get paid days off. I was not able to understand how work-related stress could affect anyone. But then I’ve seen it a lot of time - when people put their best, maximum energy into coding and then they were completely empty. They were so tired and bored.
So, why would my need for rest make me a bad developer? It doesn't and it will never be like that.
“That sounds great, but when to learn and study new technologies and languages then?”
I believe it should be done during working hours. Because both sides are interested in it - you want to learn something new and become better, and your employer wants to have experienced and happy up-to-date developers.
There are a lot of situations when you can try something at work. New product launch? Show a little initiative and argue your opinion on why you should try new technologies. Maybe it will improve product performance or maybe it will make the company more attractive to hire new developers. Local hackathons are another good example to try and learn new things. Ask about the study budget and allocate some time for that - online courses, conferences, just have some reserved time for it.
Of course, not all companies have these possibilities. For example, I once worked in a huge bank with a lot of specific legacy code. And a lot of bureaucracy on top of that. Unfortunately, I don’t have any nice advice on how to deal with similar situations. I just left that company, but I still learned a lot.
“Alright, but I want to catch up, I’m feeling that I’m out of new trends”
And that is totally fine. Because we can never do that - progress is way faster than we can keep our knowledge actual. We are just humans and we cannot know everything. The more I work, the more I understand that I’m getting paid for my experience building applications, not for my knowledge of the latest technologies. Yes, of course, some new grades can know all the new hyped technologies but they don’t have real life production experience.
Just want to mention it one more time - I’m not against coding in your free time. I’m not asking anyone who is doing it to drop it immediately. Not at all. Everyone has different situations and everyone should do what makes them happy. We are all different.
I’m just saying that no one should feel bad or shamed only because they have different priorities and dreams.
Maybe I’m missing something important there, some important details when someone says: “Sorry Maxim, we can’t hire you, we are hiring people who code in the evenings, bye.” Maybe I’m just not very smart. But I believe that my knowledge and especially experience (not just as a developer but my whole life experience) makes way more sense. My mindset and my abilities to learn and my flexibility are important, not the fact that I don’t write code in my free time.
And I’m not calling these companies bad places, it’s totally fine that our expectations are not aligned. It happens all the time in this industry. I cannot look nice for everyone in this world, it’s just impossible. And it’s fine if some companies think that I’m not a good developer and I’m good for nothing. It’s ok. Because, at the same time, there are a lot of companies who think the opposite and their values are aligned with mine.
Yet another banal thing to say - life is short. I just don’t have time to do things that don’t make me happy or don’t move me closer to my dreams. It’s quite sad that I realized it quite late after I had brain surgery (but I’m absolutely healthy now, no worries), but it’s better late than never and I’m very happy that I came up to that.
So, do what makes you happy and what is really important for you. Follow your dreams! Do what you love and what you are passionate about! And don’t let anyone make you feel bad about it.
Top comments (99)
Great advice, I feel guilty when my coworkers are working (sometimes) till 10 or 11 pm. I don't know what to do 🤷🏻♂️ . I literally feel like I am not in the discussion of some decisions because they are taken out of office hours
I think that's different. That's an indicator of a toxic work environment.
If you're staying up to 10/11pm working on a side project that isn't work related, no problem, do that.
But if you're staying up to that time doing work for the company outside office hours, that's a problem. For one, you have an issue with burnout. Two you have , like you said, the problem where decisions are being made behind closed doors, because they're happening at a time when noone else is around to weigh in.
That alone can lead to bad practices slipping into the codebase and work environment.
I wouldn't say it's a toxic environment as my friends are too passionate and putting extra effort, which will save me and others time for other tasks.
It may save you time now, but it can come back to bite the team later.
How do you guys work out estimates?
It'll take x number of days to get User Story A done.
But wait, a "day" of work should be 8 hours worth of work, or something to that extent. If your team mates are working 12 hour days, then the concept of a piece of functionality taking a day is askew, and it could lead to incorrect estimations and increased stress when deadlines roll round.
"You said it would only take 2 days to get this feature finished, 3 days later and you're still working on it? We need to ship it out today!"
2 days of work for your team mates is 24 hours worth of work, but for you it's only 16 hours.
Another problem is the "expectation" that your team mates are working ridiculous hours to get work done, and when that's done it'll be expected for them to do the same for the next piece of work, and the next piece.
Then you can get a resentment building in the team.
Why are we constantly working 12 hour days when the other people in the team are clocking off at 5pm?
Or worse, others on the team start to feel like they need to start working longer hours because they feel guilty for not doing it as they "aren't being team players".
Part of our job is proactively managing expectations to allow us to continually and consistently deliver work and value for time.
Working till 10/11pm doesn't mean that you're productive. Even if you're productive, it doesn't mean you bring value to your customers.
Our goal should be to be more efficient and to bring real value. It means doing more in less time. This myth of "I work longer so I'm more valuable" is total crap, leads to bad quality, bugs, unhappy customers and mental problems.
Our job is to automate things, for us and others to have more time, not being a code monkey for 10 hours straight.
I'm with you, and every other reply so far.
Nope, it is not a requirement, and in fact if it's stated as such by an employer during the interview process, thanks, but that job is not for me.
Companies/CEOs/CTOs that demand a passion for coding outside of working hours is simply an old mindset.
Sure, I write code at home, and don't earn an income from it, because I'm passionate about it. But if you require me to do so, then our views aren't aligned & I wish you luck with your business.
This sums it up perfectly. 💯
Great article, mate! Why is it only in this industry we hear stuff like this? When was the last time you heard this from a plumber, a creative director, a bank manager, a cop, an airliner pilot, a dentist, a journalist, a musician, a car designer, a team manager, a writer, a social worker, a secretary... I could go on but I think you get the point. They all take time off at the end of a normal work day, yes, 8 hours and not a minute more.
In other words, with only 8 hours to sleep, 8 hours to work, and 8 hours to commute, prepare or eat meals, and spend time relaxing, the question is:
Do you live to work, or do you work to live?
So the IT worker's life is just plain nuts in those outfits that think putting unreasonable demands on their staff is, well, reasonable. Something's very wrong here.
Unfortunately, when you put this discussion in the wider context of competition with, say, China, where the wo/man power outnumbers the West by a factor of a 1,000 if not more, you start to see we got a problem as it is not possible to compete successfully anymore. Unless we could get some AIs to do all the work for us....mmhh....food for thought.
I don't know about you, but if my brain surgeon, or even my GP hasn't taken any initiative in the past 20 years to read up on their specialties, since graduating and going through residency, that is going to worry me a lot.
Nobody is going to sit in their appointment with their GP, while they read published papers or practice a new technique (or new to them, 30 years into their career).
Somebody needs to be the "first" for that doctor, of course. But hopefully not with a scalpel in one hand and the journal in the other, with 0 prep time.
Likewise, if you are writing the code for a pacemaker, or a bank login, laproscopy arms, self-driving vehicles, or aeroplane pitch autocorrection, I don't want those things to be your "first time" while you are writing the production code.
Does that mean that I think people in those positions should be cramming all night, after a 10 hour work day? Not at all; I think that companies should have enough runway to support learning during the workday, and should be offering mentorship and apprenticeship models.
But, in the human-wellbeing spheres, where companies are clearly not providing that atmosphere, I do hope that there are some developers who do the responsible thing, and research the knowledge gaps of their teams/themselves (while also advocating for the wellbeing of the team and the consumer).
I don't want "I don't know what I don't know" to be the reason for reading about "this is how I learned that we shouldn't just throw an exception in a pacemaker" or "now I get why TLS and intranet are important for bank accounts".
I absolutely agree with you, critical systems should be done by people with knowledge and experience. I like your analogy with doctors, but there is the difference between doctors and developers - developers do have time to learn even during working hours. And unlike doctors, we can ask for a code review, or just ask colleagues to help if I stuck somewhere.
Besides that, I could be incredibly naive but I think that modern companies can not just stay in "no support for learning" approach. Those companies should do something about that to stay attractive for developers. I believe that we live in a time when we can choose the environment where we want to work. But, again, I can be wrong here.
In an ideal world, I completely agree with you, and that is how everything should work.
I can say, both from my experience consulting, and through helping friends enter the industry recently, that we don't live in that world. Not everywhere, at any rate.
Boeing didn't need experienced developers, because their codebase was so mature...
(not a joke).
Some too-big-to-fail consultancies start by signing contracts, and only interviewing to hire after the ink is dry.
And not just for general consumer websites and admin panels, but for anything else they can put programmers on.
Even if a company wanted to do the right thing, if they were entering a new space (let’s stick to pacemakers, just as an example), they have a bunch of devs that have a bunch of experience with high-level hardware, say...
...but none of them have any experience with medical devices, regulated devices, or mission/life-critical devices.
These people not only can't ask each other for code reviews, they don't even have enough knowledge and experience to hire the correct person to be able to do so.
And the management might assume everything is fine, because the regulators will make sure it's safe... in a lot of industries, though, regulators just check your documentation and approve things based on how similar they are to things that have been done before. Rather than being the pinnacle of excellence in that domain, they likely don't have any hands-on software/hardware experience in it (again, see Boeing).
And so it is, when you have consultancies asked to come in and be experts at something they are good at, but touching some completely novel domain...
...or when you have expanded too quickly, with a lot of new developers, in a tricky domain, and have also burned out (or laid off) your experienced developers, so nobody is left to course correct. Or the ones left are unfortunately antisocial or overwhelmed.
Also, given recent events, there is a lot of competition for a reduced number of roles. At least around here, and so a lot of people are being asked to take a lot of responsibility with no safety net (because there is none the employer is willing to give). Much of me wants to say "just let it fail and they’ll learn their lesson”. And then the other part of me thinks about what that means for planes and pacemakers.
Not suggesting any of this is good, or right. But it's also not a solved problem.
Thanks for such a lengthy response. I liked both the original article and your article!
@seanmay (I couldn't reply directly to you due to threading in dev.to)...
I work in a heavily regulated environment - to be able to conduct a sensible code review, you don't need specialists - you just need people that will be honest.
I'm the most senior person on my team, in many ways (length of time for the company, length of time in the language, most responsibility yadda yadda yadda). I'm not, however, infallible. I'll happily have anyone that can just about read the language and still has warm blood critique my code.
End of the day, if a senior looks & spots a bug, great. If a brand-new-first-week-on-the-job junior looks at my code & doesn't understand what it's doing, I've done something very wrong & it needs re-work. I want them to tell me they don't understand, so I can re-write it and I can help mentor them if that's appropriate. Or they should be questioning me on why I implemented the way I did.
If the same junior reads the ticket I'm working on, and doesn't understand it, then we all did something wrong during Sprint Planning, because we accepted a ticket that couldn't be "picked up by anyone" (caveat, if all they need is a domain specific dictionary, that's fine).
To go back to your medical analogy for a moment - I'm perhaps a little strange. A while ago, I went into hospital for a scan on my shoulder. Being that there's nothing particularly hard for the CT to see, they had to inject dye. Right into the middle of my shoulder. They had a student doctor on duty, and asked if I minded. Before I replied, she said she'd not done this exact procedure herself before. "Sure, you've got to start somewhere... if you're confident enough to give it a crack, get on with it."
25mins later (for a relatively straight forward injection) she's still poking my shoulder & rummaging around. Then she says that she needs to go get someone else, because this isn't working the way she expected. More experienced doctor comes in, 30 seconds later, job done.
She couldn't apologise enough, but as I see it, she was a junior trying her best, and she asked for a peer review so she could learn. Can't ask for much better than that, and I'm sure she won't want to make the same mistake in future. (turns out, I have a misaligned A/C joint)
Doctors have well defined CPD, they also have one of the longest working hours and some somehow cram in even more work, they certainly get some time paid for the CPD and research.
I work in healthcare development, currently get a day a week for training, other local based companies do similar.
Theres much more important things in life than work, it only really exists to keep you in food, warmth and shelter.
But if your fun is coding, great but it wore off in me when it became work, riding my bike, walking in the hills and interacting with people from different backgrounds is more my thing.
So I'm totally with this.
You just have to know what you expect from life. It's not about the wider context of competition.
I personally want to spend more time out of computer after my 8 hours.
As he said, I love coding but my work/life balance is important. F**ck the competition.
If it's hackathons, okay. If I just want to compare to others, not for me ego but to know if i'm still up and up to date, okay.
My actual job enabled to take days off something unbelievable from what I've seen in the companies in my country and everytime i take some vacations and when i come back my productivity is boosted
These other professions do require extra work (maybe not a secretary) and a constant pursuit of knowledge and skill, but it might just be invisible to someone outside of that profession.
Maybe the question is what does that extra work achieve? How is it recognized on the job? Seems like maybe the author is saying if that extra work isn't reflected back on the job, why spend time on it. Maybe what he's looking for is the opportunity to learn and apply knowledge at work. Does the employer pay for conferences and classes, etc?
Some employers are not convinced coding is real work. I've always avoided such workplaces.
I've done a bit of full circle, used to be a dev, went to be a teacher, then came back.
the expectation in most careers is you "do a little more". Teachers work until 9pm most nights in term time and then at least a few hours every weekend. yes we got ATTO (all that time off), but we took work home with us to do in that time (in my 6 weeks holdays, i used go back to work after week 3).
I think most careers where you are well paid there has to be a little bit extra, where you keep up skilling with trends, but over time that becomes less.
first time as a dev, i used to spend my nights reading and practising CSS/PHP etc. but over time that got less so i didn't have to slog it out ever night (which is the same in most sectors as you get more comfortable in the job). as the author suggests he's a Senior, it would be expected he has mastery over the tools, now it would be less work to keep on top of the skills.
as some have mentioned - it's a work-life balance, but there will always be an expectation to put in "a bit more" in your free time.
I'm a Senior Developer, my partner is a High School Teacher.
She has a degree, and teaches 3 subjects to classes of 30 or so kids, at GCSE level. I don't have a degree. I paid more Income Tax this month than she received Net.
Don't even get me started on the types of behaviour from the kids (and parents) that she has to put up with, as well as working weekends/school holidays, sleepless nights worrying about the vulnerable kids in her form group that she knows Social Services have been to talk to at home etc...
I clock off at 4pm, and with the odd exception of major incidents, don't do anything that my employer isn't paying for (or giving time in lieu etc).
In some professions, such as Teaching, sure, they expect you to care about the kids... and you can't exactly mark homework while teaching a class... Some might say that 9-3 allows you a few hours per day to do the work, but then what about Teacher Training sessions? What about the parents that want to report the fact their child is being bullied to you? Similar applies to Nursing... are you really going to let someone die just so you can go home & feed your cat on time? Probably not... Would a Priest kick you out of a confession because the soaps were on TV?
Then there's development... sure, I write code in my own time & don't earn an income from it. Sure, I keep up with trends, which thanks to Google Now is a matter of unlocking my phone & swiping left. Sure, I think about architectural patterns etc in the shower.
But, other than me being slightly more productive in work, nothing I do in my spare time directly benefits my employer.
I think the difference is a job vs a Vocation. Software Development is a job you get because it's relatively easy & keeps your cat getting fed. Teaching (etc) are Vocations, that you get into because you want to make a difference to other peoples lives. No-one will die if I don't write 30 lines of code today.
Teaching, as you likely know all too well, is definitely not well paid. Maybe some got suckered in on a bursary, but the difficulty of the PGCE will quickly turn them into drop-outs.
as an addendum...I will say....I never worked as hard as when i was a teacher. Dev-ing is about self motivation and self-study. Teaching is constant and if it doesn't get done, there is trouble + all the additional stuff you have to do to keep on top of it.
Work is work. My free time is mine. I don't work on work in my free time. (See my response in the dev.to/sloan/why-i-left-3-consecut... post.)
My hobbies are... well... programming. So I'm in that category of folks who do programming for fun and leisure. Guilty as charged.
But my coworkers have other hobbies that they engage in. To name a few: golf, running, exercise, car mechanic, photography, astronomy, painting, standards committee, or forensic criminal investigation. And they're all fabulous developers.
No! Maybe in the beginning when you're just getting into it and in full "learning mode", soaking up knowledge like a sponge. But once you're employed and busy fulltime at least 40 hours per week (likely more) then why would there be a requirement to do coding in your spare time as well? There's that thing called "work-life balance", spending time with family, sports/workout, recreation, hobbies, there's more to life than coding :-)
I think the biggest argument for coding in your spare time is the willingness to better yourself. That's why I do it. That's why recruiters look for it. To say you are never going to do it because your life experiences are more important in my opinion puts up a big barrier to your own personal development. If you don't have time make time. Unless of course you know everything you need to know already. Or work for a company who is prepared to allocate and therefore pay for personal development. Not everyone works for a company with that luxury.
True and agreed, up to a degree - if you think it's important or even necessary, and you enjoy doing it (that's important I think) - yes, then by all means go for it - but only if you think that it's valuable and important for yourself, not because someone else says so.
Nice article and nice points in the answers overall. Here are my 2 cents:
Very nice 2 cents :)
I agree with it, yes. It depends on your goals and dream, I believe. Let's say, what if I want to grow in the management path? Then perhaps I would need to read and learn quite different things, but not coding.
Of course, when you code after working hours - you can reach some goals faster but it's so subjective, everyone has so different pace and skills. I simplifying it but someone can learn and start to use some technology in few hours but someone else needs few days. And that's fine, we are all different. I know really great developers who don't code after working hours, but they have actual and modern knowledge.
If you wan to grow as a technical manager (out of hours) the way to go is around the lines: reading managerial oriented books, reading about soft skills, try to exercise by building trust and good communication with others etc. Thats why I mentioned that it is not necessary to code, you just need something that makes you better at your craft.
Thats feasible, of course. Usually those people have built already diverse experience and can grasp new concepts faster than others or work to companies where they do continuous learning as part for their jobs (eg early startups)
Same goes with the "just learn one language" mentality that is emerging. You might never need half the things you learn at the university, but if you need to "grow" (eg become an architect, so you need to be well rounded) you will eventually need to catchup with the reading.
Good article, though at the end of every interview I've led, I always ask if the candidate enjoys going to Dev meetups, or has side projects. It doesn't matter, but I love seeing general enthusiasm for their craft. I've worked with developers who admit they "just feel in to it", and it generally showed in their work...
Sure, I'm 100% agree with you, I also enjoy visiting meetups or conferences. But it's slightly different I think, I can visit these events for different purposes - education or just networking. But I do it because I want to do it, not because someone expects me to do that.
Thank you for this great article! I’ve been just hired for a new position in a big company as a Software Engineer Intern. Although I’m sure in the next few months I’ll fully commit myself to work as well as I possibly can I extremely value myself as a person thinking that my well being is automatically applied to other’s needs. This way I couldn’t agree with you more. Think about the time you spend in your life with people you love. Why did you choose to commit yourself to do hard work all day long? I want to be a great person, father, spouse. Whatever goal you have it’s always connected to other people in your life. Take your time to stop and appreciate every second you can spend with the one’s you love.
My current theory is that while you don't need to actually do anything hobbyish outside of work hours to be a good developer, you DO need to be curious about code and what you can do with it to be a good developer, which for many people will lead to coding in their own time, but it is not the coding in your own time itself that is beneficial. I think that without curiosity, the return on investment for learning new technologies, languages and techniques is far too delayed for any human to be good at it, with curiosity there is instant positive feedback on this exploration that translates to much more knowledge and much better thought out code over time.
Really interested in what other people think of this!
I agree with you. Personal life is more important than work. I love what I do (I’m a developer, too) and I spend my spare time coding and deepen my knowledge. So, in my case, passion and work go hand-in-hand. But even under these circumstances, I want that after 6PM I do what I want. That “what I want” will still be 90% related to development, but that must be something I decide.
This is a strange industry we have for sure ^^ This hustle porn feels really gross to me. You HAVE to code overtime to make it. Ew, disgusting...
Great athletes understand the importance of rest, so should we. I've always like the speech of DHH and Jason Fried from Basecamp about that. You don't need to work 12 hours a day.
I've realized quite some time ago that working 12 hours a day while being exhausted and burned out was FAR LESS productive than working 7-8 hours a day while getting solid sleep.
Thanks for the article.
I've been coding professionally for nearly 25 years. I started learning 10+ years before that.
Every "great" coder I've ever worked with or encountered in the industry has coded out of hours.
Plenty of people play the piano, but do you think that the true greats only do it 9 to 5? Why would it be any different with the craft of software engineering? Work hours will take you so far. Weekends will take you further.
So, how far do you want to go?
That’s true, sure.
Of course, coding outside of working hours can take you further, but you really should want to do it - to spend your time to be a better developer. And it’s absolutely fine, my point is that you decide what to do - go deeper because you really love it (and then, perhaps, achieve results a bit faster) or just learn it with a different pace and different environment.
I also think that learning abilities depend a lot on personality - if working hours are enough for studying then it’s great.
Great article brother
Years ago I was in the middle of that rush, just code day and night though I get to know lot of stuff but it doesn't make any sense, there was feeling of void inside which in turn decrease my productivity.
After sometime it feels like burden to me as a result I stopped coding for almost 1.5 years.
Last year I started it again but now I do coding when I feel it from my inside , created separate space for it .
Some comments may only be visible to logged-in visitors. Sign in to view all comments.