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>