Raw Syntax

The stuff programs are made of

Stop Programming


Stop Programming

I've got some ideas on how you can improve your programming by not programming. Try something new this year.

Simplifying Too Much

About 4 years ago, I fell in love with minimalism and tried to get rid of most of my possessions. I went as far as selling my saxophone, (3) bass guitars, and bass rig. This meant not playing music any more. At the time I decided that playing music was nonessential since it did not relate to programming and didn't make any money. I also sold my bicycle (which meant no more cycling).

Pretty soon after that I was just a guy who programmed at work and worked on programming projects at home. In other words, not very interesting.

The great secret of minimalism (taken to an extreme), is that if you take away everything you are left with nothing. In my case I realized I didn't do anything for fun anymore. I've since bought a bass, bass rig, and bicycle and started teaching myself classical / flamenco guitar.

Be a Beginner Again

I think there's a problem lurking in many programming communities (forums, IRC, mailing lists). Every so often a beginner comes a long and asks a basic question in the wrong way. He doesn't follow the rules of the community. So a long-standing member of the community replies "use the search", "read the FAQ", or a similar useless answer. Go and search any forum you will find useless results like this. This is not only unfriendly, but can pollute search results for others that visit later with the same questions, which eventually renders the "use the search" solution useless.

While I agree that a community's rules of etiquette should be followed, I think some members of these online communities have forgotten what it's like to be a beginner. Often newbie may not know what to search or need some extra explanation regarding a common problem. I found this to be the case when starting out with emacs, wherein reading the manual and using the help system are actually part of emacs itself and can be confusing if you don't even know how to use the thing.

That's why I recommend trying something other than programming. Go for something unrelated. Something where you will be a complete beginner. Try learning a musical instrument, building a bike, woodworking, etc... Next time you're helping out a beginner you may find yourself being more helpful and patient.

Expand Your Mind

The other reason to try something new is that it may eventually lead you to approach programming problems in a different or unconvential way. Much of what we do is done by way of analogy. OOP works by making a model that approximates real situations. Eventually you'll run into a real programming problem that can be solved using methods from the real world.

Furthermore, programming is creative work. It can be helpful to look elsewhere for inspiration. Often I find myself thinking of programming as an art, as self-expression (albeit with many real world constraints; self-expression won't necessarily create useful programs). To get a better idea of what I mean check out The Tao of Programming. Though it is written in a somewhat joking manner, there is truth in it.

My favorite section is 2.4:

A novice asked the Master: ``Here is a programmer that never designs, documents or tests his programs. Yet all who know him consider him one of the best programmers in the world. Why is this?''

The Master replies: ``That programmer has mastered the Tao. He has
gone beyond the need for design; he does not become angry when the
system crashes, but accepts the universe without concern. He has gone
beyond the need for documentation; he no longer cares if anyone else
sees his code. He has gone beyond the need for testing; each of his
programs are perfect within themselves, serene and elegant, their
purpose self-evident. Truly, he has entered the mystery of Tao.''

Though this style of programming is totally impractical for designing reliable extensible software, I ponder it every few months because it is such a different perspective. What if you were able to write a program that had the intuitive cohesion of a poem?

Now Go Do Something Else

That's it. Try something different and new this year.