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.
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.
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.
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.
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.
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...
20 would be too little for me, or so I'd like to believe.
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
Your free time should be about rest and recovery, not about grinding out even more code.
Even if it looks bad on your CV
You're an adult, do what you want in your free time.
Edit: softened the response a bit because I do agree with the parent that you also need some rest and relaxation. :P
8 hours per day is already pushing it.
One of the huge benefits of side projects isn't to pad out your CV, but to decouple your career and your professional life from your employer.
When work sucks family, friends and hobbies can be great at taking your mind off of your work problems, but they can't really free you from the fact that one company controls not only your income, but your entire professional identity. When you do work that is recognized outside of your office, you own that work and shitty managers can't take that away.
Not everyone has to be start their own business, but I highly recommend that everyone "owns" something related to their livelihood outside of their 9-5. It means that friends, family and hobbies don't become merely a means of "recovery" from an oppressive job, but things that I can honestly enjoy more because I have an identity outside of my employer.
This view that everyone must be passionate about programming is dangerous. What does "passion" mean - working an extra 4-8 hours every day on some random side-project to prove to a hypothetical future employer that you are "passionate"? I don't know if that is what "passionate" means, but I know that for junior people I have in my team that I will repeatedly bang home the need for work-life balance if I ever catch them sending emails or submitting code late into the evening.
That said, if you enjoy spending all your work time coding and your spare time also coding, sure fine go ahead (and I think that probably all of us go through this from time to time). But I really don't think we should be encouraging that you should be trying to hustle a genuine revenue-generating side business as well as your normal 9 to 5. I fear that it is unhealthy to set these expectations that you need to be working two jobs simultaneously.
I do all kinds of random side things (fewer now that we have kids). None have a purpose to prove anything to a future employer (or anyone else beyond sometimes my family [demonstrating to my kids the value, or even mere possibility, of doing more than passively compnsuming, for example])
Many of humanities greatest scientific discoveries and works of art were 'side projects'.
It's better than lounging around like a lemon doing nothing with your time.
We're setting expectations for and normalising something which is not normal IMHO.
By all means do side projects if you want, but don't feel compelled.
I do have side projects, most of them never come to an end, after I learned what I wanted about programming language, framework, OS, build system, whatever.
What I am definitely opposed to is the expectation that I have to transform my 40h week into a 60h one just to keep some companies and head hunters happy.
I play with tech when I happen to have some time available to myself away from family and friends, while in business trips and such, and not to fulfill some implicit passion requirement.
Even if you want to improve yourself professionally, coding is not always the best option for everyone: you can study more the industry, domain you work in, improve your communication skills, build connections, improve your physical and mental states, draw, etc.
That being said, I think the main point that most people fail to get across about "side projects" is that they don't have to be programming. I play music with a band in the area and would very much consider that to be a side project.
It would be a much healthier exercise if we focused the narrative on doing anything you enjoy outside of work.
How much self care you need and what constitutes self care varies tremendously from person to person. High energy people may actually need outlets for that energy so they don't make themselves or other people crazy.
Nadia Commenici was enrolled in gymnastics at age five in part because she was breaking the furniture at home. I have heard that Chuck Norris does two workouts a day and makes everyone crazy if he skips one of them.
If you have it to give, directing it into something productive with potential payoff is good advice. But for other people it's a case of "You can't get blood from a stone."
Most people don't do a great job of speaking to all use cases. They tend to speak to the one with which they are familiar. So then you get these situations where one party says "You should do X!" and some people reply "Absolutely not. You should do Y instead." Both are typically guilty of not including any provisos or qualifiers and talking like it's universal truth.
Why assume that that's the only non-work option out there? There are plenty of productive non-work things that you can focus on. Exercise will benefit you in numerous ways. So will learning about nutrition and how to cook. I would say those are both benefiting the person more than repeating what they do at work for 40+ hours a week.
I like to refer to my kids as my side projects! As they get older I would like to do things together which to me seems like the best option.
Sometimes it is required by licensing and professional bodies for those occupations, other times it is optional.
Sometimes it is compensated by employers and other times it is not.
It can include: participating in conferences, meetings at informal local professional organizations, independent study through journals or other professional publications, coaching/mentorship, and personal time spent working on career-related research and development.
I expect my doctor to spend at least some time during the week while not seeing patients and attending to administrative tasks browsing professional journals to stay abreast of the the state of the medical art.
I don't understand why there is a reflexive revulsion to software developers having a github where they throw up stuff they've tried out.
Unless software development is less of a professional occupation and more like wage-slave drudgery.
Grocery store cashiers don't typically spend their down time reading the quarterly "Proceedings of the Supermarket Checkout Professional" to stay up-to-date on cash register developments.
Civil engineers do typically read civil engineering journals in their spare time, at least all of the ones I know do. A few nights per week, for a little while, they'll sit in their recliner after dinner and page through a civil engineering magazine and occasionally jot things down in a notebook that interest them.
I don't think programmers are exposed to a level of stress that requires more "rest and recovery" than a physician.
When I program at home, I don't "grind out even more code" in the sense that it's in any way a continuation of what I do at my day job, more than watching TV, reading or browsing the web would be. I work on totally different projects, unrelated to what I do at work, and I do it for myself under no pressure to perform. The playing field is very different.
R&R can be almost anything, but don't make it look like work and certainly don't do it because you think it'll make you a better capitalist.
I really want to do side projects (I’m getting a degree in machine learning and google colab is free) but I have a job to go to, classwork to do, tests to study for, groceries to shop for and dinner to cook because I can’t afford instacart or delivery...and then I read posts like this about the joys of side projects. It’s really depressing.
1. Traditional universities schedules do not work with a full time work schedule. Even getting information on admission and such is a pain because it's all geared towards HS seniors.
2. Most online bachelors are either post-bacc or require me to have preexisting college credits (I went to a CC a couple years back and quit after a month so I have nothing). A few others often a handful of limited degrees such as Nursing or Business or a vague "IT". The latter seems to be the case with most adult education programs.
I suppose I could could take a handful of weekend classes at a community college and then try to get into one of the distance learning programs, but I dont want to spend a decade to get a degree
Though I do spend a couple of hours most weekday mornings learning stuff I want to learn. I get up about 5 spend a couple of hours studying and then head into work. The nice thing about studying on my own, is that I can take a break if I need to. Like right now work is real stressful, so I decided to take a week off studying.
I wouldn't stress about doing more than you are right now! Getting a degree is just as good if not better than any side project! Take a long term look at the skills you want to develop and maybe map out how to get there after the degree is finished. Good luck!
I don’t think there’s enough discussion in spaces like this on how hard it is to continue education while working full time. Working full time is already hard enough. Life is hard enough. We in tech like to pretend that ours is the most meritocratic of industries, but we also contend with job postings that wouldn’t dare a second glance at a candidate without an advanced degree next to their name.
I just wanted a skill set that couldn’t be as easily outsourced or replaced by H1-Bs so I could make art with A.I.
Shit’s crushing.
[0] This has probably saved me more money than I would get from a side project.
Another thing is, I love reading code, so if I see an Open Source project that does something really interesting, I'll read the code. If there's a particularly tricky piece of code, I'll print it out, grab a sharp pencil and go sit on the back porch to trace through it and understand it.
I don't do side projects. I don't have a github account. But I do code a lot. And I do read a lot of code.
You just don't have a consistent approach to self-marketing.
That's fine. But a couple of days to set up a blog may pay you back.
Me, I'm mid career, and wish I hadn't focused so much on doing more programming in my off time. Most of the side projects I worked on never really came to any sort of long-term fruition, and I'm not even sure that they were that helpful in my career. What really helped was being able to demonstrate domain expertise, and I built that up by becoming less focused on programming, and spending more of my work time just talking to people and understanding their business.
There are two big problems with just working on raw programming skills: First, if all you are is a programmer, then you're fungible. The only programming skills that aren't particularly fungible are skills in entrenched-but-uncool languages like COBOL and RPG. The cools ones are cheap; anyone who can stick to a MOOC can build up a portfolio of side projects on popular technologies. On the other hand, domain expertise is very difficult to replace. The resources to build it up typically aren't publicly available, so they're less common.
And there are plenty of side projects you can work on that give your brain a break, or at least a change of pace, while still looking good on your CV and opening up job opportunities you might not otherwise have. Lately, for me, it's been learning languages. It's a lot easier to fit into a life, because you can do it while commuting or doing housework. Having a business proficiency can definitely open doors. And, once you get past the beginner stage (which is best undertaken as a solitary pursuit), it's a _great_ social activity.
However...
> you're early career, I get the idea that you are anxious about your CV and your job security
From reading the article, I didn't get this impression about the author at all. I strongly got the impression that the author is mid-career, and that they feel their career has benefitted from side-projects (I still don't necessarily believe this will be the case for most people, but certainly can for some).
What about the article gave you that impression?
Side note: I think outside of career progression, side-projects have many ancillary benefits and are very worthwhile.
And I also agree with mumblemumble, that later on, you might want to focus on some specific skills and make better what you already knows to sell yourself as a specialist, and that's where you can make $$$?
just my 2 cents
I pity those who are in this industry only for money :(
It sounds so miserable not to get any joy from your profession . What side project can we talk about if you can't wait to get out of the office, to run away from the code to literally do ANYTHING except coding.
What creativity and progress can we talk about when we have a bunch of miserable oompa loompas.
That being said, I also realize that there's more to life than writing code. I spend all day at work writing code. The last thing I want to do is go home and write more code. There's an entire world out there that I won't see any of it if I stay inside locked to my computer 24/7.
Why does everyone HAVE to have a side project?
You don’t have to have a side project.
Passion is so rare these days, isn’t it?
In all likelihood, the people managing you aren't technical and have a very small window into the work you're actually doing. On top of that, even if you can outperform your colleagues by as much as 200% by working more or working "harder", there's no point in doing so because our work world doesn't really understand how to deal with exceptional individuals. You'll just get 15% more pay and some meaningless title for all of that hard work anyway.
So you work up to the point where people tell you "that's amazing", then you go work on side projects. Simple customer management. They're happy, you're happy. No more exchanging hours for dollars, we all get what we want.
Just focus on what matters, both for your own longterm happiness (building skills, scratching an itch, whatever) and for the happiness of your customers (they won't get their project completed if you're burned out and disengaged).
Reject the 40 hours. This isn't a factory and we aren't slaves. It will all be fine.
Just remember to think like a business person. They're doing that. Why not you?
At the same time, there's been days that I've had to step back and reflect on the time spent in front of a computer, when I could've been traveling or partying like many peers.
It also can be a ton of work on top of your regular job.
[1] https://algodaily.com/lessons/getting-your-first-software-jo...
As much as I do like 2-3,000 USD extra in my pocket every year, investing the time directly into getting better skills and better-paid jobs trumps such amounts even if you get just 1% more every year.
I've gotten the most mileage out of the extracurricular pursuits that have the least to do with programming - usually those around art or sports. When I have an interesting idea for a technical side project I pursue it, but when I was in a phase where I felt obligated to do so, it brought more stress than enjoyment.
In summary, this article says: "I like side projects! I have done a bunch of them, and here are the reasons why you should do them too:
1. You can make money
2. They're a gateway drug to entrepreneurship
3. You can learn new skills, including business skills
4. They look good on a resume/when networking
5. You can learn about yourself
6. Work with friends/make new ones”
I don’t think there is anything _wrong_ with this article, but I think it misses the mark a bit.
In my experience there are 3 reasons to work on a side project:
1. Learning- picking up a specific skill you didn’t have before.
2. Experience- doing more programming in total (making you more experienced).
3. Fun- sometimes programming is a fun thing to do!
I think if you don’t really hit at least one of those, you shouldn’t be doing side projects. On some days I take the even stronger position that unless you are trying to make a career change or you really find programming fun, you should not be doing side projects.
Making money can be part of it, but as the author says it can't really be the driving force of a side project. If making money is your goal, I would argue that that isn't a side project, it's a small business and should be treated as such.
It’s also worth thinking about what value you get out of which parts of side projects. You can hit all those goals without actually finishing and releasing your project. I see a lot of devs not bother starting projects when they hit all 3 reasons, because they don’t want to polish their project into a full product.
I don’t want to go off too much here, I blog at length about side projects at https://weeklyproject.club , and I wrote an article recently about this phenomenon at https://weeklyproject.club/articles/finish/
Sure, I find my work to be interesting and engaging but there are extremely few activities that I enjoy doing for over 8 hours.
1. Woke up at 4 am - 15 minutes - planning and thinking about the schedule for the rest of the day.
2. Review the code I wrote previous day (30 mins)(though I was the only one developing this I do PRs :)(iOS mobile app - swift for front end, golang for microflow, docker, k8s and google cloud)
3. Refactor and add features for the next 2 hours.
4.Glance through NYTimes(liberal left), Fox(republic) RT, South China Morning Post, Global Times(CN), Economic Times(IN) and DW(EU) to understand where world stands.
5 Get ready for office (train 30 mins) - attend the standup - provide and listen updates - fix issues , develop features - (NodeJS & Java)
5. Thankfully all the office meetings - are scheduled only on Mondays.
6. 5:30 leave office, get into train and reach home at 7:20 pm (walk from train station to home - 2 km approx. - and take a shower
7. Play with kids, read stories (and fight with wife :))
8. Family prayer and got to bed.
9. On Fridays - have a beer or a glass of wine after prayer.
10. Saturday & Sunday - take children for extra curricular activities, shopping (mostly groceries and house hold items.
After one month - I couldn't carry on with waking up at 4:00 am - couldn't concentrate at work - getting irritated easily etc. I switched to waking up at 6:00 am.
Side projects are possible - but there is a cost :)
So I have always had side projects that combine them. I'll write tools that help my family do something together. It used to be mapping tools to help us plan outdoor exploring in the mountains and deserts. Then it was conversion programs to turn photos into craft patterns. Most of those are offline now, too, I just left up a basic cross-stitch one. I turned the others off for the same reason I stopped the mapping tools -- similar tools were popping up everywhere, so I stopped putting my time into it. Now my kids are getting into writing, and I am working on a writing tool that can help them organize their thoughts... which will probably get seen and copied into more robust tools, and then I can turn it off.
These projects always go the same way -- they are something cool to help my family, they let me practice new things, I learn more, and some day people with more time surpass my idea with a real product.
I really have no problem with this cycle. It seems like everyone involved gets something out of it. And I'm way too old to play the game of every new idea having to have a goal of becoming a startup.
It is a code vacation, because when job hunting, I'm not coding that much.
I'll try to be brief:
1. I am passionate about digital creation again
What I find really cool is that learning to program has been worth it. It has taken one bachelor and 2 masters, but it has been worth it. Studying computer science has been worth it. I'm capable of deep diving if I have to, and otherwise just stay on a web stack flying on a high level zipping code together by gluing npm packages but creating my own ones if I have to.
2. Passion has downsides
I'm seeing my friends less, I'm seeing my girlfriend less. I feel that everyone around me tolerates my behavior, but I don't suspect they like it too much as I'm thinking 24/7 about this thing. It also makes me a bit mentally absent when I'm with them. The issue is, I can't help it. IMO, it's a good lesson on how passion is overrated as the downsides of pure passion are not being discussed. My sleep (and code quality) is terrible as I'm too excited to get up again, and the problem is: I can sustain this a lot longer than I thought I could.
3. It allows me to do some much needed self exploration
Why do I like this? Why am I now procrastinating on creating the backend but am neck deep in learning how to rearchitect the backend to a p2p architecture (easy: because p2p web apps are more unusual ;-) ). I'm getting a lot of questions and answers that I need.
4. It feels like a game
I think the reason it feels like a game is because I have my own agency. I get to decide to solve a problem that I think is worth solving for whatever reason. That type of agency is quite common in games: you're in a big world with tons of quests and you can decide what to do (even abandon the whole quest line!).
---
All in all: doing your own side project on a full-time basis is a much needed and interesting exploration for me. For 9 years people told me what I should do. It's interesting to see what I do when I tell myself what to do. It's a much needed break from just doing what other people want.
With that said, part of my plan is to have a hosted version of the application - at least until the moderation of content makes me regret it, hah. However, I am concerned about the overhead of both writing and maintaining a complex FOSS project, but also handling [dev]ops of the project.
I know enough ops to be dangerous, but not much beyond that. I also know enough to know how little I know. Due to budget constraints, I will likely be hosting this on a very low cost server and exploiting CDN caching/etc very, very heavily - but I do imagine I'll need a cheap VPS. Ie, I don't think I can exploit a fully managed Function as a Service architecture; I think I'll be managing a VPS.
So for a low budget project with minimal ops experience, how can I ensure security and safety? What path to growth can I walk, without consuming my time trying to become an expert in [dev]ops?
Why Should You Have A Side Project?
Ask yourself:
- What do you want out of this side project? Money? Fame? Learning?
- How would you define success for this side project?
- What will you do if it succeeds? (unlikely)
- What will you do if it fails? (likely)
You need to chart a rough path. Creating something open source and aiming for popularity and notoriety is much different than hoping to make enough money to quit your day job from your side project. You end up in two vastly different places if you succeed. If you fail, you end up in the same place. Plan and be ok with both end results.
[1] https://www.bennettnotes.com/post/making-money-out-of-every-...
Don't should on yourself.
Consider the source when should on .