Mailing List Archive


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

Re: [tlug] What is Code?



Good morning Stephen!

Sorry for the late answer.. I was kind of distracted...

On Mon, 22 Jun 2015 09:29:59 +0900
"Stephen J. Turnbull" <stephen@example.com>  wrote:

> 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".  

Yes, these books exist, and I have read half of them. But that doesn't
mean everyone has. Actually, most people who program I know of, have not.
And people who teach programming seem to be oblivious to those...
or deliberately choose the easy way of teaching.

> 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.

Yes. I very much like GSoC. But it's just a drop in the bucket.


> 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.

Mechanical engineering has much less of that problem. A lot of people
understand, that you need to feel a block of metal or wood to truly
understand its properties and to be able to work with it. Electrical
engineering has to some extend the same issues like programming, with
one difference: it is impossible to learn much of it as a craft. If
you try to do that (and I know people who did that), you will end up
in a lot of cargo-cult without understanding anything. The parts of
electrical engineering that are really craftmansship are those when
it comes to chosing the right transistor, when multiple have exactly
the same specs or knowing where a wire should pass trough, when all
options are theoretically the same.

Programming is something that is kind of similar, but yet different.
There is some theory how to do X, but not much of it. There are many
obvious ways how to do it, but only a few make sense. Choosing the
right one requires a lot of experience. And there isnt much theory
that could help you.


Anyways.. back to the topic:
People, in general, seem still to know how to work wood, metal or
anything physical, or rather anything that resembles a craft that
has been around for a couple of centuries. Anything more modern
is kind of ... hazy.. people know it exists, but cannot imagine
what you have to do or how it works. Thus it is more difficult
(to impossible) to understand the crafty part of it.

 
> 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.

I wouldn't say unfamiliar, but rather have never applied it to
"that field". Thus it doesn't seem to cross their mind that one
could do that as well. Just take cooking. People know that you
have try a few things and experiment a bit until you can make
that stew just right. But sit them infront of a computer and they
will never get that they have to experiment with the computer to
get it to work as they want.

>  > 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.

Hmm... You have a very valid point here. I need to think about that a bit.


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

Yes. Absolutely.

> 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".

That might be a contributing factor.

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

No problem :-)

> 
>  > -- 
>  > 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.

Hehe.. I'm currently working on metastability of electronical (logic)
circuits. After a long discussion on what the state of art is,
we concluded that most people just ignore it, unconsciously fearing it.
Over time, it became a craft to handle it. A craft very few specialists
in high towers know about.

				Attila Kinali

-- 
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.



Home | Main Index | Thread Index

Home Page Mailing List Linux and Japan TLUG Members Links