Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

People used to say of my alma mater that the teaching was decent but the facilities were amazing.

There was a feel on campus that the people who were really going to 'make it' were only putting in B- or C+ work and spending the rest of their time working on side projects. There were very few days in a given year when more than half of the computer labs were full at the same time, and with Unix boxes you can always remote in to the flavor of machine you need.

You don't need much research budget if you already have access to time on equipment. I'd be curious to know if Dijkstra had access to a similar embarrassment of riches.



> I'd be curious to know if Dijkstra had access to a similar embarrassment of riches.

Dijkstra spent a good chunk of the latter part of his career at the University of Texas in Austin. There was plenty of access to facilities there, but that wasn't really what his research was about. He wrote longhand (scans here: https://www.cs.utexas.edu/users/EWD/) and didn't really use much technology directly in his work.

This makes sense, because after all, Dijkstra is responsible for this famous quote: "Computer science is no more about computers than astronomy is about telescopes".

https://www.quora.com/What-did-Dijkstra-mean-when-he-said-Co...


This is the difference between computer science and software engineering.

And the vast majority of people who graduate with a CS degree are going to work as software engineers, not as computer scientists. They are therefore being mis-educated to the degree that their CS program agrees with Dijkstra's philosophy. (Which doesn't mean that Dijkstra is wrong about CS. It just means that a CS degree shouldn't be the passport to a career in software engineering, or even a job as a grunt programmer.)


Having a good understanding of theoretical CS and its fundamentals makes programming a relatively trivial activity. I don't think a CS degree miseducates you at all, as long as you actually internalize the CS you learn.


Yes, this is why computer science students from schools like Stanford, Carnegie Mellon, MIT (well, it's an engineering school, anyway), and UT Austin (EWD's stomping grounds) are almost completely unemployable in the software-related industries. All of the employers learned pretty quickly that they were all grossly incompetent.


First, even UT Austin doesn't run their CS program as EWD would have wanted. See his comments when they switched to Java.

Second, I suspect (but cannot prove) that this problem is why computer science grads need a couple of years of close supervision on the job before you can trust them with anything.


I suspect (but cannot prove) that this problem is why computer science grads need a couple of years of close supervision

There's more to it than that, a lot of which has more to do with learning how companies are structured and how people communicate in the corporate world. Among other things, college students have been trained to tackle any assignment with the assumption that the information they have been given is accurate and comprehensive, and the professor would prefer to hear nothing from them until the assignment is turned in as complete as possible right before the deadline.

If you want to educate people to be immediately productive in a corporate environment, that's not what college is for anyway.


They need supervision because they haven't been apprentices gaining practical experience yet. College (especially the sciences) is not about apprenticeships. If you just want "grunt programmer[s]", we need proper apprenticeships and trade schools. Like electronic technicians and plumbers go through.


> College (especially the sciences) is not about apprenticeships.

It is and it isn't. Most degree programs don't require it, and some don't integrate it as a for-credit option, but most (including in the sciences) do open opportunities for them, and lots of students take advantage of that opportunity and are more employable because of it.


Some folks say the science education system is similar to the Medieval Guild systems: apprentices (grad students), journeymen (postdocs) and various levels of master craftsmen (professors). These are intended as ranks not genders, so s/men/people/g if desired.


Academia (not just, or even especially, in the sciences) is a guild system on those lines, but if you are looking for employment outside of academia, things are a bit different even if you need to go through some part of the academic path for the career entry you are aiming for.


Interestingly, Eindhoven University of Technology did use (more-or-less) Dijkstra's approach throughout the 90s. Sure, there were some odd bits, but the core of the curriculum was Dijkstra style.

Not sure what they're doing today.


Fortunately, you can hire newly minted software engineers and they require no supervision whatsoever to solve your difficult problems.


Nice strawman. Oh, wait, no it isn't. It's a really cheap strawman. But in the end, it's just a strawman.

But it is my position that a graduate of a proper software engineering degree would take less initial supervision than a graduate of a CS degree.

Why? Because they would have already seen ambiguous requirements, and would have an idea of what to do. They would have already seen a multi-hundred-thousand-line code base, and would be more likely to have some idea how to navigate in one. They would have some idea of what production-level code looks like, and how to go about achieving that level of completeness. And so on.


> Yes, this is why computer science students from schools like ... UT Austin (EWD's stomping grounds) are almost completely unemployable in the software-related industries.

UTCS 1997 here. I've been employed in software-related industries continually since graduation, and I can honestly say my UTCS degree has been nothing but helpful in that regard.

BTW, the personal website listed in your profile is down. You might want to look into that.


What's more confusing is that Software Engineering, Computer Engineering and Computer science overlap quite a bit, but are distinct fields.

Furthermore, there really is two kinds of CS departments: the ones that were spun out of a Math department and those that emerged out of an Electrical Engineering one.


Secret third option: spun out of the Business School!


Dijkstra is totally of the European tradition where if you don't belong to the guild it's flat out illegal for you to work in the field.


The European tradition is that if you are not admitted to the guild you must not work in the field without supervision. Nothing wrong with that, tbh. You get something out of it, too, your sponsor is invested in your success.


Famously, Dijkstra did not have a computer for most of his time there. He either typed his work on a manual typewriter (early in his career) or wrote it longhand in his elegant Dijkstra font (https://news.ycombinator.com/item?id=7796919). His secretary would print out his emails for him to read and respond to.

Eventually, he got a Macintosh (IIRC, Cynthia Matuszek (https://www.csee.umbc.edu/~cmat/) was the one who set it up for him. (Hi!))


Hamilton Richards (maintainer at the time of the EWDs on the site) was my analysis of programs professor at UT. I had arrived there in 2003 as a freshman, the reverence and impact of Djistrka was incredibly palpable.

I remember some of my classmates were turned off by how theoretical some of the core courses were. A lot of people saw it as less practical. Also the height of Java's OO take over of CS programs, it was definitely a mix of classes. Although the theory courses tended to either care less about language choice or focused on Haskell.


In the article it says that Dijkstra didn't use a computer, TV, or cell phone.


Socrates didn't use writing because he thought it was a mental crutch that would atrophy his memory and mind.


Which school did you go to?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: