Finished re-editing Chapter 01
authorCraig Maloney <craig@decafbad.net>
Sat, 22 Jun 2019 13:32:23 +0000 (09:32 -0400)
committerCraig Maloney <craig@decafbad.net>
Sat, 22 Jun 2019 13:32:23 +0000 (09:32 -0400)
chapter01.md

index 69ee953e028c0d0ee7832690951599b4bda4664c..8112b798d24e0c24e03a32977c1365ce5ae0410e 100644 (file)
@@ -31,9 +31,9 @@ Change can be positive, but change requires time and effort in order to adapt to
 
 I'd love to tell you that there's a way to close the gap; a way to say you've learned it all and can feel confident that you have mastered the totality of programming.
 
-Sadly I haven't found a way to close all of the gaps.
+Sadly, I haven't found a way to close all of the gaps.
 
-You can keep learning everything there is to know about whatever topic you've chosen to learn. You can take every course available. You can attend every talk and colloquium, read papers about the subject, and even do your own research and you can still feel like you haven't closed the gap.
+You can keep learning everything there is to know about whatever topic you've chosen to learn. You can take every course available. You can attend every talk and colloquium, read papers about the subject, and even do your own research, and you can still feel like you haven't closed the gap.
 
 So if there's no way to completely close the gap what can you do?
 
@@ -41,22 +41,22 @@ There's three options available to you:
 
 The first option is to not try. Realize there will always be more to learn. Why bother? It's easier to tell yourself you'll never be able to close the gaps in your knowledge. The best option, you tell yourself, is to stick with what you know and ride that out as long as you can. 
 
-The second option is to try and become frustrated when you realize how much further you have to go. You grab every book, blog post, paper, video, or what-have-you to try to learn the topic. Then you realize that even with all of that you have a finite amount of time to learn the topic. Next comes the frustration that you didn't figure out that you needed to close this gap sooner and as you look over your progress you despair at how much further you need to go.
+The second option is to try and do everything at once. You grab every book, blog post, paper, video, or what-have-you to try to learn the topic. Next you realize that you only have a finite amount of time to learn the topic, and that you can't use all of that material at once. You look over your progress and despair that your learning is not progressing a quickly as you would like. You blame the materials for your lack of progress and look for something else that will help you better learn the topic. Frustration sets in as you blame yourself for not starting earlier to close this gap.
 
-The third option is the more measured approach. You start small with small tasks and work your way toward the goal. Rather than look at the gap as something to be closed you realize that you can't know the totality of whatever topic you're learning and instead enjoy the knowledge that you receive in its pursuit. You keep a steady pace toward learning as much as you can. Instead of lamenting that you didn't start sooner you're glad that you started at all.
+The third option is the more measured approach. You start small with small tasks and work your way toward the goal. Rather than look at the gap as something to be closed, you realize that you can't know the totality of whatever topic you're learning. You enjoy the knowledge you receive in the pursuit of learning the topic. You keep a steady pace toward learning as much as you can. Instead of lamenting that you didn't start sooner you're glad that you started at all.
 
 Of these three options the first and third are the ones where you'll find the most contentment. The first option (not trying) allows you to sit with the knowledge you have. But there's a downside to just staying in place. Our industry is constantly changing and technology continues to move. What used to be the norm becomes legacy and what was just around the corner becomes the thing that is in demand.
 
-One of the most useful skills of a developer is the ability to adapt to new technology. As our technological environment changes our ability to adapt to those changes allows us to continue on as developers. Faster machines, different technologies, different devices, different requirements; each of these things brings us exciting challenges if we recognize them. But they also take time to learn and create gaps in our knowledge. Relying on our previous knowledge to carry us through these changes isn't going to be enough. We're challenged to adapt to the new surroundings.
+One of the most useful skills of a programmer is the ability to adapt to new technology. As our technological environment changes, our ability to adapt to those changes allows us to continue on as programmers. Faster machines, different technologies, different devices, different requirements; each of these brings us exciting challenges if we recognize them. But they also take time to learn and create gaps in our knowledge. Relying on our previous knowledge to carry us through these changes isn't going to be enough. We're challenged to adapt to the new surroundings. 
 
-The second option (trying to cram and becoming frustrated) is the least optimal path forward. Trying to learn quickly by grabbing every available resource and jamming it into our brains is a way to frustration, fatigue, and burnout. Many developers try this because they see they need to adapt to the new environment but it's difficult to make sweeping changes all at once. This also leads to measuring your progress by how much further you feel you need to go. It discounts the progress you've made, and creates an endless cycle of running toward a moving finish line.
+The second option (trying to cram and becoming frustrated) is the least optimal path forward. Trying to learn by grabbing every available resource and jamming it into our brains is a way to frustration, fatigue, and burnout. Many developers try this because they feel the need to adapt to the new environment but it's difficult to make sweeping changes all at once. It's like trying to evolve wings because you're late for an appointment: you'll be frustrated with your inability to grow wings and still be late for your appointment. The second option also measures your progress by how much further you feel you need to go. It discounts the progress you've made, and creates an endless cycle of running toward a moving finish line.
 
 Of the three options it's the third option that makes the most sense. Taking a measured approach in closing the gaps of our knowledge allows us more joy in our learning process. By breaking down each of the steps on our journey we give ourselves little wins along the way. Instead of expecting a grand transformation we allow ourselves gradual changes and mutations to adapt to our environment.
 
 With this measured and gradual approach we also gain the wisdom that we don't have to close all of the gaps. We can allow ourselves to keep learning in the areas that we need to and gradually build up our skills. 
 
-We also can realize that closing the gap is an illusion. As long as we're alive there will still be gaps; new things are created every day. We can choose how far we want to go to become more expert in whatever topic we chose to learn. We can still strive to learn as much as we can but we do so with a sense of joy in the learning process, not from some perverse need to try to collect all of the knowledge in our heads.
+We also can realize that closing the gap is an illusion. As long as we're alive there will still be gaps; new things are created every day. We can choose how far we want to go to become more expert in whatever topic we chose to learn. We can still strive to learn as much as we can, but we do so with a sense of joy in the learning process, not from some perverse need to try to collect all of the knowledge in our heads.
 
 ## The Journey is the Reward
 
-The secret to moving forward in our journey as programmers and developers is to realize that each step we take along that path is valuable and worthy of our attention. Just because we haven't learned the latest technology in a fortnight doesn't mean we should give up trying. Nor does learning a technology only to watch it become overshadowed by something else mean that our learning time was wasted. Every challenge we face, every technology we learn, and every hour we spend coding is another step on our journey to becoming better programmers. Each mistake and wrong turn introduces us to opportunities to learn from those mistakes and grow as programmers and developers. There is no perfect path toward becoming better at this stuff. Even if there were I'm sure we could point to any point in our past and say that it was less than perfect. Carving the perfect path from where we are to where we wish to be is not possible. Worse, it is an illusion that keeps us from moving forward in our daily practice of programming and developing. It may seem trite to say "the journey is the reward" but each day we work as a programmer and developer is one day closer to shoring up those gaps in our knowledge and becoming more content with how our skills are growing.
+The secret to moving forward in our journey as programmers and developers is realizing that each step we take along that path is valuable and worthy of our attention. Just because we haven't learned the latest technology in a fortnight doesn't mean we should give up trying. Nor does learning a technology only to watch it become overshadowed by something else mean that our learning time was wasted. Every challenge we face, every technology we learn, and every hour we spend coding is another step on our journey to becoming better programmers. Each mistake and wrong turn introduces us to opportunities to learn from those mistakes and grow as programmers and developers. There is no perfect path toward becoming better at this stuff. Even if there were I'm sure we could point to any point in our past and say that it was less than perfect. Carving the perfect path from where we are to where we wish to be is not possible. Worse, it is an illusion that keeps us from moving forward in our daily practice of programming and developing. It may seem trite to say "the journey is the reward" but every day we work as a programmer and developer is one more day closer to shoring up those gaps in our knowledge and becoming more content with how our skills are growing.