The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Jon Steinhart <jon@fourwinds.com>
To: tuhs@tuhs.org
Subject: Re: [TUHS] Happy birthday Morris worm [ really programming education ]
Date: Wed, 13 Nov 2019 10:02:36 -0800	[thread overview]
Message-ID: <201911131802.xADI2fxE752068@darkstar.fourwinds.com> (raw)
In-Reply-To: <201911130735.xAD7ZQD6014497@freefriends.org>

arnold@skeeve.com writes:
> Norman Wilson <norman@oclsc.org> wrote:
>
> > I am very disappointed that programming education seems not to care
> > enough about this sort of thing, even today.
>
> I think this is the key. Universities focus (too much?) on the theory
> and not enough on the practice, and "learn how to program" courses
> and books focus on the mechanics (syntax, semantics) and not enough
> (or at all) on the practicum of writing code well.
>
> We continue to rely on the school of hard knocks, and we continue
> to pay for this reliance.
>
> I also think there's a sliding scale. The fancier or higher-end
> the university, the more the focus on theory, and vice versa. Sigh.
>
> Arnold

OK, this is a bit of a tangential topic for this list.  But, what's the
point of obsessing on UNIX history unless it's coupled with some effort
to communicate the philosophy to a new generation of programmers?

This has been a real concern of mine for a while.  As a friend of mine
put it, processors are getting so cheap that pretty soon we won't be
able to purchase pencils that don't contain them.  This puts us all
at the mercy of not-great programmers.  And of course, it's not just
pencils, it's stuff like airplanes too.

In my opinion, the root of the problem is that programming today is
being taught in the abstract - as if programs don't run on computers.
Programming today is taught as if it consists of importing libraries
and gluing function calls together.

I recently visited my daughter's college and attended a number of CS
related presentations.  Was surprised that CS is taught in Java with
some advanced work in Python.  One can almost get a CS degree there
without ever using a compiler much less learning how computers function.
Too be fair, other schools such as Dartmouth where Doug hangs out have
a better curriculum.

At the K-12 level, the stage is set by combination of the "everybody
must learn to code" curriculum with "no child left behind".  School
administrators dispense with any critical thinking about the value of
the curriculum in order to chase grant dollars.

I used to be able to get into my local schools to volunteer-teach
programming.  But, the learn to code curriculum has eclipsed that;
schools are led to believe that they're teaching the right stuff
(because Bill Gates says so) and aren't interested in anything else.

I recently turned my course notes into a book as an attempt to make
some small difference.  Too soon to tell if it will.

Anyway, my question for you all is, how do we as seasoned practitioners
leverage our experience to contribute to the state of the art?  Any of
you found a way to pass on your knowledge?

BTW, I'm doing my first messing around with the Linux kernel these days;
if anyone knows the guts of the generic filesystem code I could use a bit
of help.  Here's something that I came across on the way in <sys/mount.h>:

enum
{
  MS_RDONLY = 1,		/* Mount read-only.  */
#define MS_RDONLY	MS_RDONLY
  MS_NOSUID = 2,		/* Ignore suid and sgid bits.  */
#define MS_NOSUID	MS_NOSUID
  MS_NODEV = 4,			/* Disallow access to device special files.  */
#define MS_NODEV	MS_NODEV
...
};

Can anyone explain the value of this programming style?  Is this just an
example of the result of how programming is taught today?

Be happy discuss this off-list.

Jon

  reply	other threads:[~2019-11-13 18:03 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-12 20:56 [TUHS] Happy birthday Morris worm Norman Wilson
2019-11-12 22:00 ` Dave Horsfall
2019-11-12 22:10 ` [TUHS] buffer overflow (Re: " Bakul Shah
2019-11-12 22:14   ` Larry McVoy
2019-11-12 22:41     ` Robert Clausecker
2019-11-12 22:49       ` Arthur Krewat
2019-11-12 23:45       ` Jon Steinhart
2019-11-13  0:38         ` Warren Toomey
2019-11-13  1:09         ` Arthur Krewat
2019-11-13  0:24       ` Larry McVoy
2019-11-12 22:54   ` Dave Horsfall
2019-11-12 23:22     ` Warner Losh
2019-11-12 23:27       ` Arthur Krewat
     [not found]     ` <alpine.DEB.2.20.1911191443530.10845@grey.csi.cam.ac.uk>
2019-11-21 20:02       ` Dave Horsfall
2019-11-21 20:38         ` Warner Losh
2019-11-21 21:04           ` Clem Cole
2019-11-21 22:06           ` Dave Horsfall
2019-11-21 21:48         ` Steffen Nurpmeso
2019-11-13  7:35 ` [TUHS] " arnold
2019-11-13 18:02   ` Jon Steinhart [this message]
2019-11-13 18:49     ` [TUHS] Happy birthday Morris worm [ really programming education ] Tyler Adams
2019-11-13 19:15     ` [TUHS] #defines and enums ron
2019-11-13 21:11       ` Warner Losh
2019-11-13 21:22     ` [TUHS] Happy birthday Morris worm [ really programming education ] Chet Ramey
2019-11-15 22:49     ` Adam Thornton
2019-11-15 23:59       ` Theodore Y. Ts'o

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201911131802.xADI2fxE752068@darkstar.fourwinds.com \
    --to=jon@fourwinds.com \
    --cc=tuhs@tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).