I hear this comment every time this topic comes up, and quite honestly, it is BS. If you're in the minority of people who are spending every waking hour productively, maybe this is true. But for the majority, it certainly isn't. I know plenty of people who spend >10-20 hours every week on:
- Watching TV
- Surfing the web
- Playing games
- Watching sports
- Going camping/hiking etc
- Weekend trips
- Fishing
- etc etc etc
When someone suggests hiking, reading and meditation as a good way to spend your free time, everyone nods along and talks about how wonderful it is. But when someone talks about building a side-project, suddenly everyone has twin babies and elderly parents with dementia who are taking up every waking minute.
There's nothing wrong with any of the other alternatives listed above. If you're burnt out from coding, go ahead and do whatever gives you happiness and satisfaction. But please acknowledge that building side-projects is eminently realistic, and for some people, will give far more happiness and satisfaction than binging netflix.
It's not so much that we can't accept that some people enjoy working, it's that they're screwing their health. There is no free lunch, staring at monitors for years on end will take its toll.
Gaming and watching TV aren't healthy for computer workers either.
No, rather a computer is a general purpose device on which I can make music, listen to music, edit video, watch moives, learn a new language, look up recipies, talk to friends, chat with experts on all kinds of topics. I don't stop using the computer "because I use it at work"
The same is true of programming and side progects. Programming is not work. Programming is something I do at work like I alos talk to people at work, sit at work, walk at work, eat at work, write emails at work, chat at work.
Programming is also a fun activity in and of itself I get lots of enjoyment out of just like I get enjoyment from those other things. That fact that I do it at work as ZERO influence on my enjoyment of it. I might not enjoy certain things I do at work but that has nothing to do with "programming" and everything to do with goals or don't believe in or busy work for the sake of busy work or having to do things someway I don't agree with, all of which disappear on my own stuff.
I think that's totally awesome =]
However in the post itself, the reasons listed for doing a side project include making money and learning new skills. One of those things is literally the thing that defines work, and the other is something that many would assume is for work.
I believe that's where this animosity towards the expectation of side projects comes from. If you want to do it and would do it without any benefits to your career, then definitely it is purely fun and in the same class as meditation or hanging out with friends. However, if you argue that you should do it to make money, personally I would say that's no longer in the same class of things as hanging out with friends.
Indeed programming for the sake of learning and programming for the sake of enjoyment are two different things I'd say. It's like when people comment how it must be so relaxing to practice piano; no it's probably fun and relaxing to play but practicing is very boring and frustrating.
The computer is a tool. It's the tool that I use to create things, and that creativity gives me life. I don't think people without creative hobbies can really understand this.
From my musician friends too, I seldom see them ever spending more than 8 hours a day doing music. As music work isn't really 9 to 5 style.
Here we're talking having done an 8 to 10 hour day programming, Monday through Friday, and then spending even more once home and on weekends.
Now, I happen to be, maybe as you are, someone who is passionate about CS. So I do actually do it as a hobby and as work. I just don't believe everyone should, and I don't want to make it the norm that you have too, because if that was the case, my doing it as a hobby for myself would now become me doing it cause I have too for employability.
It's also not my only hobby, I found that when it was, it did in fact slowly overwork my mind. I'd slowly start sleeping later, waking earlier, having issues falling asleep because I'd always be thinking about my problems. A few hours before bed, switching to a non thinking hobby has been really nice for me.
I agree with you about the stigma though. I think if anything, I'd like to encourage non-programmers to pick up programming as a hobby. It's a great creative outlet, and the computer is a tool. It can be very rewarding and so much fun. Plus, for many, it could translate into a better career for them.
As a programmer though, I think it's just up to you, but definitely you shouldn't have too.
Just my opinion.
The programming "interface" is more or less staring at text on a monitor and clicking on buttons. All the creative work is hidden and the interface is complete crap... How can that be perceived as fun or creative by someone looking from the outside?
Music making always had an aura of coolness, so even if a professional musician were to do that, maybe people would not see it as work.
When you get money for programming, that's work, but programming in itself can be both fun and work. A side-project you do for yourself should be fun and exciting.
Especially if it'a a side-project, which implies planning and goal setting. Of course if one is just aimlessly messing around then it becomes less like work.
Since I'm working 40h/week as a software engineer I find much less motivation to do PC related stuff (this includes gaming). That was different, I used to do random programming after school just because I could. During university this became less. However, I do enjoy most of my work, so there is that. And this is why I originally started studying physics - I wanted to keep programming as a hobby, but figured out I probably wouldn't really enjoy working in physics and then switched to CS.
Regarding health: I think with this you're wrong. It depends on the "how much". Staring at a monitor 8h at work, driving home, stare at a TV/monitor another 6h munching fast food, go to bed, wake up, repeat; this is probably quite bad. But get home by bike or foot (if feasible), program/game/watch TV for an hour or two, go outside, do some sport, reduce unhealthy food, and you can probably get by quite fine.
Well, I still do code as hobby.
The thing is writing code for company is not always fun, for example, your company use React and you want to try Vue, the only way to do it is create hobby projects of your own.
And there are other benefits as well, for example, if your project is useful, it may open new opportunities for you, showcase your abilities, let you make friends and maybe even allow you to directly make money from it.
> I find much less motivation to do PC related stuff
Me too, sometimes. But personally I usually found the main reason for me to lost motivation is when I realized the project I'm working on is useless -- No body will use it even I released it, so I just stopped working on it.
But you know what, some of my abandoned code can be reused when I have new ideas, so I count all of it as sleeping gold (Or maybe sleeping bug, depends on production results :)
I'd say it's nothing like work. There's no stress, no deadlines, no fixed hours, no team work, etc. For many people programming is a hobby, something that's fun and they are not paid to do, they don't do it for the money, but for self-fulfillment. Not everyone find that at work, and even if they do, they may choose to spend a few hours a week building something for themselves, to scratch an itch or whatever.
> It's not so much that we can't accept that some people enjoy working, it's that they're screwing their health. There is no free lunch, staring at monitors for years on end will take its toll.
I doubt 50hs of screen time is a lot worse than 40hs, but I'd need data to prove/disprove it. However, you don't even need to spend that much time, it could be just a few hours a week.
https://letterstoanewdeveloper.com/2019/08/02/personal-proje...
It seems to me that you can treat side projects like work, but you shouldn't. Side projects should be about scratching an itch that can't be done at work, whether that is the domain, technology or some other aspect.
If your side project is like work, pick a different side project.
If every side project is like work, as is so for some commenters, then take some time off from them. Or don't do them and forgo the benefits.
No, work is work, side-project is a hobby,it's done for recreation, for example to do some stuff you can't find a reasonable excuse to do at work. To explore and enjoy yourself doing what you love. That's also the only reason to have one..
Doing _ANYTHING_ is work if you look at it wrong enough.
Work doesn't just refer to performing a job in exchange for money.
Even the term side-project contradicts the idea of leisure. It implies goals, a plan of action and tasks that have to be done.
Professional programming sometimes diminishes the passion, I have to have side projects to keep it alive.
But I agree, there are ways to balance things, but you have to choose. You can't have everything (work, side project, family, health, hobbies) at 100% and be the best version of your self long term.
I agree, but... I used to do them for fun, for the challenge, to learn, to prove to myself that I could do it.
I've recently been working on an existing open source project. I do so because I like the software and want it to be better. I also have the background to contribute in areas that haven't been touched in years. While its voluntary and feels like a side project, it's still work.
These things are all work, it's just a question of why we choose to do them. Maybe the other commenters that dont see it as work have a bit to learn about their own motivations?
Work is what I am paid for. Anything else is either your human needs or hobbies.
I prefer a colleague's response to my question whether he has side projects: I don't like to do the same as I do (at work) here when I am home.
It's an incorrect answer, but at least it doesn't imply side projects are work.
Grab a dictionary and you'll see something along "activity involving mental or physical effort done in order to achieve a purpose or result".
Unless your side projects have no purpose or goals, they are a form of work and they require effort.
for you it is, for me and many others its fun/hobby. This is why side projects are such a strong signal to competent recruiters -this person actually likes what he does and will put passion into his work.
I could even make a case that people who don't spend their free time coding make better employees than those who do - the employer wants the employee to spend their mental energy on work, not personal projects.
The vast majority of people who are going to give you a high quality 9-5 aren't going home to program, and it would be very bad business to discount them.
(The only person I knew of who coded outside of work was honestly a bad employee. I wouldn't use that case to discount others who code for fun outside of work.)
Although that could be just me, I think it's a common problem.
I rarely watched TV, preferring to either do development or play video games (RPGs, action games with stories, as compared to FPS games). However, when you have a child you realize that, unless they're in bed for the night, you can't plan how much time you'll have to yourself. That's with one child and two parents.
When development, to me, is at least 30 minutes to remember where you left off and start being productive (unless you're monkeying around), and you don't know if you're going to have a child climbing on top of you in five minutes, even though he's totally into what he's doing now, you (or at least I) decide whether you want to try getting into the groove, likely to fail and then get frustrated, or find something you can do to be semi-productive.
After nine hours at work, plus helping get someone ready to go in the morning, plus getting him situated when he gets home, you're also mentally exhausted.
If you're doing your job right, your child is also on a schedule, which means that you're still getting up early in the morning, so staying up a few more hours is going to mean either being exhausted the next day (compounding issues) or wasting your weekend since you've been running yourself on empty all week.
I used to think the same thing as you. Then I had kids, and an expanded group of family and friends. And while you can say 'these three nights are times I need to focus on my needs,' realistically life doesn't always work that way. I wish it did, though. :|
Real life example: while typing this my son was in the other room. When I started to proofread my son had made his way into the kitchen and needed my hands. Now as I type this he's fine again. ~10 minutes of time, with a minute and a half break at about the 7 minute mark. Doesn't make it easy to keep my attention focused.
The other important difference, and the reason there is always strong pushback when this topic comes up, is that many of us believe there is a subtext that people who spend a lot of time outside work on side projects are better employees. (I mean, it isn't even really subtext, it is in the text of the OP, and I've been reading the new edition of The Pragmatic Programmer, and it's in the text there as well.) If that view wins out (and in many circles it already has), then what you see as harmless, fun, and enriching side projects are actually a job requirement, one that is extremely hard for many of us to satisfy. So we (reasonably, I think!) push back on this view because we think we're good programmers and good employees without needing to spend our evenings doing solitary work away from our friends and families.
I know plenty of people who spend every waking moment outside of work with family and friends, and a side project would mean choosing other things over those personal relationships.
Which, again, you can choose to do. I'm with the GP, though: I've done side projects, and even had one turn into something I sold, but for now I choose to spend time with my friends and family. Any TV I watch, I watch with my family. Any games I play, I play with them. Camping and hiking, I do with them or with friends. Weekend trips I take with them.
That's crazy. Everyone should be free to do whatever they want in their own free time.
>it's doing the same when you get home
That's what my colleague answered me when I asked him "why don't you have side projects?". Everyone should be able to choose whatever they want to do with their own free time.
I don't consider a side project as "the same thing I do at work", and I don't consider myself special.
> There is a risk though that after ten years you could be a great programmer with a great portfolio, but with a failing body and unhappy social life.
There's no reason this should be the case, and life is full of risks.
The key difference is the article is saying "should", and you are saying "suggests".
If someone says you should go hiking, you're more likely to get a similar response.
Personally, I don‘t intend to spend every waking moment in a productive manner. In fact the downtime, all the hiking, sports and playing games allow me to be productive when it counts.
In that sense it makes sense that you'll have a massive amount of pushback when proposing that people should just work harder or work more. Statistically, there's a high chance that a majority or significant minority of your audience will have one many, many conditions that eat up their time: grad school, parenting, caring for parents, caring for siblings, caring for friends, caring for spouses...
A side project is going to take a long time especially as your time on it is likely to be split up a lot more - so effectively far more context switching. All the other activities (except meditation) can be done more as a one time activity.
(I have started multiple side projects, but then I get busy with other aspects of my life and they get forgotten about).
1 In Most developed countries any work related to you day job belongs to your employer.
2 Doing a side hustle like this looks incredibly sketchy and is not going to be a good culture fit.
2. Please, calm down and don't rush to judgement. You'll be better for it.
https://www.joelonsoftware.com/2016/12/09/developers-side-pr...
Of course some sidejobs like a musician are ok and different to say driving an uber.
I used to work with a senior project manger whose side job was a Jazz musician but he did get a residency during the Edinburgh festival at the Balmorral
One concern I have with a few hours a week is unless the project is really really tiny, you can begin to think that it'll never get done and it fizzles into nothingness.
For example let's say you want to make X app and it takes you 2 full time months to go from an empty folder to shipping an MVP. Let's just call it 300 hours. But if you only put in 5 hours a week (about 1 hour a day) it will take you 60 weeks to finish it. That's over a year of chipping away on something which is a very long time. You'll probably drop it well before you finish it because it'll feel like it's dragging along forever.
Having watched "The Founder", when Ray Croc was selling ice-cream machines nobody wanted he was listening to motivational records where the speaker says "the world is full of educated fools" and highlights that the one quality required is persistence.
Of course, if it's a stupid idea or a useless app then persistence is also useless and it would be a true waste of time.
But if the app is solving a problem for you, it likely will solve a problem for someone else which is why a side project will always prevail with persistence.
I always think that a side project is still a project, much like your main job. The only difference is time spent on it. But it'll be the same outcome.
For me, I find that if I work on something, eventually, my interest in it wanes and other things become more important. Unless I start making significant progress, its then only a matter of time before it fizzles out. There's only so many weeks or months I can work on something before my mind craves something else.
What definitely helps me stay focused long term is to not work on something on my own. When others are involved, then when my mind starts thinking of new things, I can set it aside and say to myself "no, stay focused, I don't want to let ABC down". Sadly when ABC is me, it doesn't work very well, but if its someone else, especially someone I care about, then it helps me stay focused. Currently on month ten of a large side project with my brother and still going strong :)
You are persistent if you keep coming back to the same task and advance it.
Let’s say that for an app, and with limited time, we can instantiate this definition as: if you keep coming back to developing your app regularly during a full year, you are persistent.
Now that we have a definition, what can you do to fulfill it?
Set time in your calendar, create habits, etc.
Rebuilding the product we ship at $dayjob, and which I enjoy working on, with a comparable feature set would probably take me ~8 years fulltime, assuming I know the whole stuff as well as I think and I don't hit major blockers (e.g. I don't do UI stuff, but most work is in the backend anyway); there is virtually no FOSS to accelerate this. A lot of the features can be dropped to get to a MVP, but I suspect I'd still be working on that for 6 month to a year, fulltime, and I will not be as easily extensible as the current incarnation. So that's 1000 to 2000h with a huge amount of technical debt and magnitudes inferior to the "competition"/$dayjob.
Could I still pull that off if I wanted to? Yes. Would I enjoy it that way? Hell no.
It's tough, shipping is only the second step.
https://channels.theinnovationenterprise.com/articles/the-my...
Having to do requirements capture, design, coding, end user testing can be a hobby in itself if it's not what you do for your day job.
My last side project took me about 50 hours of effort across two weeks, taught me a lot about python, and made me ~$6000. The previous one took me about 200 hours, and made me and a friend $9000.
In both cases, I was motivated by the financial potentials (that never really lived up to what they were in my head), and the technical challenge. Getting paid to solve problems with friends is great fun, if it's not what you do for a living.
In that sense, I don't understand how some of my friends play Factorio, but then most of them are programmers, so I guess it doesn't feel like work to them...
Which I suppose is a good thing overall.
20 would be too little for me, or so I'd like to believe.
My employer allows it. Benefits other than health insurance (which is fully paid w/o any paycheck deduction) will be pro-rated to whatever you sign up for, but you can still work the extra hours for more pay. So for example if you promise 30 hours but work 36 hours, you'd get 75% benefits and 90% pay. If you promise 32 hours and work 50 hours, you'd get 80% benefits and 125% pay.
Don't work salary, work hourly. I did it as a contractor at Google so the pay was still good, but I'm not "taking" anything from my employer if I leave early. Google also has the benefit of not needing to be as efficient as possible so they can absorb some amount of reduced output.
Bill in 15 minute increments, and always be working if you're billing. If a coworker asks you how your weekends was, engage and say hello, but keep it under 5 minutes. Longer than 5 minute breaks, clock out (even if just mentally keeping track or keeping track on paper). If you work a solid 6-7 hours a day 5 days a week, you'll probably be just as productive as your salaried coworkers, so managers will only notice when they approve your hours.
Be good at working alone. Its hard to work in a team if others work 40 hours a week and you work a lot less. Other team members think if you don't work as much you're not committed (IMO a spurious correlation).
Continue this schedule unless a manager demands you work more. If they are passive about it ("we'd prefer you work more, but we won't actually ask that of you"), then continue with your 30-35 hour weeks. If you can continue doing it, it forces the organization to decide if your schedule is a real problem (and fire you) or just something they think looks weird but they are willing to deal with.
Keep doing valuable work so the momentum of keeping you even at fewer hours is worth more than letting you go.
Find some other passion work outside of work. Open source, robots, sewing, hiking, family time, etc. Tell your managers and coworkers how much you love your projects so they know you won't just say okay if they were to push you to work more. Also, finding stuff to enjoy is the point.
Push to 30 hour weeks if you can. Five 5-6 hour days is 25-30 hours a week. I'd usually have one 3 hour day when I had to leave early for therapy appointments (and I would happily not come back in to work after!) and then one 8 hour day to balance it.
Surf this wave of staying useful while working less as long as you can. In my case the maximum allowed two year contract was coming to an end and my half-assed efforts did not warrant hiring me full time (I didn't try or want that anyway). Then when looking for new jobs, I realized the biggest thing to me was working fewer hours. I applied to several places and one place I found really didn't care how much I worked. They key stipulation for me was that I would work 4 days a week, about 30 hours a week. They said that was fine, they cared mostly about total project cost not time taken. In reality I've settled in to about 20 hours a week and we're still making great progress on the project.
So in summary: be pushy, prioritize yourself, accept some risk, and once you're used to that schedule make it a requirement for new jobs. It takes a lot of privilege to pull it off so not everyone can do it, but it's possible.
Who knows, that pet project might get picked up by the enterprise as a product or an internal tool that others might use. In my past experience, some of the pet project dashboards that I made to make my life easier have been picked up by higher ups since they improved troubleshooting/time to recovery metrics.
It's irrelevant, because if coding is something you love doing, you will have many side projects and enjoy them not caring all that much about their profitability or how do they look in your CV. And if you don't, why would you want one? Do the things you love. Possibly consider changing your career (but I guess this may be tough especially if you are a good coder).
> full time job working long hours its unrealistic to spend much time on any side project.
Something I don't mention in the post is you should focus to reduce time you are working for "others". I feel not great when my friends tells me they stay at work because it's written in their contracts and they have nothing to do. Also when I hear 50+ hours a week (that I do at rare occasions), it gives me chills. It's about company culture and if they're focus in work life/balance or not. Some companies try concepts like the 4 days work week that I think amazing!
> Its much healthier to try to spend time with friends and family, or hobbies. If you have young children there is little chance.
I agree! I don't have a wife or children, but I'm sure if I had, I'd also spend time with them :)
I agree that it can be educational, however, it can also give your boss the false pretense that you are gonna do it "outside the sprint".
I personally did that mistake in the past, and I have seen people do the same. Never again. Again, the only good thing in that is the learning part and, if you want, the satisfaction. However, you can't even publish it, which means in terms of visibility, nobody knows what you do outside work.
And what when they ask you "any side projects?" in job interviews?
Do what works for you / your family. Whether that's a side project or not.
Why would you be working "long hours" at your full-time job?
It's tough but (imho) well worth having a side-project if you don't have kids. I don't, but if I did I can't imagine how a side-project would even be possible.
Find the intersection
What everyone should strive for is the side project at work. Making new tools, monitoring systems, refactoring some library, user friendly applications, experimenting with new languages. Google is famous for the 20% project, but most people can get away with spending a few hours a week on whatever they want while working. If you deliver something useful its also a good way of getting recognition.