blog.kevintom.com

Essays and Programming

I think there are many parallels between good programming and good essay writing. This is a thought I have kept in my head for quite a while, and after talking to Savraj about it I decided to write a post.

Fundamentally programming is the expression of ideas, and like essays the expression of those ideas has a structured form.
Both have an introduction, a body and a conclusion. Good programs read like good essays, and I suspect that people who can write good essays probably could write good programs.

Superficially programs don’t look like essays, however that is more a function of the languages we use to express our ideas rather than the ideas themselves. Keith would probably say Ruby on Rails (RoR) is a good example, since it reads almost like English, regular readers of English could probably read a RoR program and get the gist of the ideas.

I would bet that practicing writing essays probably makes you a better programmer (perhaps not as fast as writing more programs, but it may help in other non-obvious ways).

schooling and education

Like most people, I never used to make the distinction between schooling and education however after reading this link passed onto me from Keith I now see there is a great difference between the two.

I suspect now, that schooling is the worst part of our current “education” system. When you are schooled, you are raised to follow the rules, to defer to authority, to get things right and to wait to be rewarded. You don’t think for yourself, you don’t make up your own mind with critical thinking, you submit what you hope is correct and wait for the approval of a greater authority. Schooling people makes them manageable, and when you have so many students its easy to see how such a system is established but also easy to see how it eventually decays into a lowest common denominator situation. (treating schools as large factories plays a big role in favoring this style of “management”)

We have to remember that the point of the education system is to educate and not school (although we have historically relied on schooling as the mechanism to achieve this). When you school people into fitting/behaving specific categorical boxes, you work against educating them.

In addition to working against truly educating people, you allow for false positives. False positives are people who can work the schooling system to their advantage but who are not well educated. Having false positives is a by-product of focusing on the process more than the content of what you are supposed to be teaching.

When I was growing up, my father used to consistently try to enforce the “fundamentals” upon me. I say enforce because his technique and process were not particularly good, so this would be a case of focusing on the content more than the process. At the time I had a hard time wrapping my head around the fundamentals he was talking about, but now I see it really just means having a good understanding of the basic principles on which to build larger more complex ideas.

A good education system teaches the fundamentals, and how to go from the fundamentals to bigger ideas. It focuses more on the content of what is being taught then the process by which it is taught. Having had the “privilege” of trying both extremes I would like to think there is a happy middle ground between the two. A middle ground where people can pursue an education without having to conform to an inflexible system that can only measure people as scalars and a system that does not create a perverse incentive for false positives.

(Here is another link that I found interesting that also demonstrates another short coming of our inflexible schooling system. It’s inability to recognize the strength of diversity, no suprise there since in a factory system diversity is called defect rate.)

better

I recently finished reading Better: A surgeon’s notes on performance, its a great read and a reminder of the importance of diligence in the simple things throughout one’s attempts to be better.

I have always tried to be better than I am, often I say “If you’re not raising the bar, then what are you doing?” but I have never thought about why I strive to be better.

Is it to improve my standing in life? To gain wealth or fame?

Having spent some time at ConU in engineering I am familiar with the bell curve, and the reality there is that you don’t need to be amazing you just need to be ahead of average on the bell curve. So everyone engages in the rat race of trying to be on the “right” side of the curve, of course because it is a bell curve there are a fixed number of spots on the “right” side of the curve and inevitably people lose the race no matter how well they performed.

So that bring me back to “why?”. There is a rat race element to raising the bar continuously for yourself, and there doesn’t seem to be an obvious reason to consistently push yourself through it. If everyone ends up on a bell curve then as you strive higher so does everyone else and ultimately most people end up back in the middle which seems futile.

I thought about it, and asked myself what the difference between these graphs were.

The graph on the left looks like the same graph as on the right, but if we add a little context to them

We see that even though individually we may end up back in the middle of the curve, society as a whole has moved forward. I think (at least for me) that is a good enough reason/obligation to do better, to do my part in helping to advance our society. (perhaps I am too much of an idealist)

← Before After →