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
- 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.
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.
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.
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
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.
> 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
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.
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?
Frugality helps - less money is required if you live in a shared house or a couch (you can invest in property at the same time but not live in it).
Having a life partner helps, one of you can have a job at all times, so one of you has the FU card.
Other sources of income. I think coding side projects are hard to make work, but real estate is more doable (but there is more risk and patience required).
Even with none of that, a good CV, interviewing technique, keeping up with the interview puzzles, and living somewhere with plenty of jobs will give you a FU card to your current company (but not the industry).
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.
I can recommend these guys to pick advice from something like The Subtle Art of Not Giving a Fuck https://en.m.wikipedia.org/wiki/The_Subtle_Art_of_Not_Giving...
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.
Likely way more than what I would get out of trying to build a software product myself.
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.
This quote for example: 'I’ve asked David Wong, working in the cryptocurrency team at Facebook, what would be the best way to be noticed by Facebook? He answered: “Side Projects” and “Blog”.'
To many people with kids, that reads: Facebook doesn't want to hire engineers with families, because the things they care about from folks are diametrically opposed, in many cases, to the time required with children.
I absolutely think that if you have the time and flexibility you should use it. But there are (and should be) other ways to stand out to companies or to create value that don't involve side gigs outside of the normal work day.
It's not particularly compatible with having kids, but it makes you a better musician.
I'm all in favour of finding better ways to let programmers who don't have side projects stand out but I don't think that devaluing side projects is the way to do that.
concerning professional advantages: after spending more than two decades writing software I seriously doubt that a side project gets you professional advantages.
Imho more important are soft skills that are not in the focus of most technically savvy people. Being able do communicate well and being a team player are at least as important in most cases- not everybody builds a new google...
We tend to focus on technical aspects while most fail to see that this is not a purpose in itself (in most cases / companies) but the purpose is to generate business value.
>Imho more important are soft skills that are not in the focus of most technically savvy people.
I find that this is mostly true outside of tech hubs, especially in non tech companies, but not necessarily in tech hubs.
Hard technical skills are much more valued relative to soft skills in, say, Facebook than in, say, an insurance company or HMO based in Houston.
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'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/
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.
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
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 :)
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.
 This has probably saved me more money than I would get from a side project.
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?
- 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.
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.
Don't should on yourself.
Consider the source when should on .
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?
Picture marriage. But not an ordinary marriage, an extraordinary one! Imagine marriage where you are married to all attractive men in the universe, and you are free to experiment, and have full access to every single one of them! That’s how software development works for me.
Eh, I should probably cut a bit on exclamation marks, but I can’t, I’m passionate!