From: Craig Maloney Date: Sat, 3 Nov 2018 13:55:01 +0000 (-0400) Subject: Editing the first section of chapter 07 X-Git-Tag: 0.5.0^2~24 X-Git-Url: https://jxself.org/git/?a=commitdiff_plain;h=8ae0c9f7c636e0a0b1b910482eeabc7a0b88fe98;p=themediocreprogrammer.git Editing the first section of chapter 07 --- diff --git a/chapter07.md b/chapter07.md index ac92a0c..3fa38bb 100644 --- a/chapter07.md +++ b/chapter07.md @@ -2,38 +2,40 @@ ## The emotions of programming -There's a stereotype of a programmer sitting emotionless in front of the computer entering lines of code as though they were just transcribing them from memory. But if you've been around programmers you know that it's more like the stereotype of the frustrated composer. 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 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've been a programmer or have been around programmers you know that it's more like 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. 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 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. +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 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 -There are several factors that can cause us emotional highs and lows. These are some that I've noticed in my own programming. +There are several factors that can cause us emotional highs and lows while programming. These are some that I've noticed in my own programming. ### Purpose and utility -If we clearly see where this code will become useful we can get a sense of drive and purpose. We're working toward something that will benefit folks! Whatever pitfalls lie in wait for us we can be assured that we will do our best to make sure that we conquer them as best we can because people are depending on us. We can tap into the emotional high of self-worth and purpose to help buoy us along. +If we clearly see where and how this code will become useful we can get a sense of drive and purpose --- we're working toward something that will benefit folks! Whatever pitfalls lie in wait for us we can be assured that we will do our best to make sure that we conquer them as best we can because people are depending on us. We can tap into the emotional highs of self-worth and purpose to help buoy us along. -The opposite is true, of course. If we don't see the purpose then our work will seem in vain. We'll struggle to meet deadlines and feel a sense of worthlessness in our pursuits. Sometimes it's just a bad project, or it's a project that isn't aligned with our underlying purposes and goals. We can be frustrated trying to meet some arbitrary deadline if we don't see the point of what we're working on. +The opposite is true, of course --- if we don't see the purpose then our work will seem in vain. We'll struggle to meet deadlines and feel a sense of worthlessness in our pursuits. Sometimes it's a project that isn't aligned with our own purposes and goals. Or it could be a poorly managed project that we're forced to work on, despite our never explicitly agreeing to the terms. We can be frustrated trying to meet an arbitrary deadline if we don't see the point of what we're working on. ### Engagement vs. boredom -You've already experienced several layers of engagement with your programming. There are projects and topics that don't feel like a chore. You feel like you're learning something each step of the way. Time disappears. +You've already experienced several layers of engagement with your programming. There are projects and topics that don't feel like a chore. You feel like you're learning something each step of the way. The outside world disappears while we work in a cocoon of focus. We lose track of time and feel both disoriented and refreshed when the work is completed. -Conversely you've likely experienced the opposite: boredom. The code base doesn't engage you at all. The topic being covered is just re-hashing something you already know. It's a chore to get started and the minutes drag along throughout the whole process. +Conversely you're probably more familiar with the opposite: boredom. The code base doesn't engage you at all. The topic you're learning or working on is just re-hashing something you already know. It's a chore to get started. Everything in the world feels way more interesting and the minutes drag along throughout the whole process. ### Awake vs. tired -Sleep is a major contributor to how we perceive the world. Getting enough sleep manifests in feeling refreshed, awake, and inspired. We have the energy reserves at the ready to take on whatever challenges befall us. But when we don't get enough sleep (or enough quality sleep) we become irritable and less-open to engagement. We conserve our resources as best we can lest we use them up too quickly. +Sleep is a major contributor to how we perceive the world. Getting enough sleep manifests in feeling refreshed, awake, and inspired. We have the energy reserves at the ready to take on whatever challenges befall us. But when we don't get enough sleep (or enough quality sleep) we become irritable and less-open to engagement. We conserve our resources as best we can lest we use them up too quickly. We look to stimulants (caffeine, distractions, and the like) to keep us engaged throughout the day. ### Mental state -I'm using "mental state" in a broad sense to cover any of our existing feelings and current mental well-being. These can range from temporary feelings of unhappiness and melancholy to complex topics like clinical depression and PTSD. Our minds are complex machines that do their best to adapt to the situations and environment presented to them. At times this can clash with our desires to be productive and the struggle between our mental state and our desires can cause further emotional drain, discomfort, and despair. +I'm using "mental state" in a broad sense to cover any of our existing feelings and current mental well-being. These can range from temporary feelings of unhappiness and melancholy to complex and serious topics like clinical depression and PTSD. Our minds are complex machines that do their best to adapt to the situations and environments presented to them. At times this can clash with our desires to be productive and the struggle between our mental state and our desires can cause further emotional drain, discomfort, and despair. There are more things that can affect our emotions but these are the ones that I'd like to focus on as they cover a broad spectrum of what we bring to the tasks of learning and programming. +### FIXME + ## Awareness of our Emotional State Being aware of our emotional state (what we're feeling right now) gives us our current emotional location. We can see where we are and understand what our mind is telling us. Giving ourselves a few moments to truly see what emotional state our mind is in will help us to move forward.