Programming and Philosophy

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.

6 thoughts on “Programming and Philosophy

  1. William

    Curious, I’ve never heard of Scheme, though I’m not a programmer. However, it appears to be a Functional Program, like Haskel or F# or R, which has its roots in Lambda Calculus.

    Building complex network systems with functional programs seems like a promising way to create super intelligent automation systems.

    By creating functional programs that nest within scalable systems, and which utilitarian the same functional logic, it would reason that emergent complexity of higher order systems would arise.

    Like

    Reply
    1. deroj Post author

      > However, it appears to be a Functional Program, like Haskel or F# or R, which has its roots in Lambda Calculus.

      Yes, Scheme is a Lisp dialect so it is a functional programming language, to the best of my knowledge. If you have a math background you might want to skip Simply Scheme and check out Structure and Interpretation of Computer Programs (SICP) instead (link below). Also feel free to check here for more: http://curi.us/2210-programming-discussion

      SICP: https://mitpress.mit.edu/sites/default/files/sicp/index.html

      Liked by 1 person

      Reply
      1. William

        I own that book!

        Bought it a few years ago but I haven’t spent more than a few hours studying it. Seems to be a good time to start.

        Like

      2. deroj Post author

        > You’re inspiring me to learn programming as well.

        That is good. I’m glad to hear that. Gl.
        If you are interested in discussing and learning about good ideas I’d recommend checking out curi.us btw.

        Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.