how do I teach them about this new world of critical thinking and data?
A phrase for this that I came across recently is ‘unmediated access to reality.’ That is, most things that people do are mediated by the people around them; you write an essay, and the teacher decides if it’s a good essay on not based on their subjective standards. You write code, and the compiler determines whether or not there’s a syntax error based on its objective standards, and there is no pleading with the compiler.
I think programming is the easiest way to get experience of living in an objective-truth-world, but it’s worth pointing out that this is one of the reasons programming is so painful, and encouraging people to program because hunting for bugs is character-building* instead of because programming is useful seems like it might not go far.
*Specifically, it builds a lot of rationalist habits, and people talking about the heuristics and biases as ‘bugs’ in ‘mental programming’ seem to be making a very close analogy. I don’t think it’s an accident there are so many CS people running around here.
My 19 year old started traditional engineering in college I am glad he did this and I shared with him this concern about balancing intuition with rational thinking. My second is thinking of doing music or law, so he is more “liberal arts” oriented, although law can have links to philosophy and rationality.
My 15 year old girl is still thinking about Taylor Swift so that is a longer term project!
Note that programming as experienced by beginners leads one to a lot of “objective truths” about how programming works that are actually choices made by the designers of the language, the operating system, or other layers of the total system one’s program executes on. And some of those choices are so commonly adhered to that you’ll never see past them just by trying different languages, only by making an effort to understand the system.
I agree that programming provides “objective-truth-world” in the sense that there are definitive true answers; but those answers are still built out of two-place predicates — they refer to the particular system you’re working with.
A phrase for this that I came across recently is ‘unmediated access to reality.’ That is, most things that people do are mediated by the people around them; you write an essay, and the teacher decides if it’s a good essay on not based on their subjective standards. You write code, and the compiler determines whether or not there’s a syntax error based on its objective standards, and there is no pleading with the compiler.
I think programming is the easiest way to get experience of living in an objective-truth-world, but it’s worth pointing out that this is one of the reasons programming is so painful, and encouraging people to program because hunting for bugs is character-building* instead of because programming is useful seems like it might not go far.
*Specifically, it builds a lot of rationalist habits, and people talking about the heuristics and biases as ‘bugs’ in ‘mental programming’ seem to be making a very close analogy. I don’t think it’s an accident there are so many CS people running around here.
My 19 year old started traditional engineering in college I am glad he did this and I shared with him this concern about balancing intuition with rational thinking. My second is thinking of doing music or law, so he is more “liberal arts” oriented, although law can have links to philosophy and rationality.
My 15 year old girl is still thinking about Taylor Swift so that is a longer term project!
Note that programming as experienced by beginners leads one to a lot of “objective truths” about how programming works that are actually choices made by the designers of the language, the operating system, or other layers of the total system one’s program executes on. And some of those choices are so commonly adhered to that you’ll never see past them just by trying different languages, only by making an effort to understand the system.
I agree that programming provides “objective-truth-world” in the sense that there are definitive true answers; but those answers are still built out of two-place predicates — they refer to the particular system you’re working with.