I am exactly the same, in fact, I didn't even finish reading the post before deciding I understand the gist of it and I have learned enough.
For some reason it brings the following quote by Feynman to mind:
I often liked to play tricks on people when I was at MIT. One time, in mechanical drawing class, some joker picked up a French curve (a piece of plastic for drawing smooth curves -a curly, funny-looking thing) and said, “I wonder if the curves on this thing have some special formula?”
I thought for a moment and said, “Sure they do. The curves are very special curves. Lemme show ya,” and I picked up my French curve and began to turn it slowly. “The French curve is made so that at the lowest point on each curve, no matter how you turn it, the tangent is horizontal.”
All the guys in the class were holding their French curve up at different angles, holding their pencil up to it at the lowest point and laying it along, and discovering that, sure enough, the tangent is horizontal. They were all excited by this “discovery” -even though they had already gone through a certain amount of calculus and had already “learned” that the derivative (tangent) of the minimum (lowest point) of ANY curve is zero (horizontal). They didn’t put two and two together. They didn’t even know what they “knew”.
That reminds me of one of Hegel's better lines, from the preface to The Phenomenology of Spirit: "What is well-known is not necessarily known merely because it is well-known." (This particular translation is Walter Kaufmann's, if I remember correctly.)
If HN will pardon my humanities showing a bit, I've always found this to be a great quote from TS Eliot:
"In order to arrive at what you do not know
You must go by a way which is the way of ignorance."
I came to CS and programming only after a degree in the humanities so every time I learned something new I felt incredibly stupid. I would read books very slowly and carefully, re-reading any tricky parts, and never assuming my prior knowledge in an area was at all relevant to what I was learning. But after every book I read, or topic I learned my mind and understanding of the world really felt expanded.
After a while I started to gain confidence, and the perhaps a bit more than confidence. I remember being proud the first time I opened a technical book and thought "pssh I know most of this already this will be a quick read". But I quickly discovered that whenever I approached a topic this way I only left with a shallow change in my understanding. In fact I realized that I was shaping this new material to what I already new rather than expanding my existing assumptions. I was essentially wasting my time, reinforcing my ego but not really learning much.
So whenever I meet someone who is learning something new and they're angry with themselves for how 'stupid' they are, I remind them that this is actually the peak of learning. And likewise whenever I open a book, even if it's in familiar territory I try to put myself in that mind set of ignorance. It's a pity we, especially in technical fields, associate so much shame with ignorance, when this is a feeling that we should aim for when we sit down to learn.
For anyone familiar with Zen Buddhism you'll probably recognize this idea as a variant on Shoshin or "beginner's mind"
whenever I meet someone who is learning something new and they're angry with themselves for how 'stupid' they are, I remind them that this is actually the peak of learning
Probably not. You learn best from material that is at the right level--not too easy but also not too hard. Your level of preparation determines whether something is too easy, too hard, or just right. If something is too hard, you're usually better off finding easier material and working your way up to the harder material more gradually if at all possible. Trying to learn from material that's too difficult is inefficient. You won't get to your destination faster by starting your car in third gear.
I came upon his general idea of not trying to only understand the big picture, but also learn the implications and details of the matter at hand on my own. The reason I say 'on my own' is because I believe reading it in a book helps systematize and possibly take more out of it.
Now, this was a few years ago, and I remember thinking about this a lot. For me, it was like I was more conscious of my entire world and I felt more conscious of everything and more responsible for my actions. This drove me to act in a more practical manner. I remember a friend told me, 'You sound more grounded in reality now' (I wanted to change the literary world before and, thus, be one of the best writers of the 20th century--yes, very humble).
Now, some might say this preface is just an excuse to get to my main point, while others will understand the relationship between what I wrote above with what I will say now.
Kafka once said that every metaphor is meaningless (one of his paradoxes, since he only spoke in metaphor). Now, a metaphor is a type of analogy. And the OP says that 'reasoning by analogy is notoriously unreliable'. He says this in passing, but it stuck with me.
The more I practice a "detailed analysis" or "detailed reading" of things and truly absorb what I read and become conscious of my life, the more it teaches me about other parts of my life. Sometimes I speak to someone and think about another, completely different conversation and think, 'Oh, that's what he meant', by simply talking to another person about something completely different.
Other, seemingly unrelated ideas, help me understand other, seemingly unrelated, ideas.
The things I don't understand I place in a particular part of my brain or in a particular 'thought spot' for later use. I do this consciously. And as I go about my life, I go back to them when I collect a piece of information that helps me better understand it.
Anyway, there is slightly more to it, but I'll keep this short. Plus, this isn't the ideal place to explain all of it, but I wanted to share this idea with everyone.
I have the opposite problem. I play and play and experiment but rarely get to doing real stuff. I try to go very deep with my understanding before doing anything serious and through this usually discover how actually complex whatever I study is. And this complexity throws me off. The tool that I am studying becomes a subject of study itself.
This isn't an overfocus or overstudy problem, it is just a fancy way of getting distracted or procrastinating. You can learn at least as much by diving in to make an 80% solution and then polishing it up - as you can by deferring the work for more study. Maybe more, because there are some things you just don't learn until you actually have something and until you actually finish something.
I agree completely. When I find myself in such a situation I usually try to slap myself mentally and go on and actually do something. And from experience I know that I will actually learn more through doing. There is also matter of interning some things through actually working with them. That's why it's important to actually solve differential equations when you are studying them and not just read the theory. And yes, I am a procrastination champion alright.
I very much agree. I am reading his post on cognitive therapy now, as it sounded interesting, but I wonder if he could describe some of what he has done to survive/heal this particular pattern. I'm curious about the cognitive habits behind making yourself stick with something until it effects you. Simply telling yourself it's stupid to be so superficial is not as effective as some people might believe.
"Feeling Good" by David D. Burns is a good resource. Lots of activities with writing things down.
Reading this now for the reasons "prescribed" on the cover, but I have discovered that (at least) half of the the self-help and productivity tips that show up here (or lifehacker), are already in this book. Don't let the title fool you; it's not as touchy feely as it sounds (okay, maybe it is in its examples, but the solutions are all along rational lines - see also http://en.wikipedia.org/wiki/Rational_emotive_behavior_thera... and "A New Guide to Rational Living").
>My weakness is thinking that when I first grasp an idea, I think I'm done.
I must admit that this is what I've been doing all in this time. Maybe because of the Hubris mentioned in the article and limited experience, I believe that it is still might be the better way. You are welcome to disagree. Here's an unorganized mess of what I think:
1) Making mistake is the whole point.
At the point where you make a mistake, is where you learn about it most effectively. Reading in depth doesn't give you that experience and its boring. :/
http://www.psychologytoday.com/blog/radical-teaching/200905/...
2) There's just so much to learn.
When the time calls for you to apply your knowledge, if you have the big idea (or vague if you want to call it) of many things, you can decide most effectively which branch to go deeper into at that particular field. Might also be interpreted as making more mistakes in that field. That's why, experience is weighed more than education.
After few of those encounters, I think you will tend to become an "expert". Probably is the reason why hobby projects are quite healthy to have such encounters.
“An expert is a man who has made all the mistakes which can be made, in a narrow field.” – Niels Bohr
"The map is not the territory," kept coming to mind as I read this.
To me, this is the difference between having a collection of explicit thoughts about a domain (a mental model), and having a deeply embodied understanding of it, a relationship that is less explicit and more intuitive. The former is possible to create very quickly by analogy and understanding related topics, while the latter comes from intimate, repeated, engaged experience.
While explicit mental models are useful for communicating, comparing, and understanding in mechanical terms, the intuitive, embodied understanding that comes from experience is the key to high performance.
As a thought experiment to test this idea, you could think about your current programming paradigm and when you first understood certain aspects of it.
The other day I wrote "...you probably need to do a large project to feel the effects of a methodology or programming paradigm. Subclassing didn't make any sense when penguin was a subclass of bird (a subclass of animal). It made sense when I got all the functionality of UIView but could still customize it, and call NSObject methods like [object class] that I wouldn't have thought I'd needed at first."
At work I'm always "learning" things so that I can build something. I too was learning Ruby at one point, and it started off as an exercise in learning a new programming language. Trying new things little by little, by the time I got around to working on something real I found out I had a pretty good grasp on the language. This is a different experience than what I'm going through right now. There is more of a rush to learn something new so I can accomplish a task, to complete a project not to gain understanding.
There is a balance at work here. While it is true that humility and experience are great ways to learn a subject, there's something to be said for brashly jumping to conclusions, stating those conclusions, and having people tell you why they're wrong. I've learned a great deal by sharing my naive conclusions with people. An anonymous forum such as this even allows you to do it on a regular basis with no fear of being known as an idiot.
One of the worst "hints" I ever encountered was: To get an idea of what's going on in a paragraph, read the first sentence and the last sentence.
This gave me the illusion that I could understand what was going on in a text by skimming. And you can't do this reliably. [It doesn't work /at all/ with mathematics or serious CS].
A very hard habit to break. I wish I'd never learned it.
tl;dr: Anytime you find yourself making an assumption, stop. Educate yourself on that assumption and then move on.
I had a very similar problem when it came to learning. I am very fast at picking things up, so I often skim and assume certain things based on context. This has caused me several problems especially related to large projects and some implementation details. However, I have found a very effective way of getting around it.
When I am reading something and I see something that I can define by the context, I make a point of at least wiki'ing/googling the point in question.
For example, I was doing some embedded Linux stuff and working with some IO using sysfs. I could do what I needed and had a general understanding of how sysfs worked (based on context/assumption). However, once I learned up on sysfs and how it was implemented, it gave me a much greater understanding of what I was doing with the IO and how I should handle it according to my end goal.
I think it's often fine to pick up only a shallow understanding on your first time. Go away, try to use what you've learned, make all the silly beginner mistakes. Then, when you come back to the learning material again, you'll find it much easier to understand it properly.
>My weakness is thinking that when I first grasp an idea, I think I'm done.
That isn't always a weakness. What he was missing was deciding how deeply he needed to learn the subject first. Depth of Knowledge refers to how thoroughly you know and understand what you have been studying.
Sometimes "recognition" is enough, you know it when you see it, the information is familiar and you can relate parts when both are presented separately. Very useful for multiple choice tests and for covering a lot of ground quickly when you mainly want an overview and to be able to look things up easily if you ever need more.
Remembering information, memorizing lists & facts - building up your internal data bank. Working from memory you can present key facts and relationships that you have studied. This is a necessary foundation for deeper learning. If you cannot remember details, then you cannot reason from them. Too often this step is skimped in modern schooling; rote memorization is often necessary for real learning to take place. The most important thing to remember here is that you must PAY ATTENTION to what you are trying to remember. Repeated exposure is necessary for memorization - but you also have to pay attention to the material. The better you pay attention, the less it will need to be repeated for real learning to take place. Having a theoretical framework for the material to fit will also help since we remember mostly by association, this helps recall that. Recall is best tested by fill-in-the-blank type tests and short essay-type questions.
Because memorization is so time and effort intensive, don't waste your time memorizing things that are not important. First, you must remember the basics - arithmetic, spelling, vocabulary, and grammar. Next, you must remember things that you may need without time or references available when you need them, first aid and various other emergency skills. While learning, you need to memorize things that further learning will depend on, the basic facts and relationships in whatever field you are studying. Finally, when actually working in a field, you need to remember frequently used information that it would waste considerable time looking up repeatedly. These are also important to keep in mind, because to keep things memorized, you need to refresh the memory periodically. The first and last categories you will actually keep refreshed, if you are conscientious in their use by using them. The hardest to keep up on is the second category, emergency skills.
In the third level of knowledge, you understand the material and are able to explain things in your own words. You can draw new relationships between facts. You need to be able to remember details to explain things in your own words - for a long time I deluded myself that I could understand the material because I could follow along with the explanation easily enough as I read it. But you do not truly understand something until you can explain it in your own words from memory.
Finally, you can use information in papers and discussions to articulate and defend what you know. You know the subject well enough to do independent, original research. Here you are learning in your subject primarily by working in the field rather than from others.
For some reason it brings the following quote by Feynman to mind:
I often liked to play tricks on people when I was at MIT. One time, in mechanical drawing class, some joker picked up a French curve (a piece of plastic for drawing smooth curves -a curly, funny-looking thing) and said, “I wonder if the curves on this thing have some special formula?”
I thought for a moment and said, “Sure they do. The curves are very special curves. Lemme show ya,” and I picked up my French curve and began to turn it slowly. “The French curve is made so that at the lowest point on each curve, no matter how you turn it, the tangent is horizontal.”
All the guys in the class were holding their French curve up at different angles, holding their pencil up to it at the lowest point and laying it along, and discovering that, sure enough, the tangent is horizontal. They were all excited by this “discovery” -even though they had already gone through a certain amount of calculus and had already “learned” that the derivative (tangent) of the minimum (lowest point) of ANY curve is zero (horizontal). They didn’t put two and two together. They didn’t even know what they “knew”.