Hacker News new | ask | show | jobs
by bakuninsbart 1490 days ago
My perspective here is probably quite different, because of my cultural background. Here in Germany there is a pretty clear division between CS at a university (Universität), "CS" at a college (Fachhochschule), and "CS" as an apprenticeship (Fachinformatikausbildung). I'm putting quotation marks on the latter two, because calling it a science is already a large stretch in the first case, as I would distinguish between engineering and science, but that's a minor point. The latter two have nothing or very little to do with research, and are all about giving practical knowledge to help people get jobs/get good employees.

> Some people in this thread seem to think colleges have been taken over by javascript, and that may be true in some places, but I wish they'd taught us JS, because what they taught me was Java Swing, because a decade ago the ivory-tower tenured professor who wrote that course thought it would be useful for getting us a job and never touched it again.

You get a BS to understand (hard) concepts. Java makes a lot of sense to teach because of good resources, longevity, and it implementing a lot of the underlying ideas of OOP. Is it a great language? Not at all, but knowing it makes it very easy to learn other OOP languages. My faculty is currently discussing a larger BS reform, and this is one of the topics. We have a course for second semester students called "Intro to OOP". What are the alternatives to Java? Most other OOP languages do not implement all the typical concepts of OOP, or are highly platform dependent, or might be just a fluke. C++ is quite rough, and there is another course teaching OS with C in the same semester. Personally, I think people in the course should be able to choose between writing their assignments in something that compiles to java bytecode, but that massively increases overhead for TAs.

> In fact I would go a step further: Having a lot of people who are very good at programming but who don't know anything else is a bad thing for society.

This I would agree with, and add that this is also really terrible for programmers. Compared to other engineering disciplines, our discipline is massively underdeveloped in the realm of strong guidelines backed up by empirical research. If you look at the subfield of Software Engineering (which I'd say is another misnomer, as this is actually pretty much the only empirical part of CS, and at that mostly a social science), it is hard to find very strong consensus on what and how to do it. Actual practice is, I'd argue, more influenced by medium posts than the papers published in the field. There are a lot of strong opinions, and very little but personal experience to back these things up.

> What good is it going to do any of us to write systems that strip away all our civil liberties with perfect big-O complexity?

I'd also strongly argue that everyone should be educated in ethics, but education in morality does not make a moral person, I think this is one of the really hard problems that universities can try to help alleviate, but not solve alone.