Generative models and programming talent
esr.ibiblio.org
esr.ibiblio.org
The "CS IQ" test in the article bothered me because it rewarded premature optimization (forming a generative model and sticking to it even when you have no reason to believe it's right) instead of what I would consider a more optimal strategy (recognize that you don't know how assignment works, hypothesize about the possible ways it could work, and use a different model of assignment for each question, thus hedging your bets for partial credit).
I think you are also using a different definition of "optimal strategy" than the author. The test was not measuring test-taking strategy - it may not even have been scored in a student-visible way. In the absence of a score-optimizing approach the natural inclination of the student's analytic style should come to the forefront. Additionally, the test had predictive power regardless of a root cause. Students who used a consistent model in selecting answers went on to succeed in the programming course, and the others did not. The underlying cause may actually be different but the concrete result stands.
One tactic that increases adaptability is not forming a model until you actually have to; this avoids confirmation bias.
You're also right about the nature of the test: as an experiment, it does show that presence of generative models predicts success. I'm interested in education, so I'm voicing the reason why this wouldn't be a practical test of qualification.
If I ever get around to making a real language (ahem), I will probably use either "<-" for infix assignment (left arrow) or "set" for pre/postfix; "=" will be a value comparison, and "is" will be a pointer comparison (i.e., symbol equality, capable of comparing non-terminating data structures, etc).
The idea of a generative model reminds of the Architect, one of the INTP types, blokes the seek to model everything and understand every little detail of how stuff works. I expect a lot of hackers to be of this type.