Additional changes for ch. 07
[themediocreprogrammer.git] / chapter07.md
index ff22cb6495d719b815b791415439f607b26e9a76..5cf78e2e3fb257dfef6cab4bab55a9e4a6e86e1f 100644 (file)
@@ -114,24 +114,28 @@ You will experience periods of burnout in your programming career. Things will c
 
 ## Reaching out for help
 
-### FIXME
+I want to take a moment to highlight that it's OK to ask others for help. I've struggled with asking for help. Part of my reluctance with asking for help was instilled in me whenever I asked a question and got the dreaded "you should know that already" response. Other times I thought that by asking for help I would diminish my reputation somehow. I'd be exposed as a fraud and an impostor. Folks would wonder why they trusted me in the first place. But when I did ask for help the response I received wasn't "why don't you know this?"; it was "why didn't you ask for help sooner?". Sure, there were occasions where I would receive criticism or surprise 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 just asking technical questions. There are many more ways that we might need help. We may need to ask our colleagues to help us during a difficult time in our lives. We may need the help of our management when we're struggling personally and professionally. We may even need a whole other set of 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.
 
-One of the most challenging aspects of programming that I've seen is in reaching out and asking others for help. We tend to avoid it because we don't want to seem foolish or less of a capable programmer. We might have had instances where we've asked for help only to be told that we didn't do enough research into the issue we're having. It's difficult for us to admit that we need to rely on others for support. Often there's the feeling that asking questions or asking for help is a sign of weakness. If we can't do everything on our own then perhaps we're unworthy of being considered a programmer. We discount our knowledge and label ourselves a fraud for needing external support. 
+The most common reason for our reluctance in asking for help is our desire for comfort. Asking for help means placing ourselves into a state of vulnerability and hoping the people we're asking to help us will treat us with kindness, respect, and dignity. This vulnerability can be amplified if we don't know the person we're asking for help, or if the person is a medical professional. But putting ourselves in these vulnerable situations is necessary, especially if the problems or situations we're facing are out of our control or experience. If we're close to burning out (or are suffering through burnout) we may need the help of a doctor or therapist to uncover better ways to cope with what we're experiencing. If our job is causing stress and strain we may want to talk with others in our community to see if we're alone in experiencing these feelings. Even the simple act of commiseration with our peers can help us realize that we're not alone in facing these issues, and may help us find better ways of managing our workload and stress.
 
-There's also the fear that we'll become a burden if we ask for help when we struggle. These feelings can be magnified if we've had issues with learning, or are suffering from PTSD, chronic fatigue, or any number of physical, mental, or emotional constraints. There's the tendency to want to do more for ourselves, even if that is unlikely to work for us.
+"There's no shame in asking for help" is an overused phrase, but asking for help is not a shameful act. We need the help of others. Even someone saying "I'm sorry you're dealing with that" can be a connection with someone else who sympathizes what we're going through. Finding others who are willing to listen, empathize, and commiserate can be the difference between feeling part of a community and feeling like we've been abandoned in our profession.
 
-I know from my own experience that I struggle with asking for help. Part of this was instilled in me whenever I would ask a question and get the dreaded "you should know that already" response. Other times I felt like if I asked for help it would somehow diminish my reputation. Folks would know that I wasn't the programmer they thought I was. They'd wonder why they hired or trusted me in the first place. But when I finally did ask for help the question I received wasn't "why don't you know this?", it was "why didn't you ask for help sooner?". Sure, there were the occasions where I would receive criticism for not knowing something, but in my own experience asking for help gave me more positive benefits that outweighed any real or perceived criticism of my abilities.
+We also need to recognize when our support systems aren't supporting us. If we find that talking with someone else is not helping us resolve the issue we may need to find other means of help. You may recognize that you need additional support. Realizing that you need additional support can be a difficult realization, but once you have that realization I'd encourage you to act and get additional help. This requires self-awareness and honesty with how you are feeling. Only you know your situation and if you're being honest with yourself. And if you're not being honest with yourself then only you can take the initiative to seek out the help that you need. Nobody else knows your inner-workings better than you.
 
-This is especially true if we have physical, mental, or emotional constraints that are interfering with our performance. It can be difficult to unpack what it is that you need help with, or admit to others that you are struggling and need additional help. ...
+Asking for and receiving help is a skill and like any skill it needs practice. When we're young we have simple means of asking for help (crying, pointing, etc.). These skills are baked into us as part of our survival mechanisms. But as we grow our world becomes more complex. Our methods for asking for help need to mature as we mature. This is not something that comes naturally to any of us. We will struggle to ask for help, and we will resist when we're receiving help from others. But with repetition and careful practice we can improve these skills. Improving these skills will help us to overcome the obstacles we face throughout our day. And that will help us to become not only better programmers but also better at handling the challenges that life gives us.
 
 ## 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.
+Programmers don't like to think about giving up. How many times have we asked others to be patient while we try to fix something that isn't working? ("Just a few more minutes, please. Honest!") We work on machines that feel like they have limitless possibilities, and as programmers we feel compelled to explore those possibilities. But sometimes we don't want to do that exploration. Sometimes we look at the list of things we should be learning and wonder if it's worth the effort. We look at job postings for our set of skills and find nothing but lists of meaningless work. New programmers ask us what it's like to be a programmer and we consider if we should warn them about the dangers of choosing a career that led us to being unhappy and unfulfilled. The joy that sustained us while learning the craft disappears and we struggle with the fear that we will never 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 still be relevant by the time I'm finished. Will I be able to compete in a job market where I feel like everyone has a head start? I struggle looking at job positions that offer work that I don't think will matter six months from now, let alone 10 to 100 years from now. I feel like the computing future I was promised was corrupted and we're stuck in a world where computers are little more than levers for companies to pry open the wallets of their customers.
+Programming isn't for everyone. There are times when I've wondered if I should continue working as a programmer. I'm frustrated that I can't possibly learn everything that I want to know. I worry if I'm learning will still be relevant by the time I'm finished. I'm anxious that I won't be able to compete in a job market where everyone else seems like they got a head start. I struggle looking through job positions that offer work that I don't think will be relevant six months from now, let alone 10 to 100 years from now. I feel like the computing future I was promised has been corrupted 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 the job market has to offer.
 
+### FIXME
+
 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. There are always topics and ideas to discover, including areas like game development, esoteric languages, or other programming paradigms. What the job market uses is but a fraction of what is out there waiting to be explored. There's also a whole host of emulators and retro-computers available with good documentation and vibrant communities. One of the things that has intrigued me is learning how older computers work. Older computers are simple and can learned rather easily with the right mindset. They are well-understood and older programs were generally put together by one programmer.
 
 But there can also be the realization that there's no joy left for us 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?