Ravi Mohan's Blog

Sunday, October 16, 2005

Yet another "apprenticeship pattern"

Earlier, I wrote about an 'apprenticeship pattern' I discovered.

Here is one more .

Be good at something other than Programming

If you plan to be good at programming, take up the practise of another discipline- music, painting, a martial art, woodworking, it doesn't matter - just pick one that interests you.

Many top notch programmers are very good at other things. Paul Graham is a painter. Peter Norvig is a mathematician. Eric Raymond is a Pistol Shooting expert.Richard Stallman says "My hobbies include ... international folk dance, flying, cooking, physics, recorder, puns, science fiction fandom, and programming;" (While I have never seen Stallman dance, people who have, assure me that he dances very well indeed)

While there are exceptions, (more on this below), I would be very skeptical about someone who claimed to be a good programmer ('hacker', if you will) and who is not skilled at something else as well.

Many people have written about this from different angles. Paul Graham says,

"...Hacking and painting have a lot in common. In fact, of all the different types of people I've known, hackers and painters are among the most alike.

What hackers and painters have in common is that they're both makers. Along with composers, architects, and writers, what hackers and painters are trying to do is make good things."

Eric Raymond says in How To Be a Hacker,

"... Train in a martial-arts form. The kind of mental discipline required for martial arts seems to be similar in important ways to what hackers do. The most popular forms among hackers are definitely Asian empty-hand arts such as Tae Kwon Do, various forms of Karate, Wing Chun, Aikido, or Ju Jitsu. Western fencing and Asian sword arts also have visible followings.... Develop an analytical ear for music. Learn to appreciate peculiar kinds of music. Learn to play some musical instrument well, or how to sing... "

The one apparent exception I have seen to this 'pattern' is when truly exceptional programmers seem to have no hobby (besides programming). My friend Anand Babu, would seem to be an example of this.

Anand spends significant amounts (or all) his free time writing code and is the creator of truly significant programs. If, like Anand, you are the author of code that makes a significant difference to millions of people, then you probably don't need this 'pattern'. Geniuses don't need to follow rules or patterns anyway.

Otherwise, in my experience, serious practice of music, for example, might help you become a better programmer than grinding through yet another J2EE app.

15 comments:

Anonymous said...

Something appropriate in this context:
http://www.idlewords.com/2005/04/dabblers_and_blowhards.htm

Ravi said...

Mujib,
I've seen this before. Unfortunately it is not clear in the article that the author is both a painter(or some other kind of artist) *AND* a top notch programmer. From his rhetoric Ia m fairly sure he is not. As a person who has used rhetoric occasionally to bamboozle people, I am a little immune to its effect when used on me. To the author's "But you, sir, are no painter. " I would reply "And you sir, are no hacker".

Ravi said...

Mujib,
A sample of Mr Ceglowski's rhetorical flourishes,

"There's nothing whatsoever distinctive about the analogy to painters, except that Paul Graham likes to paint, and would like to feel that his programming allows him a similar level of self-expression."


"Paul Graham likes to cultivate the arty aura that comes from working in the visual arts."

Except for teh first third of th e first sentence,this is a classic ad hominem attack, iow, an attack against the person making the argument,attributing motives, rather than the argument itself.
The whole essay is full of such fallacies .

One more.

" Having been both a painter and a programmer, I can certainly sympathize with him.Great paintings, for example, get you laid in a way that great computer programs never do. "

That is an *argument*?


Paul never claimed that a great painting is functionally equivalent to a great program (even in terms of "getting you laid").Only that the process of creating each has certain mental operations in common, which is a whole different argument altogether.

The whole essay reeks of such leaps over logic. If he made this essay into a apeech for a high school debate he would get blown away by the rebuttal.

And as to programming, Paul's "On Lisp" is one of the greatest books on programming ever written and he is acknowledged as one of authorities on Lisp. And what are Ceglowski's credentials? He says he maintains some perl modules. Duh!

I don't know how Mr Ceglowski compares to Paul Graham asa painter. I don't know wenough to judge. To me, what matters is that PaulGraham is an exceptional programmer and seems to know enough about painting to draw comparisons about the processes involved in both.

Besides, if Richard Stallman, Eric Raymond, Dave Winer and Paul Graham all say and do things that match my experience, I have no choice but to re affirm that in my posts, irrespective of what a 'dabbler and blowhard like Ceglowski' (you think maybe he was referring to himself with that title? :-) )says.


*I* have learned quite a bit about "hacking" from my forays into music and the martial arts. And this si confirmed by the best programmers I know(e.g. Rajesh Babu who is arguable the best programmer I have personlly encountered has said almost teh same thngs comparing programming and dancing!)

And my experience with software (and music)seems to indicate that Graham's insights are "spot on" most of (if not all) the time.

And while I hope everyone reads Mr Ceglowski's rant agianst Graham, I hope his pettiness will shine through for all to see.

Thanks for the link. Very Interesting indeed.

Anonymous said...

Wearing a giant boot will not make you a giant. Ravi, i think if you start learning music just to become a good programmer, it will never work out. I believe if a person is excellent in multiple fields, it is nothing but the manifestation of the same creative genius. So Stallman can dance as good as he codes, Norvig's approaches and solutions would reflect in the mathematical problems he works on as well as his programs. So that level of creativity has to exist first.
If a pathetic programmer Mr.X starts studying music to improve his coding, he would end up being a pathetic programmer AND a pathetic musician.

Ravi said...

Rajul,
I think we address slightly different points. I never said learning music makes a *pathetic* programmer a good one!! I would have to be crazy to advocate such foolishness.

So I agree with you that "If a pathetic programmer Mr.X starts studying music to improve his coding, he would end up being a pathetic programmer AND a pathetic musician"

I am talking of those who have the *potential* to be good (forget "great") programmers. I believe that people who are *on the path* to becoming great programmers will learn much by undergoing a disciplined study of music, painting, martial arts etc etc.

Also I never advocate anyone taking up music *only* to improve his coding. If you don't like music, do something else. I have rarely seen a good programmer who was not interested in and skilled in another craft. This is a "heuristic" not an absolute rule.

If someone is truly mediocre, nothing will save him, as you rightly point out.

Also, I believe that developing skill at music, martial arts etc have more to do with disciplined practice than any "innate creativity" (though any imnnate creaeativity will amplify the results of your discipline) But that is a topic for another post.

Anonymous said...

Bingo.
Agreed.

Anonymous said...

I've been a Paul Graham reader for years, and he has positively influenced my life (spam filters, lifestyle tips), and this is the first time I'm even hearing of Maciej Ceglowski, but I'll play Shaitan's advocate just the same. Maciej veils his jabs in humor, but that doesn't mean the point he tries to make is invalid or his witticisms unfunny. I thought the piece was amusing in a nasty sort of way, but since you had a go at it, I might as well defend it.

[Disclaimer: I am no painter or hacker (heck, I have trouble aligning margins in a word processor).]

Ceglowski: Great paintings, for example, get you laid in a way that great computer programs never do.

You gotta admit, that's funny. I laughed at that, and also at the footnotes. I especially enjoyed the part where he goes, "Also remark that in painting, many of the women whose pants you are trying to get into aren't even wearing pants to begin with." Har har.

Graham: Well painters do both. Painters decide what to paint and then have to paint it. And hackers in the best case also do both[3].

Ceglowski: You can safely replace "painters" in this response with "poets", "composers", "pastry chefs" or "auto mechanics" with no loss of meaning or insight.

This is the crux of Ceglowski's argument, and I agree. In my exalted opinion, Paul Graham could have made an equally cogent analogy comparing hacking to essay writing (his), or to penning a short story (Maugham's). I couldn't find anything unique to painting that couldn't be found in another creative endeavor (the process he describes, not the easel and camel hair).

Humans find patterns and parallels, and categorize disparate entities into familiar compartments, because it was evolutionarily advantageous (less computational overhead, quicker survival responses). Our propensity to find subjective patterns explains pareidolia, astrology, Rorschach, and Paul's essay. He works backward from a conclusion, trying to shoehorn nebulous instances to fit a hypothesis. Not that there's anything wrong with that, as Jerry would say, but when he takes it too far and fudges collaborative programming with multiple painters, you feel the disconnect. Try explaining that to Van Gogh.

With my superior intelligence, I can find a fair number of similarities between Jayan and Elvis (present-day impersonators, bizarre and comical apparels, people who insist they are still alive, etc.) or Marilyn Monroe and Silk Smitha (celluloid oomph, dissolute lifestyle, unhappiness, eventual suicide--or was it murder?), but that does not mean there's anything deeply significant or insightful about my comparison. It's interesting, at best. When it comes to the art of anything, I could make a case for the Ganesh Coffee Works guy at Vazhuthacaud, immaculately and fluidly packing peaberry powder, and its similarity to Tchaikovsky's Nutcracker Suite, and you'd be none the wiser.

A mundane activity can be elevated to high art by a skilled practitioner (Rajnikanth lighting up comes unbidden to mind) and hacking is (by a hacker's definition, at least) software programming taken to a sublime level, so finding parallels between art and art is ... uh ... um ... where's my friggin' insight, Paul? It's vaguely reminiscent of the Integration Theory of Music.

Our neocortex did not exactly evolve to fathom static vs. dynamic typing, but it's a fortunate consequence that it can be put to that particular use. It's no surprise that intelligent people who are good at something are good at something else too, your good friend Anand Babu notwithstanding, unless they are severely autistic and have a very narrow focus of expression. The insight--if I may call it that--I get from reading you and Graham is that some smart people, even though they aren't all Leonardos, have an aptitude for creativity, persistence, and attention to detail, which they apply in diverse domains, not restricted to compilers or tempera. From your response to Rajul, I see that we are on the same page.

Ceglowski: I am not qualified to call bullshit on Paul Graham when he writes about programming, history, starting a business, or even growing up as a social pariah, but I do know enough about art to see when someone is just making shit up.

And that's what he does. Since I don't know jill about painting, maybe I should consult with our very own alleged wine-guzzling, bong-wielding, fornicator of a painter friend Mr. Mullassery to call Ceglowski's bluff.

Ravi: And as to programming, Paul's "On Lisp" is one of the greatest books on programming ever written and he is acknowledged as one of authorities on Lisp. And what are Ceglowski's credentials? He says he maintains some perl modules. Duh!

Ceglowski calls bullshit on the art part, not the hacker part, as he clearly states. I am not familiar with Lisp or Perl, but your statement comes across as elitist with traces of ad verecundiam to boot. I suggest you stick with that, because it's quintessential Ravi Mohan, and we love you for it. Moreover, you could be completely right on the money.

Ravi: And while I hope everyone reads Mr Ceglowski's rant agianst Graham, I hope his pettiness will shine through for all to see.

Pettiness is not the prerogative of Ceglowski, for we have revelatory examples from Stallman (GNU/Linux), Eric Raymond (response to Microsoft), and Dave Winer (podcasting), but that's neither here nor there. What I'm trying to say is that just because somebody writes/wrote great code, doesn't make their words and opinions gospel, nor does it preclude them from being complete jerks on occasion.

It should be quite evident that I'm squarely on the side of the blowhards. Preach on!

For what it's worth, I consider Larry David to be a better artist and creative genius than either Ceglowski or Paul Graham, and he can't even paint.

--end transmission--

Madhav said...

Wow, that was educational!

Ravi said...
This comment has been removed by a blog administrator.
Ravi said...

Mujib,

First, I find most of these arguments very superficial.
"Devils' advocate" is fine, I have no issues with taking a posture, but sometimes one has to ask what the point is.


"Paul Graham could have made an equally cogent analogy comparing hacking to essay writing (his), or to penning a short story (Maugham's). I couldn't find anything unique to painting that couldn't be found in another creative endeavor (the process he describes, not the easel and camel hair)."

so? Paul compares hacking to painting. Eric (indirectly) to music. And that was the point of my post. Your argument that hacking could be compared to , and draw lessons from other creative activities, seems to me to support my (and Paul's) argument, not defeat it.

Paul does NOT claim that painting has some UNIQUE trait in common with hackers which no other creative endeavor has.(pleae quote any sentences in which he does so). If you choose to generalize his points, good for you .


Paul explicitly points out that the commonality between hackers and painters is in that they "make" things.

So of course other "making" activities are valid! Duh! I thought it was obvious!

Painting is what Paul knows first hand. So he uses that. He could have used music if he were a musician.I fail to see how that invalidates anything he said.


"He works backward from a conclusion, trying to shoehorn nebulous instances to fit a hypothesis"

Not really. I think what you miss is that Paul is talking about an *experential* reality and *putting forward a hypothesis* and possible supporting arguments. He is a great programmer('hacker' though I dislike the word), and a (let us say, average, though I have no idea) painter.

And he *explicitly* talks about how one activity is comparable to the other and is not as different from the other it might appear at first glance. See the very first paragraph.

"They seemed to think that hacking and painting were very different kinds of work-- that hacking was cold, precise, and methodical, and that painting was the frenzied expression of some primal urge.

Both of these images are wrong. Hacking and painting have a lot in common."

Thus Paul is

(a)explicitly addressing those who think these activities have nothing in common and putting forward arguments to the contrary.

(b)NOT claiming that Painiting ALONE is comparabel to hacking.

Where is the "shoe horn"ing?

Now in contrast, Mr Ceglowski's "essay" is a rant on how stupid Paul Graham is.He is not a superior progarmmer, a superior painter, and his essay makes no logical sense.Forgive me if I think he is just another blowhard.

Moving on, you say

" but when he takes it too far and fudges collaborative programming with multiple painters, you feel the disconnect. Try explaining that to Van Gogh."

I call bullshit here. Mujib, here you are doing a Ceglowski, using a rhetorical device to attack Paul for something he did NOT say.

Let us examine what he did say (emphases mine)

"The example of painting can teach us not only how to manage our own work, but how to work together. A lot of the great art of the past is the work of multiple hands,..."

and

"As far as I know, when painters worked together on a painting, they never worked on the same parts. It was common for the master to paint the principal figures"

so, whatever Paul Graham says about this, it is VERY obvious he is talking about cases in which multiple painters work on one painting..And he is coparing to cases in which multiple programmers work on one program

And of course these conclusions may not be applicable to the lone painter. Practices adopted by teams of programmers may be useless to a solo programmer too.Those of an orchestra to a lone musician.

Thus your "tell that to van gogh" is just a rhetorical flourish having no relevance in this context. It is not enough to say "he goes too far", and follow it up with "Tell it to vangogh", when it is obvious from Paul's writing he is explicitly talking about painters working together.

If you think Paul is going too far you will have to nail down exactly how , not just state it as a foregone conclusion.

As a programmer who works both alone and in groups, I await the revelation of how *exactly* Paul goes "too far".

"Ceglowski calls bullshit on the art part, not the hacker part, as he clearly states "

Hmm. Ok let us look at this again. Paul is a GREAT programmer(I notice no one disputes this) and let us suppose(since no one amongst us seems to know art well enough to judge) a mediocre painter. And he is talking about how GREAT programmers and (any level of) painters have things in common.The title of the essay is "Hackers and PAinters" not "Programmers and Painters" or "Hackers and Great Artists". As far as I can see Paul does talk about what his title indicates he does.

Ceglowski is no great artist (Do correct me if he occupies the same position amongst painters that Paul does amongst programmers)
and no great programmer.And his essay is all about how Paul is a stupid fool and thus he is no great writer either.

hmmm..


This would not (repeat NOT) matter if Ceglowski's essay held to together *as an essay*. Also the main point of his essay is not a *logical* counter argument but just weird rhetorical rants about how stupid Paul Graham is. And while the"gettiing laid" may evoke a "har de har" from some folks (it didn't from me) it is totally *illogical* and does NOT counter Paul's points.

For other such devices, look at the *made up* conversation between Paul and Kaye.Ceglowski's essay is a bunch of unconnected points held together by rhetorical spittle and "humourous" duct tape.And THAT is my problem with it, not that he attacks Paul.


I am no torch carrier for Paul Graham.(I do admire him tremendously as a programmer and an essyist). If his essay has logical flaws(and no one has shown me any yet, including you Mujib) they should be exposed.

Ceglowski, alas is just ranting and blowing smoke and is imho, not the right person to do this.

"What I'm trying to say is that just because somebody writes/wrote great code, doesn't make their words and opinions gospel, nor does it preclude them from being complete jerks on occasion."

Right. No one here, least of all me, said anything about Paul's (or anyone elses's) words being "gospel" in the sense of something beleived irrespective of the sense it makes. You are just setting up a strawman here.Stop.

I think you may be reacting to something in your own history or experience and not necessarily what Paul or I say in our respective pages.


"your statement comes across as elitist with traces of ad verecundiam to boot."

"elitist" is just some label you apply to me. I have never claimed to be some kind of elite programmer(or elite anything).Please see how I have reacted to your comment without attributing nmotives to you.Kindly return the courtesy.

I do expect however, when someone opposes a comparison between great programmers(hackers)( and painters(not necessarily great) he or she make logical counterpoints ( which Mr ceglowski does not do).

There is no "ad verecundiam" here freind. do look it up and read again what i said.

I said

"And as to programming, Paul's "On Lisp" is one of the greatest books on programming ever written and he is acknowledged as one of authorities on Lisp."


"Argumentum ad Verecundiam: (authority) the fallacy of appealing to the testimony of an authority outside his special field. "

Right. And when I say Paul is an excellent hacker and point on excellent book on programming he wrote(which is EXACTLY what the quoted para says)that is OUTSIDE his special field of expertise?

So how exactly am i "appealing" to ad verecundiam?


What has not been proven yet is that Mr Ceglowski (since he bases his so called "arguments" on his alleged superior knowledge of painting as compared to Paul) is a superior painter(as Paul is a superior programmer).

I await the evidence.

"I suggest you stick with that, because it's quintessential Ravi Mohan, and we love you for it."

Never patronize me again, least of all on my blog.I will let this one slide, because I have known you for years.

Any more of such nonsense will be summarily deleted.

Mujib, as you know I am available on messenger. I suggest you speak to me before posting here again.Thanks in advance,

(for other people reading this, Mujib and I have known each other for years and thus there is a higher degree of give and take between us than normal.

If anyone else tries to patronise me OR make non logical arguments, your comments will be summarily deleted with no explanations at all.

Manoj Govindan said...

All this is IMHO.

PG has said is that Hackers and Painters have many things in common. Nothing more, nothing less. Ravi says that becoming good at painting, music, martial arts etc. else helps in one's pursuit to achieve excellence in Programming.

As a practising programmer and student musician this validates what I have experienced and thus is worth saying.

What Ceglowski says as well as the arguments based on his statements are irrelevant to the topic.

Can we move on please?

Anonymous said...

Spot on, Manoj.

Mujib, I didn't understand half your comment. Wtf is "Vazhuthacaud"? Who is
"Jayan"? and who is "Silk Smitha"? your girlfriend? your pet elephant? what?

Notwithstanding, I think you make a subtle error. Anyone can compare any two things. You are right. What is important is whether it is useful. You say that PG's essay is not insightful. Unfortunately your saying so is not enough to make it so.

Whether something is insightful or not depends on who is doing the reading, just as well as who is doing the writing.

You say that Paul Graham's comparison of hacking and painting is not insightful. You also say you are neither a hacker nor a painter. These two facts don't mesh.

As I see it, people who are programmers and artists/musician/craftsmen do seem to agree that PG's insights are valuable. PG's essay is targeted at programmers primarily and only secondarily at "just folks".


Since you don't seem to be a programmer or painter(or any other kind of craftsman) and therefore are possibly blind to any interconnections between hacking and painting I wonder how you are in a position to judge PG's writing. (Due Diligence : I am a programmer and a sculptor, I certainly learn lessons from my sculpting that I apply to programming)


And if you are saying PG's logic is flawed (and you don't need to be a programmer or painter to say this) well then you have to show how, not just proclaim it.

Your comments expose no fallacies in PG's essay (or Ravi's post).If anything, you are the one using "tricks of writing" (your "Van Gogh" remark for example) to essentially argue points I am not convinced you really believe.

And no , using a latin name is not enough.Wtf is "traces of" ad verecundiam? I learned Logic formally and I never heard of a "trace" AV argument. An argument is either AV or it is not. Since Ravi has disposed of this very effectively, I won't take it up further. Suffice to say you need to brush up on your logic.


And Ceglowski's essay is a piece of garbage exemplifying the sniping at better people which is becoming very common these days.

If you don't think PG's essay is insightful, gee, too bad. Other people think differently.

As I said earlier, what is or is not insightful depends on who is doing the reading as well as what is written.

Another pseudo logical trick you use. Ravi points out (rightly) that Ceglowski is being petty in his essay.
And you say so (on occasion ) is Stallman. So? What is the point exactly? Stallman being petty in some unspecified context, makes Ceglowski's pettiness about Paul Graham excusable?

Ravi's point, in case you didn't get it was that Ceglowski's pettiness about Paul Graham makes his arguments about Paul Graham suspect. Now if you were to argue that Eric Raymond's pettiness about Microsoft makes his arguments about Microsoft dubious, you would be right. Alas, Eric's pettiness about Microsoft is not relevant here and Ceglowski's about PG, is.

I wonder if anyone noticed that Ravi's post is only peripherally about Paul Graham? If you have something to say about what Ravi wrote, why don't you say it? If you have problems with Paul Graham, feel free to write to him directly or write up your opinions on your own blog.

Let us blue collar hackers enjoy Ravi's posts in peace.

Jeez.

Ravi said...
This comment has been removed by a blog administrator.
Ravi said...

Joe,
I appreciate your frustration. However don't bother to "defend" me and I mean this in the nicest possible way. My blog is mostly about me throwing up my rather inchoate thoughts and I am sure they are full of holes. I don't mind people pointinng them out.

I had an idea that Mujib was yanking my chain (I've known him for years) rather than trying to engage me in formal debate. I just had a conversation with him that confirms that he was just telling me I was being too serious, in his inimitable fashion.

Perhaps he is right. So, yeah if you guys want to flame each other, go ahead with my blessings :-)

I am just going to ignore any duels between you two.

As long as you don't throw any Latin at me! While I am fairly familair with the fallacies in logic, I often don't know the Latin names.

Let the flames begin.
:-)

(It would be nicer if you guys just wrote to each other offline. Still.. :-) )

Anonymous said...

Ravi,

I wasn't trying to flame. I just get irritated when folks want to seem like thay are making a logical, well reasoned argument, but are, in reality, just trying to provoke others. If Mujib was just trying to provoke discussion, well...yeah this is one way to do it, though there may be more constructive paths.

Still, I think you have an excellent blog with an interesting perspective and well reasoned arguments. While I can hope that the comments will be of the same standard, that may be unreasonable (though most comments here *are* good ).

I am not getting into any flame fests. Don't worry. :-)

I wonder if you have read Paul Graham's "Painters And Hackers"(book). It has a few essays that are not posted on his site.