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?
100 times this.
A few hypotheses for why colleges teaching "theoretical programming"
(i.e. Computer Science).
- Universities, especially at the undergraduate level, have a mission
to teach students how to think, not how to do. This leads to more theory
and less practice.
- Universities are top down institutions with lecturers. Theory is easier
to teach in a top down institution than practical advice.
- Software engineering is evolving so quickly, it would be hard to put
together a software engineering program which had economic value.
CMU has a MS in Software Engineering, but their cirriculum is vague so it's
hard to tell what they do.
If anybody here has taken it I'd love to hear what you thought of it.
- A lot of good work needs to be done that doesn't require breaking
the JVM, python, or JS abstraction layer. Cycles are cheap.
Memory is cheap. And not all programs have latency or uptime requirements.
UNIX culture of course was lightyears ahead of knowing this and
economized for the most expensive resource of all: developer time.
To bring this back to TUHS, how did (and do) UNIX developers teach
the UNIX way? As someone younger than Linux, I was only lucky enough to
read The Art Of Unix Programming by ESR and read Kernighan's books.
Tyler
On Wed, Nov 13, 2019 at 8:03 PM Jon Steinhart <jon(a)fourwinds.com> wrote:
> arnold(a)skeeve.com writes:
> > Norman Wilson <norman(a)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
>