Clear questions and runnable code
get the best and fastest answer
“there are those who get it, and the rest who don’t and never will.”
I fully agree. But I think the difference between those two groups is neither genetical nor does it involve some kind of god (if you like to believe in god(s)). From what I've seen, it seems to be a problem of the way how and why people learn, and how they where taught to learn.
The first sub-group of the "don't getters" are those people who are simply frustrated because they learned that learning does not pay. I think their parents and teachers either had no time to teach them learning, or no motivation. And that's a shame.
Another sub-group of the "don't getters" are people who think (or were made to think by social pressure) that being stupid is a good idea. This is even worse.
Then, there are those unfortunate people whose teachers insisted that they learn thousands of useless facts by heart, just to forget them as soon as possible after the following test. In the worst case, this was repeated through their entire school career. Those people think that "learning" means stuffing a phonebook into your head so that you can recite every phone number in L.A. during a test. Some people actually become pretty good in mindlessly reciting nonsense. Ask them WHY something happens and they don't have a clue. They never learned, and they never understood. And it's the fault of the teachers and the school systems that allow or force this nonsense. I had teachers for history, english and french that insisted in learning "names and (year) numbers" / german-english / german-french word pairs. History was boooooring, English and French were just fatal. I really learned history years later and I'm still learning, and my english was only improved because someone told me to read english texts instead of the stupid word pair lists. That way, I "got it".
The people who "get it" have successfully learned how to learn, and they have fun learning new things. In mathematics, they understood how algorithms work instead of learning huge tables. In history, they got a feeling for political and social trends instead of learning dates. In english (or any other foreign language), they understood the "inner workings" of the language instead of memorizing word-pair lists. And in computer science, they understand the ice cold logic of the machine where other people start babbling about magic.
From my experience, only those "lucky" people can explain what they learned, and they can explain it in a way that others can learn the same. And as soon as they have learned how to express themselves in one of the synthetic languages we use to instruct our computers, they can also explain a computer what they have learned.
Teaching is a really hard job, and especially the first years require much attention for each of the learners to keep them interested and motivated. But what I see around me is just wrong. Class sizes grow bigger and bigger each year, leaving less time for each individual. There is no money for education, except if rich parents spend it. Buildings crumble, and motivated teachers are rare. Teachers are old and try to get the job done with as less efford as possible. Those learners that really need motivation and support are stamped as dumb or useless. And motivated learners get a lot of social pressure. We are breeding an entire generation of "don't getters" with a few lucky ones that "get it", either due to rich parents or due to motivated teachers, or a combination of both.
And the teaching problem also ends up in the job. "Training on the job" is often offered here. But it just means that: You get trained to push the left button when the red light flashes, and to push the right button when the green light flashes. Nothing that a properly trained chimp could not do, or ten lines perl code. You don't know WHY you push the buttons, and you don't know WHAT happens. And everyone panics when suddenly a blue light flashes, or both red and green flash simultaniously, because nobody told you what to do in that case. If you had learned the job properly, you would know what the buttons do and what the lights mean. And you could react properly when something unexpected happens.
There were some reports in the last months that all told the same story: The crew was trained to make a complex machine work inside a set of defined parameters, the machine ran out of the parameter set, and nobody knew how to get the machine back to normal - simply because no crew member had an idea how the machine works. That just scares me - because those machines were airplanes or nuclear power plants.
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)