How to Burn Out Programming
blog.braegger.pw
blog.braegger.pw
That'd be pretty close to the top of my list.
A quick 2-3 mile jog around the neighborhood can help get me out of work-related funks. (I work at a home office, though, so it's easier for me to say "fuck it" and go do something sweaty in the middle of the day...)
My theory is that, since the only real item on your jogging to-do list is to put one foot in front of the other, your brain is freed up a bit to wander. Which is helped by the light stimulus of the changing environment around you. And this brain wandering helps shake out cobwebs and generally make you feel like a free individual again.
And, of course, it gives you an energy boost, which helps with the simple exhaustion side of things.
That's the longest time I've gone without an episode since I was 15, and I'm 23 now. I use antidepressants when I feel an episode starting -- but I only stay on them for a maximum of 3 months and come off them; I use them as a mental bandaid of sorts. I've not needed them since I started exercising (and working on my thought processes), and it's quite literally changed my life.
It also helps with motivation, thinking through hard problems (though I'm still yet to find a way to capture those thoughts while I'm riding a wave!). The girlfriend appreciates it too. I highly recommend doing some form of exercise for anyone who is struggling with their own head, it'll help, I promise.
The one thing I had to do to make the habit stick was doing multiple forms of exercise. Running is great, but just doing that alone was too much of a "To-do item" -- adding surfing and weight training to it made it stick finally.
This is a great point and something I just came to learn as well. If something at the gym is boring, do something else! I couldn't figure out how people loved the gym when I was going to run for an hour every time and was bored out of my mind. Switching to a weight routine instilled a sense of real progress (the weight on the bar, the # of reps) and left me in a state of satisfied exhaustion.
i spend all my time in front of my computer(including my train and bus rides), but i also do sports almost every day.
the problem a lot of us face is that they can't stop thinking about work related things. be it political, company hierarchy(or architecture), or a soft/hardware related problem, that you didn't manage to fix in time.
personally i find running or working to allow me too much time to think. i find my balance in sports, that require 100% attention. that is the only moment during the day where i don't think about solving some problem, but instead focus on something else.
It's not a sport but I recommend cooking, doing Legos (have you tried EV3?), etc as a way to connect to physical things.
Work related items on my mental To-Do list sometimes take more than a day to do, and it can eat away at me if I don't cross things off that list. "Bah! Today was a total waste of time!"
This goes back to the post that said something about only giving advice when it's asked for.
I've burnt out before while exercising pretty heavily. The reasons he listed, after a while, can completely ruin anything your exercise does. Especially when you're "Free to wander" and just keep thinking about how bad the job sucks.
The problem is I can't consistently muster the willpower to block out an hour long chunk of time to go running or workout at gym. I found a lovely compromise, though:
### The Seven Minute Workout [1][2] ###
It removes literally every excuse my brain can come up with not to work out. Too cold outside? Doesn't matter, you're not going anywhere. Not enough time? The time you'll spend coming up with excuses is probably longer than 7 minutes. That's like two songs on the songza workout playlist. Don't feel like changing? Doesn't matter - you can do it in the clothes you're in. Can't find the equipment you need? All you need is a chair, a wall, and a 7x3 clear space of floor.
I figure it's much better to do this every day [3] than to go on a workout binge where I work out 2 hours at the gym on Monday, take Tuesday off, dread going there for 1.5 hours on Wednesday, take Thursday off, take Friday off because I'm still sore from Wednesday, take the weekend off because it's the weekend, and then forget about working out again.
1. http://well.blogs.nytimes.com/2013/05/09/the-scientific-7-mi...
3. http://dontbreakthechain.com/share/christiangenco/last-four/...
For those that have the room, the best solution is a home gym setup. I wake-up at 5:30 AM and am doing my workout by 5:45 AM or 6:00 AM. I don't have anything fancy - just a set of weights with a couple of bars, a Nautilus dumbbell set (where you can change the weights on each dumbbell via a dial) and dinky bench. I will likely add a rowing machine to this for cardio.
It's still a challenge getting the habit in place but there is really no friction anymore. No time is wasted driving back and forth to a gym. No issues about finding the time. Doing 45 minutes, three times a week is great.
Being a night person, waking up at 5:30 AM is still a habit that I am solidifying but the main reason for doing it this way is that I can do this for the rest of my life. I am hoping within 6 months this routine becomes ingrained as brushing my teeth in the morning.
How to Burn Out Programming:
1) Do it too much for too long while being under stress. The same way you burn out doing anything.
2) See #1
I do agree with some of the points laid out in the post, but disagree with #2 and #4.
#2 ("Have a negative attitude toward everything") is a bad thing for team morale and should be avoided but I don't believe it has anything to do with burnout.
#4 ("Switch jobs often") assumes a very idealized world. The vast majority of jobs are nothing like PhD programs and you have very little freedom to dig deep into a problem unless the problem directly involves revenue generation. I've had to quit a couple of jobs due to the fact that staying there maintaining the same old code base without really expanding functionality or otherwise flexing my "programming muscles" would have been what resulted in my burnout. Part of my issue with this one might be the lack of definition for "often". Obviously if you are switching jobs every 6 months to a year that's not great, but the reality of many modern software companies is that keeping good developers engaged with their job 3-5 or so years in requires very enlightened management, which is rare now.
#4 also assumes that as developers it is naturally our goal to become managers and directors. Personally I have zero interest in doing either of those jobs. And I don't think good developers really have to try that hard to prove themselves at new jobs, in my experience it is pretty obvious to other good developers pretty quickly when someone else is good.
I agree about #4 and many of the things he lists are a bit subjective and for some could be again result of being burnout. Your career stagnates even if you persist remaining in the same useless place forever and sometime starting anew somewhere else, on new problems, could at least temporarily help someone suffering from burnout.
I've had to quit a couple of jobs due to the fact that
staying there maintaining the same old code base ...
would have been what resulted in my burnout.
Agreed––though if this is a problem for you, try consulting. But it's easy to forget that boredom can cause burnout too.Also definitely don't exercise and always eat at your desk.
The reality is that software is very complex and so are the humans thinking it up; if they want working stuff in the end, things are done when they are done. And they cost a lot and you are going to not like your the code you wrote after you wrote it and there might be better tools etc. Who cares? Only you unfortunately and if you let that go you'll have happy clients and you'll be happy yourself.
Er, no.
Let's look at the reasons he offers.
"Growing in the company (developer -> manager -> director)" Yes. You can become master and commander of how to get along and make a good impression on one bunch of people. Or you can learn from many. Guess which one is going to help you once the company lays you off.
"Gaining an expertise in a specific area. Considering it takes 4-6 years for a PhD student to get their PhD, that's a lot of time you need for learnin." You become an expert in a technical field by using some piece of tech in many different situations. In the vast majority of job-related situations, whatever situation you've got, you've got. It ain't changing.
"You are having to start from scratch often. If you are a good developer, you have to "prove" yourself (people listen to you) all over again." Starting from scratch, proving your worth, is a good thing. We don't want people who think they can rest on their laurels. Every now and then kick yourself in the ass to see if you can still hack it -- before life does it for you.
A more interesting blog entry would be "How to work past burn-out" That is, okay, fine, you've reached the end of your rope. You care about nothing, you're cranky all the time, you're lethargic, and you're bitter. How do you get up tomorrow morning and be happy while doing a good job without losing your livelihood? Because that's where a lot of people are, not making lists of things to do to avoid burnout.
Tips that don't address the root cause are fine but think about the mechanism.
Then, burnout is a smart activity.
Burnout is protecting you!
If you work in a slow beauacratic environment with no stress, no accountability, no change and no challenge then you really do start to notice all of the same symptoms.
This is also known as "boreout".
(However, I can't find evidence that "boreout" is a well-known word outside Germany. So maybe it's just one of our many German inventions of pseudo-english words.)
(Question asked by somebody that got burnedout by trying to professionalise side projects just after getting boredout by my job. I see a huge distance between those.)
Anyone else getting sick of this false dichotomy of "long hours" and "having a life"? What am I going to do with that life, visit new restaurants / collect stamps / try new variations of yoga / go out to bars? Alright the last one ain't so bad.
Seriously, if someone's in their 20s and want to work/program away while they build their career, just shut up and let them. Maybe that's what they actually want to do over anything else. I know, it must suck for you family guys / slower guys - let's face it, it's more competition because there are people willing to do what you are not: forgo more leisure activities and personal relationships. The point is, however, that this is not a sacrifice for some people, but a preference.
But burnout is not due to "not having a life", it's due to ignoring your physiology. It's due to "eating like a programmer", doing these stupid all-night "hackathons", not exercising, not sleeping, and generally being a moron with your health. I will also add that to avoid burnout, take care of your psyche. Don't skip that 30 min coffee to catch-up with an old friend if it will make you happy, for example. Social isolation creates physiological consequences as well, which can contribute to burnout - but again, this isn't true for everyone, and there's a wide spectrum of acceptable values which many like to ignore.
Its easy to view as "not a sacrifice" now, but like everything else, you are more likely than not to view it as a sacrifice later. Listen to those with more experience than you; I personally wish I had, and I'm trying to make up for it now.
> But burnout is not due to "not having a life", it's due to ignoring your physiology
I disagree that burnout is primarily physiological, it's much more a mental ailment - a state of mind that is exceptionally hard to break out of. Not having any other buffer than more work to engage your mind with will very quickly cause you to burn out.
Lie 1. The technology doesn't matter. All languages sucks and are turing complete anyways. Who cares if it's in perl or enterprise java? Does my happiness really depend on writing python?
Lie 2. The technology does matter. If I'm working on a Social-Mobile-Location startup using python with free reign over technology I'll be in developer bliss right? Wait, maybe if it's all go and protocol buffers I'll be giddy with joy. Frankly the difference between new and old technology is usually the choosing between decades old tech and decades old tech. (Oh, you're using epoll/select/kqueue? The 1980's called, they want their tech back) (Javascript? The 1990's called, it's for you) Heaven forbid you go talk to startup folks with your 90's programming language called Java.
Lie 3. (From PHB) "while long term overtime doesn't scale, it's a great tool to boost productivity in the short term during crunch time, after all a startup is defined as a way to cram 10 years of life experience into one"
So here's what I believe to be the truth, for me, so far.
1. Burn out takes longer than you'd ever imagine to recover from. After a certain point you just don't care if the fire alarm is going off and the building's burning down because it's always burning down. Once you leave that situation/job, it's hard to shake that mentality.
2. New technologies, platforms, and protocols are fun. Learning is fun. I don't mind writing my own libraries because it helps scratch that itch of always wanting to know how things work just one level deeper.
3. People matter exponentially more than anything else. It's not just working with smart people. I've worked with lots of smart people with the emotional IQ of a poorly trained Rottweiler. The best engineers I've ever worked with are usually people who've made the decision that engineering is not the most important thing in their life. They've also discovered Lie #2 and so are a little bit less dogmatic. "Oh you want to send binary encoded messages over UDP to collect statistics, I remember when we did that with ASN1. Here's a nickel kid, go get yourself a real protocol".
My theory is that it's related to ego depletion. [1]
If that's correct, you should find things that you want to do, and do them. Start small. And do your best to not focus on the burnout; focus on what you can enjoy about what you are doing. Look for little victories; I'm convinced that accomplishing things, anything, can help recharge you.
I also think social connections can recharge you. Not the kind on Facebook, but the face-to-face kind. Facebook is particularly poisonous because, for the most part, everyone ends up trying to paint a perfect picture of their lives, leaving out most of the down parts. The contrast can make you feel worse.
It's also valuable to have a doctor run a standard battery of tests. It might be that you're really low on some important vitamin or mineral. Or that you have high systemic inflammation, which is a cause of everything from heart disease to cancer. (In which case you should eat more fish and/or flax oil.)
This is all (unfortunately) from personal experience (vitamin D was very low when they tested me, for instance). I'm feeling like I'm just recovering from burnout right now, in fact. Today was my first really good day in a long time, and that despite working long hours yesterday to get a last feature in. :)
Good luck. Hope you can find your way back to happy living soon.
When I think of the kid who used to tinker around with computers and electronics, I always see him as another person. There's no way that guy would ever find learning a new programming language boring, or find it difficult to get out of bed for classes he was really excited about.
I appreciate the post and will try some of the stuff you suggested out. Glad to hear you had your first really good day! This isn't the first time I've felt stuck in a rut and I know how great it is to feel that way. :)
My goals are on the lines of knowing more about a subject, or teaching math to my daughter. I still didn't add any project to there (except for a research one), but I feel I'll be able to do another one soon.
The quick part is important you have to convince yourself to keep going, and if you have long stretches between seeing something new, it's really difficult.
The visible part is important, because once you've reached a certain point, you'll want to show it off to people. It doesn't really matter what they think of it because once you're at the point of showing it off, you've already given yourself a big ego boost.
Data visualizations and games work well for this. Game engines and CRUD apps do not.
Don't get me wrong, I'm not the glorified Facebook like-clicker type of tester -- the tests are automated at least. I will be finishing my introductory project this week and will be starting sprints with the rest of the scrum team. I have been in a couple sprint planning session but haven't been able to participate yet and will have my first chance to take my first real project. The other intern on my team who's been here longer than me is still doing mainly writing tests with this really outdated Keyword model. I've been doing the same and it's not fun.
My question to you is, as a new intern to the team (this is my first 'real' development job), should I try and aim for getting some dev work? I'm afraid it might tick off a couple of the more senior devs. I'm not against doing test work--I'm watching James Shore's TDJS I know it's important--, but I would rather work with newer technologies than some Java monstrosity written pre-AWT.[0][1][2]
[0] www.letscodejavascript.com
[1] At least it's not written in ABAP like some of our other programs. shudder*
[2]Not sure if I'm doing HN-style citations correctly.
The key is to do motivating, enjoyable activities. Build up gradually - it will take time. Social interactions, sunshine, healthy food, exercise (within moderation) also help.
I've had lots of great jobs where I had a great time and learned a lot, but at every single one, leaving was one of my best decisions there. Now that I'm a freelancer, I switch a lot more, and I notice a comparable increase in the rate at which I'm learning and growing.
This makes me cringe. If you're a developer, it's your manager's job to assign tasks which can be completed on a reasonable schedule, and to adjust stakeholder expectations if they don't turn out to be achievable on time. If you're facing an impossible deadline, that means that your boss hasn't done their job. It's not your responsibility to dig them out.
And if you do pull through and somehow finish on time, all you've conveyed to your manager is that the status quo is working. You've demonstrated that they can move up deadlines in order to get more work out of you without paying you for it. If your team is understaffed, they can save money by leaving it understaffed. Soft deadlines (the boss has a meeting on Thursday and it would be a feather in their cap to have a feature working by then) turn into hard deadlines when they learn that developers don't push back.
This is true, but the other extreme is also true - being too loyal, stuck in a soul sucking boring job dominated by internal fights and politics, can also lead to burnout. Sometimes it gets tough to find work you enjoy doing.
> "5. Work long hours, ignore your life"
This should be the number one reason for burnout. I think it happens most often with young developers in their twenties that don't have a family to get back to at the end of the day. Personally I now have a wife and a 3 year old son and I'm always happy to return home at the end of the day or to engage in various activities over the weekend. And because I do that, I enjoy most Mondays.
Of course, we are software developers, we like what we do, many times we want to work outside regular hours. But personally I have a general rule that I always apply -> I never work overtime or on weekends, unless I'm in the mood for it or if there's an extreme emergency. Therefore, I never cared when some manager or client told me that the deadline is probably going to be late, so maybe we should pull longer hours. When asked, I always say "No, sorry". My overtime is for things that bring me pleasure - implementing a cool feature that I wanted, or learning something new, or implementing something reusable and pushing it on GitHub ... you know, works of love.
There's a tremendous difference between working overtime because you're in the mood for it versus because you have to.
Also missing from the list:
> "6. Be dishonest, never ask for help
I've decided some time ago that I should always be honest with my colleagues, managers or clients. In my language we've got an expression that more or less means wasting time - "rubbing the mint". Sometimes I rub the mint - and in scrums and daily meetings, I now feel no shame in admitting that the other day I did basically nothing. I also recognize when I'm having problems, like when I'm not understanding a concept well enough or when I can't find the root cause of a problem and do ask for help ... though, because of the ego-tripping or other reasons, this is something that's often difficult to do.
It does help being honest and nobody is bothered when you admit that you were lazy the other day or that you're having problems, because everybody have the same issues in their job, even if they don't admit it.
Being honest and recognizing your own flaws helps with not feeling guilty. If you're lying to your peers that you got work done, that you're close to solving the problem, etc... that's accumulating debt that you have to pay in the days that follow and it can lead to a snowball effect.
MacLeod’s Loser layer had me puzzled for a long time, because I was interpreting it in cultural terms: the kind of person you call a “loser.” While some may be losers in that sense too, they are primarily losers in the economic sense: those who have, for various reasons, made (or been forced to make) a bad economic bargain. They’ve given up some potential for long-term economic liberty (as capitalists) for short-term economic stability. Traded freedom for a paycheck in short. They actually produce, but are not compensated in proportion to the value they create (since their compensation is set by Sociopaths operating under conditions of serious moral hazard). They mortgage their lives away, and hope to die before their money runs out.
If you don't like it fire me i value my sanity more then i do your unreasonable deadline.
P.S. I never bother to impress anybody I do what i do for myself it that's impressive to you great if not that's ok too.
One of the great things about Cisco (my current employer) is that there's a really strong technical career path that doesn't force engineers into the management hierarchy. I hope that this becomes more common at tech companies as time goes on.
But this can be totally different for other people.
As someone's manager I want them to know that these things are NOT roads to "success." Not everyone though has the makeup or fortitude to tell their boss no, and bosses who take advantage of that are a real problem. What is worse is someone who was so talented and now they are worthless because they can't find any motivation to do anything. Its like being so sore from exercising that you can't walk, and if you can't walk you can't work the lactic acid out of your muscles and you're going to be incapacitated for a lot longer.
A manager must act as a shield for the people under them and not as a whip from the upper managemnt (Like a lot of them do, my current one included).
This did something for me. I'm recovering from a dark place. I recently joined codepen and as superficial and lame as it sounds, every "like" and "view" is like a dose of anti-depressant :) http://codepen.io/sakri/popular
> Growing in the company (developer -> manager -> director)
I recently realized that I really don't want to be a manager or director. Nor do I have the interest in becoming the consultant or startup route. For me, the coolest to do is to contribute to open source projects, lean programming languages/Linux Kernel/Bioinformatics/ML etc. for fun; I'd love to find the right balance of doing either menial work or mindless web dev work without being too taxing to fund my own personal interests; and am willing to be basically work at an livable income (40K in a big metro).
Recently a gentleman mentioned on a thread that he is doing indie game development while working at a Target warehouse. I'd love to hear people who are have gone down this route or have the same mindset. Do you guys work say half a year doing consulting and half a year on your own stuff? Or do you guys work at a menial job and work on your free mental capacities after work. Or do you work at a menial web dev job or at a company that offers "summer hours" (4 day 10-hour weeks) or flex-time and work on cool stuff after work. Would love to hear some of your thoughts and journey should you have gone down this path.
People who pretend to think that you can simply willfully infuse yourself with positivity annoy me.
Negativity is how individuals react to certain environments. You can change some features in the environment and fix that, but simply demanding everyone to be positive is stupid. It's essentially a demand for suffering in silence.
We're not talking about using positive thinking to imagine everything is hunky dory. The issue is strong negative emotions. If you are constantly having strong feelings of anger which you are repressing, that can lead to burnout.
Usually there are better ways of dealing with problems than getting silently angry.
Yep, most people most of the time get those as a reaction to their environment, but they are not caused by the environment, positivity and negativity are always self inflicted.
Anyway, I don't think a positive attitude is always the best for a person, but most of the times, it is.
I was working data-validation at a big tech company, and the data-validation tool was under active development. It'd crash ~20 times in an 8 hour workday. I would happily restart my Tool and get back into it, but other people would huff and puff and rant. And it's like: What are you accomplishing with this attitude?
Empathically speaking, maybe it's because they have a hard home life or had a tough childhood. But it's unprofessional and your negative energy affects me. So I'll be the mirror you need and throw it all back in your face. :)
You're communicating to others that you don't consider an app that crashes 20 times a day an acceptable norm. The question is, does anyone listen?
Sure, there are things that are unchangeable and there is no point in complaining about them. But if you have a positive attitude towards cockroaches in your food (figuratively speaking), it's no longer positivity. It's called not giving a fuck.
I personally go through burnout cycles where I have to take a break for a few days or (rarely) a few weeks. Most of the programming though that causes this is programming I do for my own business, not for someone else (i.e. it's not commissioned work). Part of the reason is that this has to fit between paid work, and part of the reason is that these projects are far more interesting and engrossing.
One of the things that does end up on both lists is the idea of pushing the project to the expense of everything else in your consciousness. That leads to thinking only about the project and ignoring one's own life (because even when you are not working, you are planning to work).
Great read, thanks for sharing!
Different persons have different ways to balance those conflicting needs. You have to learn what you can sustain and try to not go too far.
How not to burn out doing X:
1. Don't obsess over X
2. Stay positive!
3. Learn new things, experiment
4. Maintain a healthy life outside X (i.e dont obsess)
Spelling mistake, it should be "our job is to find faults..."
Oh the irony.
- It's lacking intensity, more like "spend a big enough share of your day on long enough thigs".
- The "you don't like to do" part is not required (hell I burned out doing a side project, in a new language, with an amazing framework - at least, I was amazed, all th time untill burnout).
- And it's missing something that I suspect is the "lack of rewards" described on other posts.
Weren't you just tired? Same way that after few even amazing but long hikes you don't feel like walking again for some time (weeks, months).
First, if you expect every job to last 5+ years, you'll often make suboptimal choices when it comes to balancing your own needs vs. the stated corporate objectives. Mistakes #1 (single-project myopia) and #5 (long hours, to the detriment of the rest of one's life) occur when people lose the ability to look outside their own jobs. If you have it in your mind that you absolutely must stay with a company for the next 10 years, you're much more likely to make those sorts of mistakes.
It's ideal that you get a good job and it lasts 5+ years, but you have to go to work with the understanding that the world might change on you in an instant.
What you need to do is focus always on your career. Try to kick out as much of your work to the open-source world as you can. Network before you need it. You need to play so that if you lose your job tomorrow, you'll be OK. Because you just might. It can happen to anyone at any time. If you plan your career properly, though, the next job will be a step up. It's when you're constantly moving around with no progress-- spending 6 months out of each year "on-boarding" into parochial corporate knowledge instead of career-advancing general knowledge-- that you'll burn out.
Leaving a job stupidly is a mistake. If you're learning a lot and something mildly annoys you, quitting in a huff is the wrong way to go. When you get something good, hold on to it for as long as it lasts. But don't throw good time after bad, either, because that will lead to burnout just as quickly.
The truth on all of these is that there are tradeoffs. Is it a good idea to work long hours? If a month-long burst of 80-hour effort will buy you career advancement that'd otherwise take 2 years, then suck it up and work. If it's just going to get you more grunt work (which is usually the case) then blow it off. Similarly, with job tenure, I think the poker player's maxim-- be very selective, and very aggressive-- applies. Fold losing hands early, but when you have cards (i.e. a job that's doing a lot for your career) then play it hard.