I am learning programming. The programming language I chose to learn is Scheme.
Why learn Scheme, a symbolic programming language, of all things?
The reason is that I want to understand the conceptual thinking of programming. Regarding programming, Curi (Elliot Temple), told me:
you need the big picture instead of to treat it like a bunch of math.
Scheme looks to have good resources for doing that. From Simply Scheme’s foreword:
It [Simply Scheme] emphasizes programming as a way to express ideas, rather than just a way to get computers to perform tasks.
This is the essence of how good philosophy works as well: learning to understand concepts, integrating them into the big picture, and avoiding contradictions in the process. Objectivism teaches this. In Return of the Primitive: The Anti-Industrial Revolution, Ayn Rand writes:
There are two different methods of learning: by memorizing and by understanding. The first belongs primarily to the perceptual level of a human consciousness, the second to the conceptual.
[…] The second method of learning—by a process of understanding—is possible only to man. To understand means to focus on the content of a given subject (as against the sensory—visual or auditory—form in which it is communicated), to isolate its essentials, to establish its relationship to the previously known, and to integrate it with the appropriate categories of other subjects. Integration is the essential part of understanding.
Rand, in Atlas Shrugged:
Contradictions do not exist. Whenever you think that you are facing a contradiction, check your premises. You will find that one of them is wrong.
Do you see the similarities between good philosophy and Scheme programming?
By learning programming I work on philosophy – and by learning philosophy I work on my programming.
I am using Simply Scheme to learn Scheme.