Added more on giving up
[themediocreprogrammer.git] / chapter07.md
index 444145bdabdeb2624fc4c2e670bf91763152a522..1e197eee8fc477579f513312a4ce43c5bd6217a9 100644 (file)
@@ -95,11 +95,32 @@ Burnout is tricky to self-diagnose because it is a collection of seemingly unrel
 
 There are some things we can do to understand and help alleviate burnout:
 
-1. Realize that we're burned out, or about to burn out (discuss)
-1. Examine our emotions. (discuss)
-1. Re-negotiate our commitments (discuss)
-1. Give our drive a rest (discuss)
-1. Examine if this is truly how we want to live our lives (discuss)
+1. Realize that we're burned out, or about to burn out. Acknowledging that we're about to burn out is key to not experiencing the burnout. That seems simple enough but we tend to realize it when we're in it. If we can recognize that we're about to burn out then we can take measures to avoid it. And if we realize that we've burned out we can take measures to be kind to ourselves and help ourselves out of this burned-out state.
+1. Examine our emotions. Sit for a while and see what emotions come into view. Are we feeling stress, fear, anxiety, nervousness, or anger? See what feelings emerge and recognize these feelings. Examine where these feelings are coming from and what might be triggering these emotions.
+1. Re-negotiate our commitments. Many times burnout is the result of overcommitment, whether to others or ourselves. We have too much to do and despite our best efforts we can't meet the obligations. Perhaps they were too aggressive, or something caused the world to change when the plan was made. Whatever the reason we may need to re-evaluate what is expected of us and what we are capable of doing. And if we see that we've created an intractable situation for ourselves then we need to figure out how to cut away some of these obligations.
+1. Give our drive a rest. Unlike our mechanical counterparts we need downtime and rest. We can't work a straight 8 hours without at least some moments where we aren't working. Programming demands a lot of mental bandwidth and pushing ourselves to exhaustion can lead to emotional instability, stress, and burnout.
+1. Examine if this is truly how we want to live our lives. We need to be aware if what we're doing is really what we want to be doing. If we're not happy doing this then every moment we do this can compound our feelings of unhappiness. If we look deep in ourselves and feel nothing but dread for our current situation then we may need to renegotiate our commitments. That can be something as simple as agreeing not to learn something right now, or can be as complex as taking on different work or changing careers.
 
+By understanding that we're headed toward burnout (or are burned-out already) we can take measures to course-correct so we can approach our programming practice with joy and enthusiasm. Sometimes taking a step back and re-evaluating what we're doing can help us not sit in the constant loops of frustration, anger, and guilt. Changing our story to better fit reality can keep us from trying to match an impossible dream. 
 
-(Discuss feelings of burnout)
+You will experience burnout in your programming career. Things will come at you that will overwhelm your ability to cope with them. You will find yourself stuck in loops wondering if this is really what you should be doing. Understanding what you're feeling and acknowledging your feelings as valid is the first step to changing the course from one of burnout and stress. Programming shouldn't be drudgery (no work should be drudgery). There should be something in your programming day that keeps you motivated, and helps you grow your skills. Adding bits of learning, joy and wonder (along with periods of downtime) will help sustain you through the emotional turbulence that awaits.
+
+## Giving up
+
+Programmers don't like to think about giving up. We work on machines that have so many possibilities that we feel we should be able to make things work. But sometimes we can't see those possibilities. Sometimes we look at the list of things we should be learning and wonder if it's all worth it. We look at lists of job prospects and see nothing but meaningless work. Students ask us what it's like to be a programmer and we wonder if it's OK to crush their dreams this early in their careers. The joy that sustained us into learning the craft disappears and we're left wondering if we will ever cultivate that feeling again.
+
+Programming isn't for everyone. There are times when I've wondered if I should be working as a programmer. I feel as though I can't learn everything that I need to know, and wonder if what I'm learning will not matter because in 10 seconds everything out there will have completely changed. I struggle looking at job positions that seem like they won't matter in 3 years, let alone 100. I feel like the computing future I was promised never happened and we're stuck in a world where computers are little more than levers for companies to pry open the wallets of their customers.
+
+It's easy to become fatalistic about the practice of programming but I've realized that there's more to computing and programming than what I see in the job market. 
+
+Part of the joy of programming is the curiosity. If we can continually tap into that curiosity then we have so many avenues to explore.  From game programming to some of the more esoteric languages there are always topics and ideas to discover. What the job market uses is but a fraction of what is out there. There's also a whole host of emulators and retro-computers available with good documentation. One of the things that I'm curious about is how older computers work. But there are also newer, lower-powered machines out there in the embedded space that are fascinating to look at and understand.
+
+But there can also be the realization that there's no joy left in programming. The thought of programming no longer excites us and even the thought of trying something new fills us with dread. We no longer want to even try. What then?
+
+If we no longer find joy in programming then we need to understand why we feel that way. Perhaps we're tired and have been through a project that drained all of the fun and excitement of programming. Or we found that the communities in our area and online are hostile and unwelcoming. Maybe we thought programming would be fun but every time we start we wish we were doing something / anything else instead.
+
+Programming is not for everyone. I strongly feel that programming is something that is best when you really want to do it. But if you're stuck in a situation where you don't want to do this anymore then it's perfectly reasonable to step away from it and give up. There's no shame in this at all - many programmers have decided they lost the spark and the desire and have gone into other fields. Stepping away from the computer is perfectly fine.
+
+It's OK to walk away from programming and do something else. Programming is only one facet of our lives. True, it may be a big facet, and it may feel scary to give up something that we've worked so hard to accomplish. But if we examine our feelings and realize that we're just going through the motions, or see that we're no longer finding any joy in programming then it's time to think about what else we can be doing with our lives. We're granted a limited amount of time to live our lives and doing something we don't enjoy robs us of a meaningful life.
+
+Giving up doesn't have to be a negative experience. You can take some time away from....