Before I became a father I had totally different priorities in my life, but at that point everything changed. I needed to find a balance in my life between my new and old responsibilities. I wanted to be a good father, a good husband and a good programmer at the same time. In fact it is not easy at all. I can imagine only one situation which could be even more difficult: being a mother and a programmer in the same time. But luckily I will never experience that. Of course it is the some for every father, also difficult for non-programmers, but in this post I would like to concentrate on the point which are specific for programmers. So this is a non-technical post for programmers.
Let’s see the facts. One hand if you want to be a good husband and father you need to be at home in time, to be able take as much time as possible with your family. And during this you shouldn’t be too tired or stressed, you need to be mentally there and remember on things which are not in your calendar, not pushed to a version control system and are not documented at all, that’s challenging.
On the other hand you need to take care about the financial needs of the family. So unfortunately skip work is not really an option.
To be able to achieve it at your work you need to be mental fit as well, you need to be available in case of stressful project situation and make sometimes over hours as well.
So to summarize, you will have two responsibilities: at the first one everything is deterministic, documented and you have long years experience with that, at the second one everything is totally random, undocumented and you have no idea how to do it. One thing is common: both of them means a lot of work and needs a lot of time to fulfill all the expectations.
What advantages do programmers have compared to other professionalities:
Opportunity for home office: always more and more companies are providing such an option at least 1-2 days per week. I really suggest you to choose such an employer
Flexible working hours: programming is normally not a job what you doing from 8 to 4. You have here a flexibility and a chance to find the most convenient time for work. Do it, find the most fitting one. I personally always try to arrive early and leave early to have more time after work.
Good salary: I think this point doesn’t need more explanation, but it is really important if you have a family
Of course there are several disadvantages as well, but think in a positive way and call them rather challenges:
Critical situations in your projects where over hours are requested: at most of the companies there are sometimes critical project period, when everything is burning and you need to work really a lot to achieve your goals. And of course it is very difficult to let the family understand such situations. Here you need to do some self control as well: do over hours only if they are really needed, but avoid them in all other cases. You can use some hybrid solutions as well: do extra work at night when the family is sleeping.
It is a mental challenge: programming is a mental challenge, I mean I’m quite often thinking about the solution of my current tasks even out of work: at home, during travelling etc. Based on my experiences it is really difficult to take care about a child while you are just figuring out the best algorithm for your current problem. You need to stop thinking about such topics when you are with your family, even if it is difficult. And during this time you need to load some other memory areas where you are storing info like, what should your child eat, what time do you have an appointment at the child doctor or where are the clothes of your child stored. For me it is more challenging then solving any of my daily programming tasks…
You need to develop yourself: for most of the programmers programming related activities are not limited to the workplace: you are doing home projects, learning new technologies at home, reading technical articles and forums, checking for new work opportunities or writing blog posts. These are things which can make your carrier and salary up, but if you have a family it is difficult to find time for such activities.
Finally I just collected my suggestions to find your work-life balance:
Family should be always prioritized over project and work: you can always find a new job or new project if things are going wrong, but it is almost impossible the find a new family.
Don’t do too many over hours: too many over hours just destroying your balance
You need to know how to say no: Sometimes you need to say no even for good opportunities if it is not fitting into your time. Never mind, an other one will come later.
It is never too early to start to teach programming to your children!
Let me share thought: always think about that what you wanna remember in 40-50 years: on the time you spent with your family or on the project which you were working on and set up your priorities based on that!
So all things considered it is not easy at all to do these two things well in the same time but is is quite challenging, good luck on that!