How do I teach this kind of skill?
Jan. 6th, 2012 01:16 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
I'm feeling sort of pleased with myself for coming up with an answer to a problem at work. The challenge? How do I teach this kind of thinking to anyone, particularly my kids.
At work there was a massive fire drill this morning. It could have cost us a LOT of money; the assignment for the tech folks was "Help! How bad is it?" Determining how bad it was in the end involved processing a lot of log/text files to extract the key information. Several of us were attacking different aspects of the problem. In the end, I got to a solution before someone whose day job it is to munge these kinds of things.
I got there faster not because I'm a command-line whiz kid (I'm not, he is) but because I was able to understand that the problem was, essentially, do a set difference on those two lists. I then Googled "linux command line set diff" and sure enough there's a way to do that. When I explained my solution to the tech whiz he agreed it was a good solution, but noted he never would have conceived of the problem as "find the set difference."
I don't think I'm all that much brighter than anyone else, nor am I especially creative. But I am good at this: seeing problems, analyzing them quickly, recognizing patterns, and getting rapidly to solutions. Except I haven't the foggiest idea how I do it, how I learned to do it, or how I would go about teaching that kind of skill.
Comments, thoughts, share-your-own-story all welcome.
At work there was a massive fire drill this morning. It could have cost us a LOT of money; the assignment for the tech folks was "Help! How bad is it?" Determining how bad it was in the end involved processing a lot of log/text files to extract the key information. Several of us were attacking different aspects of the problem. In the end, I got to a solution before someone whose day job it is to munge these kinds of things.
I got there faster not because I'm a command-line whiz kid (I'm not, he is) but because I was able to understand that the problem was, essentially, do a set difference on those two lists. I then Googled "linux command line set diff" and sure enough there's a way to do that. When I explained my solution to the tech whiz he agreed it was a good solution, but noted he never would have conceived of the problem as "find the set difference."
I don't think I'm all that much brighter than anyone else, nor am I especially creative. But I am good at this: seeing problems, analyzing them quickly, recognizing patterns, and getting rapidly to solutions. Except I haven't the foggiest idea how I do it, how I learned to do it, or how I would go about teaching that kind of skill.
Comments, thoughts, share-your-own-story all welcome.
no subject
Date: 2012-01-06 06:40 pm (UTC)no subject
Date: 2012-01-06 06:52 pm (UTC)Another factor is often being a generalist rather than a specialist. Specialists are really good with their normal set of tools, so they always try to use those first. A generalist, being handy with many tools but not being particularly good with any specific one tends to put their initial work into figuring out which tool will be best to solve the problem. So when the specialist is right, they'll have a solution much faster than the generalist, but most of the time the generalist will have the problem solved about the time the specialist figures out they've taken the wrong approach.
Teaching people to not just go with their first impulse, to always try to come at the problem from another angle helps a lot with this.
no subject
Date: 2012-01-06 07:05 pm (UTC)One specific technique I've used lately has a Sherlock Holmes feel to it, specifically, taking a step back from the problem and saying "Okay. Mechanically, what *must* be happening in order for this to be true?" It won't give a full picture, but it's a way to assert things about the environment in order to start narrowing the problem domain, because then you can work the decision tree backwards.
no subject
Date: 2012-01-06 07:12 pm (UTC)I have always found problem-solving to be an exercise in breaking the problem down into its simplest form or forms. And I think that it is something that is learned more through practice than anything else.
Puzzle solving seems to help me sharpen my skills that sense.
no subject
Date: 2012-01-06 07:59 pm (UTC)no subject
Date: 2012-01-06 09:04 pm (UTC)Hard question, no easy answer
Date: 2012-01-06 09:08 pm (UTC)no subject
Date: 2012-01-06 09:31 pm (UTC)I guess what I'm saying is "pattern matching". But I don't know how I learned that pattern matching.
I also think there's some value in learning, "okay, I tried this angle for 10 minutes, and it's my ego that's saying "stay on target" whereas my intuition is daydreaming. Let's say this is wrong, and try another angle."
no subject
Date: 2012-01-06 09:36 pm (UTC)* Recognize that what I already tried didn't work.
This sounds ridiculous, but it's really important. Most problems that come up I solve without thinking about them much; I just pattern-match subsets of the problem against solutions I know and try those solutions. It works great for quickly solving the problems it solves, but when a problem resists being handled that way it's really easy to end up in a stupid loop where I'm trying the same solutions over and over.
Mostly I take notes about what I do and what results I get.
* Make sure my feet touch bottom.
If a problem is too complex for me to fully understand at one gulp, I either break it down into sub-problems which I solve independently or I come up with a simpler version of the problem. I've struggled with a lot of smarter-than-me people over the years whose attitude seems to be that if they make the problem complicated enough, everyone but them will drown in the complexity and they'll win by attrition, even if the problem itself doesn't get solved.
* Adopt different perspectives.
"It ain't the things ya don't know that get ya. It's the things ya do know, that just ain't so."
If I'm stuck on a problem, I start throwing out things I thought I knew, approaching it from a completely different position. "What if that were false?" "What else does this look like, and what if it were really like that thing?" etc.
* Work backwards as well as forwards.
That is, not just "What might be causing this problem?" but "What might a solution look like, and how could I get to that?" (Followed by "What else might a solution look like?")
no subject
Date: 2012-01-06 10:30 pm (UTC)no subject
Date: 2012-01-06 11:31 pm (UTC)IMHO, a lot of it comes from actively seeking out diverse experiences that require problem solving. Your problem, for example, might be to bring your colleagues out to go rock climbing (gigantic, vertical problem set requiring kinesthetic knowledge) and to a Habit for Humanity site (spatial as well as, sequential problem solving, with a healthy dose of cat herding and a smattering of various maths).
It's not intuitive to everyone, but I think you get better at applying past experiences to a problem by accumulating experiences in domains that seem to have nothing to do with your customary problems: it makes your brain more flexible in applying those seemingly unrelated lessons to the problem at hand. When you think about it, your biggest asset in problem solving is flexibility, not necessarily domain-specific knowledge.
no subject
Date: 2012-01-07 03:18 am (UTC)no subject
Date: 2012-01-09 03:29 am (UTC)For my students, I made a d20 out of index cards with 20 tips, things to try when they are stuck.
In my area, defining the problem precisely, and defining what the answer would look like,
often solves the problem, or at least makes it MUCH simpler.
To understand something general, plugging in something specific for starters can help. An example is worth a thousand words.
In my area, "Is something equal to zero?" is often a crucial question. I call those "the dog in the nighttime" problems.
Working backwards often helps when working forward is hard.
Taking a guess, and figuring out why the guess is wrong is sort of a contrapositive approach.
Figuring out when two things are equal, how they are equal, and how they are not equal, can clarify things.
Those are the first few off the top of my head.
I agree that diversity of knowledge can be a big help.
Also facility with one area: one time I taught my astronomy professor something about eclipses because I noticed that
19 is exactly a third of 57.
I've read books that try to teach this stuff...generally, my d20 with one word on each face tends to have them beat.
It's hard to see how to teach it better.