From 3578e970de02a590ea66beb1ca89f17d5297d421 Mon Sep 17 00:00:00 2001 From: Craig Maloney Date: Tue, 31 Dec 2019 07:51:19 -0500 Subject: [PATCH] More editing of chapter 6 --- chapter06.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/chapter06.md b/chapter06.md index 1a4ca36..fec86b8 100644 --- a/chapter06.md +++ b/chapter06.md @@ -56,25 +56,26 @@ This is why the "focus container" is so important: it gives us small doses of di ## Mapping out longer-term goals -### FIXME -As you progress with learning you'll start to see that a lot of what we call programming is interconnected. Languages borrow heavily from each other and ideas that seem new and innovative have their roots in concepts dating back to the genesis of computing. Rather than dissuade us it should encourage us. We can open the doors of programming by learning simple, transferable concepts. The question is, which ones? +As you progress through the learning process you'll start to see that a lot of what we call programming is interconnected. Languages borrow heavily from each other and ideas that seem new and innovative have their roots in concepts dating back to the genesis of computing. Rather than dissuading us it should encourage us to open the doors of programming by learning simple, transferable concepts. The question is, which ones? The simplest answer is "all of them", but that's hardly satisfactory or possible. A less cheeky answer would be "enough of them to start seeing the patterns emerge" but that sounds more like a truism than something we can use to start making our longer term goals for learning. Rather than give specific advice on which concepts will serve you best in your pursuit of becoming a better programmer I'm going to suggest a technique that might help you map out what could help you. -Programming languages will mention the concepts they borrow from. Whenever you're learning and you see mention of one of these other concepts make a note of it and keep focusing on what you're learning now. When you've completed your learning for the day take a look at that list and do some searching to see what else shows up. If there are other things that show up then write them down on your list. These concepts might not make sense at the moment but having that list available and referring to it might help you make connections about programming that you might otherwise not notice. +Programming languages will mention the concepts they borrow from. Whenever you're learning and you see mention of one of these other concepts make a note of it and keep focusing on what you're learning now. When you've completed your learning for the day review the list of other concepts and do some searching to see what else shows up. If there are other things that show up then write them down on your list. These concepts might not make sense at the moment but having that list available and referring to it might help you make connections about programming that you might not otherwise notice. -When I was learning JavaScript I noticed that someone mentioned that JavaScript borrowed from languages like Scheme. Scheme is a functional language that was based on Lisp and was created as a teaching language for functional programming and recursion. So I took a brief detour into learning Scheme (partly because it was more interesting to me than JavaScript. Call it "creative procrastination", if you're being charitable.). What I learned while learning Scheme piqued my interest into other functional languages and functional programming. This in turn helped me understand some of the functional programming paradigms that were becoming popular in Python (list comprehensions, lambdas, etc.). By taking a brief detour in my learning of JavaScript I learned more about a whole family of languages and now I feel like I understand JavaScript and Python with more clarity than when I started. +When I was learning JavaScript I noticed that someone mentioned that JavaScript borrowed from languages like Scheme. Scheme is a functional language based on Lisp and was created as a teaching language for functional programming and recursion. So I took a brief detour into learning Scheme, partly because it was more interesting to me than JavaScript. Call it "creative procrastination", if you're being charitable. What I learned while learning Scheme piqued my interest into other functional languages and functional programming. This in turn helped me understand some of the functional programming paradigms that were becoming popular in Python (list comprehensions, lambdas, etc.). By taking a brief detour in my learning of JavaScript I learned more about a whole family of languages and now I feel like I understand JavaScript and Python with more clarity than when I started. I'm not suggesting that everyone take the "creative procrastination" steps like I have (I'm still in the process of learning JavaScript as of this writing), but it does help to make notes of the concepts you encounter and dig further. -This is one way to map out learning goals (see what shows up and be curious about how they fit together), but you may need a different approach. Perhaps you're under pressure to learn something to remain marketable or acquire some skill for your job that needs to be learned quickly. How do you map out those goals? +This is one way to map out learning goals (notice the other connections that show up as you are learning and be curious about how they fit together), but you may need a different approach. Perhaps you're under pressure to learn something to remain marketable or acquire some skill for your job that needs to be learned quickly. How do you map out those goals? -The approach I'm outlining is designed to help you learn how to learn. The best way to learn something quickly is to understand how other concepts fit together with what you're learning. This is great when you have experience with a lot of different languages and concepts, but for those who don't have much experience yet it will feel like you're trying to shove an elephant through a small funnel. This is where practicing learning every day will help you. It will help you break apart larger learning goals into smaller chunks and will help you recognize the fear and discomfort for what they truly are: acknowledgment that you're expanding your skills into new territory. +The pressure to learn quickly can make any task seem insurmountable, especially if you don't know how best to proceed. You may be tempted to rush through this process and hope you retain the knowledge you've learned. This approach doesn't lead to understanding, it leads to stress and burnout. The approach I'm outlining is designed to help you learn how to learn. The best way to learn something quickly is to understand how other concepts fit together with what you're learning. This is great when you have experience with a lot of different languages and concepts, but for those who don't have much experience yet it will feel like you're trying to shove an elephant through a small funnel. This is where practicing learning every day will help you. It will help you break apart larger learning goals into smaller chunks and will help you recognize the fear and discomfort for what they truly are: acknowledgment that you're expanding your skills into new territory. -Longer-term goals are just goals that have been broken down into shorter-term goals. Focus on the short-term goals and allow yourself to course-correct as needed (and follow a few connections as you desire.) +Longer-term goals are just goals that have been broken down into shorter-term goals. Focus on the short-term goals and allow yourself to course-correct and follow a few connections as needed. + +### FIXME ## Failure and learning -- 2.31.1