Mailing List Archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [tlug] What is Code?

Attila Kinali writes:

 > I think, part of the problem is that the lore in programming still
 > does not really recognize that programming is a craft, rather than
 > science (eventhough most programmers themselves do).

Seriously?  Start with _The Art of Computer Programming_, and thetn
read Knuth's descriptions of how he wrote TeX and MetaFont in the
TeXbook.  Or Jamie's web page.  Or Beautiful Code.  The Mythical
Man-Month.  The Zen of Python.  The very word "hacker".  Google Summer
of Code with its focus on mentoring.  Note that Google explicitly
*excludes* many aspects of software engineering such as design,
documentation, and testing from tasks appropriate for the interns --
it's programming-as-coding that they see as needing mentoring.

I agree that "programming as craft" is central to the issue, but I
don't think the problem is that the craft-y-ness of programming isn't
known, but that the programming craft is hard to understand for some
reason.  I think you'd have much the same problem with any engineering
field or architecture, say.

That much said, I guess one obvious hypothesis is that crafting
thought (which is what engineers do) requires a certain kind and
amount of introspection that most people are unfamiliar with.

 > Actually, I think the "not being able to watch" is probably the
 > most important part here. People get a feeling for how it is to do
 > X by watching other people do it. With all phyiscal crafts you can
 > do that.  They are widespread enough that you are exposed to some
 > watching early in your life.

One certainly doesn't get that feeling watching the Japanese TV shows
showing master craftspeople at work.  They focus on the "magic" of
mastery, and the talking heads ooh and aah, completely without
understanding of what it is to be a master of your craft.  I think
that the products of the worst Japanese schooling (by which of course
I mean the schooling that the Japanese themselves rank highest applied
to folks not qualified to benefit from it) are that way because they
have no contact with craftsmanship during school, but consider mastery
to be a form of imitation.  There's an important truth to that, but
it's too easy to perfectly imitate (memorize) book knowledge.  So you
don't have the experience (familiar to those who have studied art,
music, sports, or the martial arts) of having your body adjusted by
the master into an approximation of effectiveness.

Programming has the same problem, I think.  Since it's purely mental,
there's nothing to be (physically) adjusted.

Again, you've put your finger on something important, but I think the
problem is more that people don't know *how* to watch *until they've
done it themselves at a certain level*, rather than programming being
somehow "unwatchable".

I don't really have any answers to offer; all I can do here is
criticize.  Sorry about that.  

 > -- 
 > I must not become metastable. 
 > Metastability is the mind-killer.
 > Metastability is the little-death that brings total obliteration.
 > I will face my metastability. 
 > I will permit it to pass over me and through me. 
 > And when it has gone past I will turn the inner eye to see its path. 
 > Where the metastability has gone there will be nothing. Only I will remain.

Now there's a koan -- the result described is precisely metastability.
I think it's relevant to the current discussion, somehow.


Home | Main Index | Thread Index

Home Page Mailing List Linux and Japan TLUG Members Links