More on asking for help
[themediocreprogrammer.git] / chapter07.md
index 8decd3048d084cf33372de35bbb5562d4e972b05..dbb45603ad14dc7fc77c4132d1732df99765e724 100644 (file)
@@ -2,11 +2,11 @@
 
 ## The emotions of programming
 
-There is a stereotype of programmers where the programmer is shown quietly sitting in front of the computer. They show no emotion as they enter lines of code into the computer, as though they were transcribing everything from memory. But if you've been a programmer or have been around programmers you know the experience is more akin to the stereotype of a frustrated composer. Sure we sit in front of our computers for periods of silence and concentration but we're far from emotionless. We bask in the glories of code that works perfectly the first time. We glower at code that misbehaves. We go from cheering ourselves in victory to cursing the machine and threatening it with clenched fists. We swing from emotion to emotion: exuberance, joy, fear, anger, resentment, sadness, loneliness, guilt, and shame. 
+There's a stereotype of a programmer sitting emotionless in front of the computer. They sit, quietly entering lines of code as though they were transcribing them from memory. But if you're a programmer or have been around programmers you know that the stereotype should be that of a frustrated composer. Sure we sit in front of our computers in long periods of silence and concentration but we're far from emotionless. We bask in the glories of code that works perfectly the first time. We glower at code that misbehaves. We go from cheering ourselves in victory to cursing the machine and threatening it with clenched fists. We clench our teeth when bugs rear their misbehaving heads. We swing from emotion to emotion: exuberance, joy, fear, anger, resentment, sadness, loneliness, guilt, and shame. 
 
 No wonder we're exhausted by the end of the day.
 
-Programming is a taxing process. Not only do we need to keep a mental model of the software we're working on, but we also have our own emotional attachment to the software we're creating. Our emotional state can mirror what we feel about what we're creating; whether we're excited, bored, or stuck. Keeping a positive attitude about software that isn't measuring up to our expectations of what that software should be is exhausting. Couple that with our own insecurities, fears, and doubts and you begin to see why programmers tend to burn out --- it's a combination of the stress of the job and our emotional reaction to that stress.
+Programming is a taxing process. Not only do we need to keep a mental model of the software we're working on, but we also keep a mental model of how the software should behave. We create a story of how this software will work and paint a picture of how we will feel when everything works as we envisioned. We create an emotional attachment the software. Our emotional state can mirror what we feel about what we're creating; whether we're excited, bored, or stuck. Keeping a positive attitude about software that isn't measuring up to our expectations is exhausting. Couple that with our own insecurities, fears, and doubts and you begin to see why programmers tend to burn out --- it's a combination of the stress of the job and our emotional reaction to that stress.
 
 ## Emotional drains
 
@@ -112,6 +112,17 @@ It's also cliche to say "learn to say no", but this is an important skill as a p
 
 You will experience periods of 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. And recognizing when you're burning out and renegotiating your agreements with yourself and others can help reinvigorate your desires to keep programming.
 
+## Reaching out for help
+
+I want to take a moment to highlight that it's OK to ask others for help. I know from my own experience that I have struggled with asking for help. Part of this reluctance was instilled in me whenever I asked a question and got the dreaded "you should know that already" response. Other times I felt that if I asked for help it might diminish my reputation somehow. I'd be exposed as not being as good as people thought I was. Folks would wonder why they trusted me in the first place. But when I asked for help the question I received wasn't "why don't you know this?", rather it was "why didn't you ask for help sooner?". Sure, there were occasions where I would receive criticism for not knowing something, but I've found that the benefits of asking the question outweighed the negative effects I might face. 
+
+Asking for help isn't limited to asking questions, though. Question-asking is an area of help that gets the most attention because it's the easiest to address and has a low risk associated with it. There are many more ways that we might need help. We may need help from our colleagues to help us during a difficult time. We may need the help of our management when we're struggling. We may even need a whole other support staff to help us along (doctors, therapists, etc.). Involving other people with our struggle can be daunting (even overwhelming) but getting help early can help prevent the more serious forms of burnout and stress.
+
+Our reluctance to asking for help can stem from a number of factors, but the most common one is our desire to be comfortable.
+### FIXME
+
+
+
 ## 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 anything work on them. But sometimes we don't want to see those possibilities. Sometimes we look at the list of things we should be learning and wonder if it's all worth the effort. We look at lists of job prospects for our set of skills and see that the only fit for those skills is nothing but work that we find meaningless. People learning to program ask us what it's like to be a programmer and we wonder if it's OK to tell them that we're not happy with our decision and 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.