[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Subject Index][Author Index]

Re: advice for the undergrad (OL)

On Sun, Jul 6, 2008 at 6:53 AM, Graydon <oak@uniserve.com> wrote:
> Having taught them [regular expressions], I'm not sure I'll go with 
> 'relatively short amount
> of time'; this is one of those 'simple to learn, very hard to master'
> sorts of things.

Yes, but we're talking about fluency, not mastery.

As a parallel example, look at a classic "simple to learn, hard to
master" game: chess. You can learn the rules and how to read the
notation in a day. Voila, you are fluent -- you can play the game and
follow a transcript of someone else's game. Are you a master? Of
course not.

The syntax of regular expressions can be fit onto a few pages. After
thoroughly digesting those pages, someone should be able to look at a
regular expression and figure out what it means (although of course
complex expressions may take longer -- true for experts as well) and
create some expressions on their own. Does that make them a regex
master? No, that takes actual experience using regex. But are they
fluent? Sure, why not?

> Data representation <> programming language, at least to my possibly
> pedantic way of thinking.  So I kvetched. :)

But I was specifically talking about computer languages *other* than
programming languages. Sorry if that was unclear.

(And actually, some of those, like XML and some extended forms of SQL,
can be used for programming. The line's a bit blurry sometimes.)

>> I dunno, knowing the basics of XML, for example, can help an awful lot
>> for many tasks.
> XML has no basics.

<?xml version="1.0"?>
      <pronoun person="first" number="singular>I</pronoun>
       <verb transitive="false">disagree</verb>

> (and I so wish I'd realized that three years ago when I started
> explaining an XML content management system to the folks who use it....)

Ouch. Yeah, never underestimate the incompetence of someone who isn't
genuinely interested in what they're doing.

> Either you're using it as a markup language, in which case you don't
> need to understand what you're doing beyond (possibly) the aspect of
> semantic labelling, or you're using it in a 'create a vocabulary' sense,
> and that's not basic at all; you get to start at the Unicode collation
> algorithm and go from there.

Someone can quite happily use XML for years on end without ever
hearing the term "Unicode collation". We're talking about using XML,
not building a parser.

> This is potentially cool stuff, and XSL is fundamentally a tree
> manipulation language, and it's not at all a bad thing to know, but if
> you're going for a data representation XML vocabulary for some
> specialized purpose, you will need to understand how the whole stack
> works from Unicode up through DTDs or schemas through all the various
> XML rules.

That's like saying you have to read an unabridged dictionary from
cover to cover before you can write a short essay. It's simply not
true. (BTW, since when is XML restricted to Unicode? Did I dream up
the "encoding" attribute?)

> So while an XML vocabulary for cladograms (and some sort of renderer for
> it) would be of great potential use, allowing simple exchange of large,
> complex trees, actually building it in a robust way would require you to
> understand what you're doing.

<?xml version="1.0"?>
<clade name="Dinosauria">
   <clade name="Ornithischia">
      <species name="Heterodontosaurus tucki"/>
      <clade name="Genasauria">
           <clade name="Sauropodomorpha"/>
           <clade name="Theropoda"/>
   <clade name="Saurischia">
      <species name="Herrerasaurus ischigualastensis"/>
      <clade name="Eusaurischia">
           <clade name="Sauropodomorpha"/>
           <clade name="Theropoda"/>

>> A good introduction: http://w3schools.com/xml/xml_whatis.asp
> That's a web focus, and a good bit of what is being given in that intro
> is at least arguably wrong, in the so-simple-it's-wrong way.

It is geared toward people with some HTML background. I don't see
anything that's actually wrong, though (except for the assertion that
XML doesn't *do* anything--neither do other computer languages in and
of themselves; but, as mentioned earlier, XML can be used to "do"
stuff even if that's not its primary raison d'etre--look at MXML or

>  http://www.w3.org/XML/ gives (I think) a better overview, but then
> again I actively use XML in some fairly complex ways so I'm doubtless
> biased.

Well, of course it's a better overview--it's the actual specification
in all of its detailed, tedious glory. I really don't see that it's a
better introduction for the uninitiated, though. I was trying to
provide a Dick & Jane book, not Strunk & White.

> I think, rather than going for specifics, someone interested in what
> language to learn for a paleo career might do well to:
>        - find out what they're using where you want to go to grad school
>          and learn that
>        - take a guess at what you want to do and find out what's being used
>          for that
>        - stick to open, public file formats for absolutely everything; it
>          can be an initial hassle but it pays off over time

Now that I can agree to!
T. Michael Keesey
Director of Technology
Exopolis, Inc.
2894 Rowena Avenue Ste. B
Los Angeles, California 90039