Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Jan 2001 08:37:15 +0000 (GMT)
From:      Terry Lambert <tlambert@primenet.com>
To:        tech_info@threespace.com (Technical Information)
Cc:        chat@FreeBSD.ORG (FreeBSD Chat)
Subject:   Re: hungarian notation
Message-ID:  <200101230837.BAA15273@usr08.primenet.com>
In-Reply-To: <4.3.2.7.2.20010122234546.0179bba8@mail.threespace.com> from "Technical Information" at Jan 22, 2001 11:50:55 PM

next in thread | previous in thread | raw e-mail | index | archive | help
> >Personally, if I'm given my druthers, I'd like someone I hire
> >to not be artificially limited in the environments in which
> >they can be a productive coder.
> 
> Seriously though, everybody has to start learning with some particular 
> style, usually even before they learn that it's a style and not The Right 
> Way (TM).  I spend so much time stressing to my students that they should 
> indent/capitalize/space things properly that they sometimes get confused 
> when I later say that the indentation doesn't affect the program.

Do they ever wonder why their calls to "PrintF" fail to get the
expected results?

Sounds like you needed to teach them to write FORTRAN on punched
cards; probably teach the little reprobates to wrap their email
at 72 columns, like God intended, too, when everything after 72
is happily ignored as being reserved for card order indices, in
case someone drops a tray of 500 cards on the floor...

I have to admit to a certain fondness for BASIC; one of my all
time favorite "you left yourself logged in: don't do that" jokes
depended on the BASIC interpreter loading programs having a side
effect of the implementation that it ran program loads through
its input buffer, and it acted on flat text files, as if you were
typing the program in each time, instead of storing tokenized
text.

If you think about that for a minute, you realize that you can
sort the source code based on arbitrary criteria, and it will
still run fine, but it will "print funny", at least until you
save it back out again.  Inverting the lines was an old standby,
but sorting by line length had its merits, as well, since it
made the code come out as a nice right triangle, with the
hypotenuse slope generally proportional to the length of the
program, in lines.


As a nice joke, it was a relatively harmless way of teaching
people to not leave themselves logged in, and the humor was
not lost on others in the lab.  It also got them asking the
right questions, like "Why does it still work?" and "What's
a parser?".

It wouldn't have occurred to me to even try, except that back
in highschool, we had a Commodore PET with a card reader that
we built test correcting software for the school for, and one
of the ways we played with it was to have it load everything
it read into the keyboard buffer, which let us put BASIC
programs on cards, instead of using cassette tapes.  Mostly it
was cool, not because it was a better way of doing things, but
because we could.


I really think it's a mistake that accreditation rules have
warped to the point where you don't teach specific languages,
and instead have to teach "data structures using C".  When I
was going through the gears, COBOL and "Business FORTRAN" were
taught, and my second COBOL program was mostly written by my
30th or so FORTRAN program.  Force someone to use a tool they
hate, and they will come up with all sorts of clever ways to
avoid using it.  There's also some value to the old saw of
giving people limited/inappropriate tools, so that when they
are given better tools, they have an appreciation for them
(I'd probably balk at forcing impressionable young kids to use
EMACS, though TECO is not out of the question).


I'm also of the opinion that beginning computer programmers
should probably not own their own equipment, or at least not
the good stuff.  There was a heck of a lot of value, IMO,
putting a bunch of people in a room with equipment as a scarce
resource, and having them learn from each other at 2AM in the
morning.  You don't get anything like that, with everyone
going home to their Windows or Linux box by themselves, and
doing only what they are assigned.  Unnecessarily fast hardware
also deemphasizes elegance, and the value of picking different
algorithms for slightly different tasks; "fast enough" is the
enemy of skill, and "unlimited memory and CPU cycles" is the
enemy of perspective.

There were really two narrow windows in history where forces
converged to turn out good code hackers; thankfully, in the
second you didn't have to pay for CPU seconds.  You still get
some, but I have to say that the yields have dropped since
everyone can own as good hardware as the best thing they are
likely to be able to play with in the first two years at the
local university (part of the "force them to hang out together
to have access to the machines" synergy thing there, too).


> I compare it to handwriting where kids are taught to write using
> very specific strokes only to eventually get older, become medical
> doctors, and lose all control over their penmanship. ;-)

If doctors all typed, that wouldn't be a problem, but of
course being clever folks, they'd find some way of causing
equivalent trouble; I suppose that if they all typed, they'd
just type everything in Latin.  8-).


					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-chat" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200101230837.BAA15273>