Finishing up the last section.
[themediocreprogrammer.git] / chapter07.md
index 6c63ef17886f62a239a98b9ace9dda9b0360f465..9561d2c4776d48afdc3dc600972505f01fdb4b9d 100644 (file)
@@ -114,34 +114,32 @@ You will experience periods of burnout in your programming career. Things will c
 
 ## 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 who are learning to program 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.
+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.
 
-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. 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 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.
 
 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.
 
-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, whether that is 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 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. There are also newer, lower-powered machines out there in the embedded space that are fascinating to look at and understand, and can be simple enough to be understood by one person.
+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?
 
-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 sapped the fun and excitement of programming for us. Or we've found that the communities online and in our area 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.
 
-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. Programming is something that is best when you really want to do it. 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 felt they lost the spark and the desire to keep programming and have gone into other fields. It's OK to leave the work of programming computers and do something else.
 
-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.
+Programming is only one facet of our lives. True, it may be a big facet of our lives, 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 find that we're no longer experiencing any joy in programming then it's time to think about what else we can be doing with our lives outside of programming. 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. Taking time away from being a programmer is perfectly fine and is not a mark of shame. Plenty of programmers have taken a "sabbatical" from programming to allow themselves to explore other interests and recharge themselves. Breaking the loop of negative experiences in programming can help us clearly see what we want out of programming and a programming career. It can help confirm our innermost feelings about programming and see if it's right for us to pursue any further.
 
-There are several fears that can keep us from making this break with programming. The first fear goes by the fancy name of the "sunk cost fallacy". This fallacy is the belief that we have invested too much time and effort that will be wasted if we quit. I would argue that learning any sort of programming is not a wasted skill and can be applied to many facets of our lives, such as simplifying tasks into manageable steps, and basic Boolean logic.
+There are several fears that can keep us from making this break with programming. The first fear goes by the fancy name of the "sunk cost fallacy". The sunk cost fallacy is the belief that we have invested so much time and effort into learning and development that will be wasted if we quit. I would argue that learning any sort of programming is not a wasted skill and can be applied to many facets of our lives, such as simplifying tasks into manageable steps, structured thinking, and basic Boolean logic. Other fields  have also adopted computers so having some skill with computers and how they work can be helpful for yourself or other colleagues who are struggling to learn the technology.
 
-The second fear is that if we stop programming that we are letting down our fellow programmers in some way. This one is tricky because we might be on a team where we have a large load of tasks to complete and our decision to quit may mean these tasks won't get done the way we wanted them to get done. Or we may fear that our absence will cause harm to the enterprise and its eventual collapse. This fear requires us to choose between which is more important: our well-being or the well-being of others. It also requires us to explore whether those fears are true or whether they are groundless. Are we really that irreplaceable or can someone take our place? Sometimes the answer may be "no, but I need to do this for me or I will cause harm to both of us if this continues". Thinking in terms of the well-being of both you and the organizations you belong to in longer-term prospect may help you make this decision.
+The second fear is that if we stop programming then we are letting down our fellow programmers in some way. This one is tricky because we might be on a team where we have a large load of tasks to complete and our decision to quit may mean these tasks won't get done the way we wanted them to get done. Or we may fear that our absence will cause harm to the enterprise and its eventual collapse. This fear requires us to choose between which is more important: our well-being or the well-being of others. It also requires us to explore whether those fears are true or whether they are groundless. Are we really that irreplaceable or could someone take our place? The answer might be "no, but I need to leave this situation or I will cause harm to both of us if this continues". Thinking in terms of the well-being of both yourself and the organizations you belong to from a longer-term perspective may help you make this decision.
 
-The third fear deals with our own personal fears of identity and the memory of our community. If we decide to stop being a programmer will that somehow erase a part of our identity. Will our community stop identifying us as a programmer and will we lose contact with folks that have become friends, colleagues, and such. Again, this is tricky to overcome because programming may be a large part of the identity you crafted for yourself. Letting go of that can lead to you feeling less like yourself. And the fear that folks will stop calling you for programming projects can be compounded if you feel that you might just need a break from programming and may wish to return.
+The third fear deals with our own personal fears of identity and the memory of our community. If we decide to stop being a programmer will that somehow erase a part of our identity? Will our community stop identifying us as a programmer and will we lose contact with folks that have become friends, colleagues, and such? Again, this fear is tricky to overcome because programming may be a large part of the identity you have crafted for yourself. Letting go of that can lead to feeling less like yourself. And the fear that folks will stop calling you for programming projects can be compounded if you decide to take a break from programming (especially if this break is temporary).
 
-Each of these fears is a valid fear, but they may not be the truth. We can't control how others perceive us or how organizations move on without us. What we can control is our participation in each of these communities. We can determine if a hard break from programming would be better than gradually easing ourselves out of our commitments. We can clarify to others what our current standing is and if this is something that is permanent or temporary. But what is most important is that we don't let others persuade us into doing something that is harmful to us. If we need to stop programming because we are emotionally drained and burned out then we need to make it clear to others that we will be doing them a disservice if we continue.
+Each of these fears is a valid fear, but they may not be the truth. We can't control how others perceive us or how organizations move on without us. What we can control is our participation in each of these communities. We can determine if a hard break from programming would be better than gradually easing ourselves out of our commitments. We can clarify to others what our current status is and if this is something that is permanent or temporary. But what is most important is that we don't let others persuade us into doing something that is not what we want or is harmful to us. If we need to stop programming because we are emotionally drained and burned out then we need to make it clear to others that we will be doing as disservice to them and ourselves if we continue.
 
-Mature communities will understand the need to stop programming and walk away. They will understand that your mental and emotional well-being is more important for you than their needs to continue. And they will be able to piece together what needs to be done and heal from your absence. It is natural and normal for folks to move on from organizations and pursue other priorities. 
+Mature communities will understand the need to take a break and stop programming. They will understand that your mental and emotional well-being is more important for you than their need for you to continue. And they will be able to piece together what needs to be done and heal from your absence. It is natural and normal for folks to move on from organizations and pursue other priorities. 
 
-What's important to remember is that it's OK not to be a programmer and to turn off that portion of your being. Whether or not that is a permanent change is up to you and your desires. Programming is hard enough. Feeling emotionally drained, uninspired, and burned out is counterproductive to your programming exercise. Taking a break from programming to explore other interests is natural and doesn't mean you're less of a programmer for wanting to recharge yourself. And should you realize that you are happiest when you're not programming then we can appreciate the time that you were a programmer and promise to meet again someday should you return.
+What's important to remember is that it's OK to turn off that portion of your being and stop being a programmer. Whether or not you make that a permanent change is up to you and your desires. Feeling emotionally drained, uninspired, and burned out is counterproductive to your programming practice --- programming is hard enough. Taking a break from programming to explore other interests is natural and doesn't mean you're less of a programmer for wanting to do something different to recharge yourself. If you find that you're happiest when you're not programming then pursue whatever else has your attention with wild abandon. If you decide to return to programming after being away for a bit then you can return and pick up your learning practice. Remember: our lives take many different turns and paths. The best path for you is the one you make yourself, regardless of where that might lead.