But they key to becoming a non-beginner are the first two bits, not the third. It's developing that filter experts have which separates relevant information from irrelevant information. Lots of beginners use Google in a backwards sort of way, having been trained to "look for the solution."
It's not about memorization, then, it's about this compression algorithm we call "being an expert."
I think this goes pretty much for everything that you do using Google, not just programming. I do some on-site user support on the side, fixing end user PC problems. Most people watching me over my shoulders are usually shocked to see that I have to Google the solutions for most problems.
Once the shock wears off, they are actually fascinated by how I seem to be able to instantly filter between relevant and non-relevant content and search results. Some even tell me that they've Googled for hours for a problem that people who have this "filter" ability can probably find a solution for in under a minute...
It's more broad than that. I'm pretty sure that's just what it means to be an expert at anything. You have a set of heuristics at work as an expert. To a beginner, everything has the same emphasis. They won't even be able to differentiate correct from incorrect in many cases.
Watch a lawyer scan through a contract or a copyeditor edit your essay -- same thing. They catch in a second something you'd never catch in hours and hours, if ever.
I was replying to wting, but HN doesn't let me reply to a reply by the same author as a way to combat back-and-forth style arguments, I guess.
He said that experts doing that is "trained pattern matching gained through experience, i.e. machine learning."
But that's backwards: machine learning in this style is a model of something we observe in ourselves. The thing that's in us is the pipe, the machine learning algorithm is the picture.
It's trained pattern matching gained through experience, i.e. machine learning.
What you said in the GP post stands true, it's important that beginners learn the correct patterns (look up documentation for idiomatic examples) and not false ones (blindly copy and pasting code).
You see this all the time in casinos; their goals is to reinforce poor pattern matching behavior. From roulette tables' results signs to bad poker players chasing terrible odds, the human mind has the ability to disproportionally increase the significance of selected memories.
It's not only knowing how to filter the results, but knowing what to Google for in the first place. Often results will be different if the search uses slightly different terminology, and knowing what the right terminology to use is requires a little bit of domain knowledge. Once you have the domain knowledge, not only is it easier to determine what results are more likely to yield useful information, but you also get better results in the first place through better search terms.
I see it more as a Family Feud style of reasoning. It's not just "how to ask the question" but "how other people would ask the question." Being able to model how other people would ask the question (empathy) is a key skill.
In my mind using jargon or appropriate domain-specific terminology is an instance of that.
Yes, my first steps in learning about something new are to search usin the words I know to find terms, then use those terms to find other terms, and to keep going until I have hit bottom. Then I read the books the people using the most expert terms recommend.
I agree with this. I was recently amazed when a front-end developer came up with a google query that had much better results for a problem I was having.
Yes it's funny when they are paying me to do tech support and the first thing i do is google their exact error message, but I know how to hone in on relevant information.
The interesting thing here to me is that this represents a failure of Google to present you with relevant information and only the relevant information.
It's an opportunity. Not an easy one, by any means, but still an opportunity.
This is something only someone who was already on their way to being an expert would say. :)
A beginner with a broken, incomplete, or confused model of the world won't be able to accurately assess whether a new piece of information is consistent with that model. The information could directly address their issue and they won't even realize it. The expert, standing over their should, is dumbfounded: "Your answer is right there! You scrolled past it five times!"
This isn't something unique to programming. It's true of all human understanding. How long were humans relatively comfortable with magnetism and electricity before we understood the relationship between them?
The effects of electricity are all around us. It's why we can't put our hand through the table. But you have to have a deep understanding of electromagnetism to see how that "obvious" fact is related to the this magical voodoo thing we call electromagnetism.
To recognize an answer you almost have to know it. Somebody unfamiliar with the right solution will not recognize it even if it is staring them in the face.
>Once the shock wears off, they are actually fascinated by how I seem to be able to instantly filter between relevant and non-relevant content and search results.
This filtering is definitely crucial. I think when you're on your own, you don't even tend to realize how much is just being ignored. I've also had people look over my shoulder and say "what about that?" and point at obviously useless results that I had skipped over. Explaining why you skipped that link and don't think it's worthwhile can be a challenge.
I think this goes pretty much for everything that you do using Google, not just programming. I do some on-site user support on the side, fixing end user PC problems. Most people watching me over my shoulders are usually shocked to see that I have to Google the solutions for most problems.
Once the shock wears off, they are actually fascinated by how I seem to be able to instantly filter between relevant and non-relevant content and search results. Some even tell me that they've Googled for hours for a problem that people who have this "filter" ability can probably find a solution for in under a minute...