Keeping Yourself on Track and Avoiding Burnout as a Programmer
As software developers, and especially freelance developers, it's easy to get stuck in unproductive loops but you can break that loop.
When I get hired to do freelance work, I never have trouble fulfilling the work. I transform into a hyper focused productivity machine. I have no problem getting started, staying ultra focused and slam dunking the contract. I’ve always been like that since the beginning.
But I find that I’m easily distracted when it comes to producing things on my own. This could be anything from a blog post to a full blown course that might take 4 months to create.
I can usually power through it, but it feels like a struggle.
Understanding Your Weaknesses
I think I have a few weaknesses which enable procrastination, and one of them is I have too much free time on my hands.
That sounds like it could be a paradox. How could you possibly not get anything done when you have all the time in the world?
It’s really easy. When you don’t have hard deadlines or a boss to answer to, it’s effortless to end up in a situation where you goto bed thinking “tomorrow I’m going to crush it. 10 hours of course creation!” but then tomorrow ends up being 15 minutes of course creation, ~3 hours of freelance work and the rest of the time is Youtube, Reddit and HackerNews.
It’s effortless because you’ll think to yourself, no problem, tomorrow is another day and the really crazy thing is you actually believe it, so it feels ok.
When Was the Last Time You Were Really Busy?
Last month I attended tech field day for the first time. It was a 3 day event with a very busy schedule. We moved together as a group and on one of the days we left the hotel at 6:45am and didn’t get back until about 10pm. The other 2 days were similar.
All 3 days were way busier than most of my typical days and you know what? It feels great to be busy. Every minute was spent doing something interesting and productive.
Even the down time for food breaks, or traveling to the next venue had a purpose.
There wasn’t a single time during the event where I even thought about wanting to check Youtube, HackerNews, or Reddit. Not even once. There simply wasn’t time to think about it.
More importantly, the urge wasn’t there. When you’re focused on the moment, you don’t care what everyone else is doing. You go from consuming content to consuming the world.
I would wake up in the hotel room 45 minutes before we planned to go out. That time was reserved for getting ready for the day, and also answering emails related to my courses because offering full time support is really important to me.
I’d also squeeze in literally 3 minutes of emails while we were setting up between locations. That’s all the time we really had. It’s interesting how quickly you discover your priorities when you’re time constricted.
You feel very fulfilled at the end of the day. There’s not even a miniscule amount of guilt. You end your day by resting your head on a pillow and falling asleep with a smile on your face, ready for tomorrow’s new adventure.
It’s no surprise that the saying “if you want to get something done, go ask the busiest person in the room” exists. It really is true. People who are accustomed to a busy life style are hyper optimized assembly lines for getting shit done.
It’s kind of crazy how fast a change of scenery and pace of life has effective on you. You transform into a completely different person almost immediately.
The question now is, how can you harness that in your day to day life?
Even If You Love What You Do, Take Vacations
This may sound weird but I found tech field day to be a vacation from coasting by for the last few months. Sure, I did release a substantial free update to my Flask course and I’m always writing about something, but I wouldn’t say I was pushing myself to the limits.
Now, the really interesting part was knowing about tech field day about 2 months prior to going. That was a hard deadline in my mind. The tickets were booked.
I thought to myself “the large Flask update has to be done before I go”. I have a lot of trouble creating and sticking to arbitrary deadlines, but this was a real one. A legit time constraint was proposed to me and I delivered by releasing the update a week before I left.
I instantly went from being a sloth to doing ~3 hours of freelance work plus 6-7 “real” hours a day working on the Flask update which required making a new example app and 18 videos to go along with it. It was a decent work load.
Then I started thinking about my previous course releases.
Build a SAAS App with Flask v1 had a real time constraint because it was successfully funded on Kickstarter. There’s no way I was going to mess around with those stakes. In my mind, it was comparable to a freelance gig. I had to deliver.
My first Docker course also was backed on Kickstarter shortly afterwards. I didn’t even take a break. I started creating that course a week after I launched the previous Flask course.
Build a SAAS App with Flask v2 was a complete overhaul and I released that one about 2 weeks before a 5 day solo trip to Boston. I remember thinking I had to ship it before I left. Going on that trip was the dangling carrot for shipping it (it was a massive undertaking).
What’s the theme here? Hard deadlines.
The Busiest Programmer I Know Takes Regular Vacations
One of my developer friends told me I should take more vacations. He has written well over a million lines of code over his career, blogs about it, has a family, ships side projects like crazy, has a full time coding job and does contract work but always has time for everything.
He also takes multiple vacations per year with his family.
I asked him what he got out of the vacations, and it’s mainly recharging his batteries but he also uses them as deadlines to finish things. I think he’s onto something.
Now, I get it, not everyone has the luxury to take a few vacations a year, due to financial or personal obligations, but also don’t forget that not every vacation needs to be an elaborate and expensive event.
When I went to Boston, I spent about $600 grand total for 5 full days. That’s transportation from NY, AirBnB, eating well and going to paid events.
Scheduling More Vacations per Year
Just like programming, it’s important to know the problem you’re dealing with in order to fix it. In my case, I uncovered a big weakness, which is not having enough hard deadlines and potentially feeling like I’m just sleepwalking through life because “there’s always tomorrow”.
The solution is counter intuitive at first glance, but makes sense after getting perspective on the problem. I never would have thought to take more vacations on my own, because when you’re not hyper productive, you often feel guilty, and rewarding yourself while in a procrastination loop is the last thing on your mind.
I’m going to schedule a trip every 3 or 4 months and then work around that, especially when it comes to making new courses. A couple of months sounds like a good enough chunk of time to create something of substance, while also having an end goal in sight.
It really does seem like the perfect solution. You get real deadlines, a goal to work towards, gain life experience, get a change of scenery and in my case I can do course support on the road so my business won’t be negatively affected.
What I’ve learned from writing this article is that even if you love what you do, you need to take breaks and mix things up. Also, it’s important to evaluate yourself from time to time to make sure you’re not on the verge of burnout.
I’m very optimistic about the future and I’m already working on the next course.
What tactics do you use to avoid burning out? Let me know below!