Live data from Hacker News

Advanced Compilers: Self-Guided Online Course

cs.cornell.edu

211–220 of 241 posts

Re: Advanced Compilers: Self-Guided Online Course

#211
post #175

Earlier quoted context omitted.

>I don't think that was what ibains was going for, though i don't fault you for seeing this in that comment Isn't that literally exactly what he was going for? "I’d like to sit down all university professors who teach compiler courses and teach them a course on what’s relevant."

You might believe academia should not impart knowledge students require for their subsequent jobs. Ask the students why they go to university. See what is taught in UCBerkeley with Spark and all coming out of there. I took a systems course with Eric Brewer - totally amazing - the context I got.

I think the ideal is really that a student should be capable of going into the world and picking up a new technology within the same area without too much trouble — I may have used ANTLR for a class, but I should also understand it well enough to write my own parser, or start looking into other parsers.

But if the gap is such that knowing ANTLR doesn’t really help me use packrat parsers (haven’t used them myself, so I don’t know) then it’s a gap probably worth filling.

But ideally students should learn the fundamental architecture/algorithms, not the specific tools, popular algorithms & implementations, and all the accidental complexity that came with it.

Which is where the industry vs academia problem usually comes in — industry often only cares about knowledge of a particular tool, and only sometimes cares about knowledge-transferability (I think largely because HR exists, and operates independently of the actual engineer making the request, with the first pass review).

The company hires for Hadoop, the university teaches distributed systems, and ideally the student can be trained in Hadoop specific in short order.

India also offers an example of the extreme alternatives — heavily industry driven courses focusing on specific tools, and you end up with students having practical knowledge for current tooling... but no ability to transfer it. Like the kind of resource who refuses to program C# because they’re a Java developer, and it’s all they know

Re: Advanced Compilers: Self-Guided Online Course

#212
post #174

Earlier quoted context omitted.

> Good luck hiring an engineer with advanced compiler courses knowing any of this. Have you tried raising the level of compensation you offer? There are engineers elsewhere doing this at other companies you could presumably get if you put your hands in your pockets?

We pay very very well, all my peers from NVIDIA are above 700k. Why would you presume anything about salary?

Are you hiring massive programming language design & implementation enthusiasts familiar with the whole stack (parsing, type systems, verification, compilation, runtime, GC, ...) including all kinds of different parsing algorithms?

Re: Advanced Compilers: Self-Guided Online Course

#213
post #74

Earlier quoted context omitted.

No offence, but parsing (in a compiler, not in general) is probably the most boring part of a compiler. As this is a PhD course, I'd expect the goal of it to be preparing students for research in the field, not writing parsers for some industrial company. Also, there are definitely courses that teach you how to write a parser. But we usually don't call them advanced.

> No offence, but parsing (in a compiler, not in general) is probably the most boring part of a compiler. Not if you're writing an IDE. Writing a batch mode parser that takes an entire correct source file and produces an AST is easy. Writing a parser that instaneously handle producing an updating AST while the user is typing in the middle of the program while still allowing semantic analysis to occur and without vomi…

> Not if you're writing an IDE.

This thread is so weird. The topic at hand is a compliers course. ibains complains about a desire for qualified IDE developers. It's like complaining that your family doctor isn't an orthopedic surgeon. Why should a compilers course spend the requisite time for these highly specialized IDE algorithms?

Specifically. What part of this course should be removed to make room for IDE-specific algorithms? Or, would an advanced IDE algorithms course (with this course as a prerequisite) be a more sensible approach?

Re: Advanced Compilers: Self-Guided Online Course

#214

Earlier quoted context omitted.

My two cents - what’s useful for employers is giving students the confidence to jump into the code and figure it out. By this measure, what’s relevant for a compilers course isn’t the material itself. It’s that it’s structured to force the students to figure certain things for themselves. There are college hires who need to be spoon fed, and college hires who just need mentorship and direction. Group two are invaluab…

Andy Pavlo of the CMU DB fame echoed this in one of the intro video lectures to one of his courses. He said his contacts in the industry valued people, who can navigate a large codebase productively. Most uni courses seem to involve writing a "toy" solution from scratch, which is seldom the case in professional programming. He designed the course to be an exercise in working in an existing codebase that one needs to…

It’s a combination of a rigorous program, and very smart people as inputs.

Re: Advanced Compilers: Self-Guided Online Course

#215
post #174

Earlier quoted context omitted.

> Good luck hiring an engineer with advanced compiler courses knowing any of this. Have you tried raising the level of compensation you offer? There are engineers elsewhere doing this at other companies you could presumably get if you put your hands in your pockets?

We pay very very well, all my peers from NVIDIA are above 700k. Why would you presume anything about salary?

> We pay very very well, all my peers from NVIDIA are above 700k.

That's... an impressive number.

> Why would you presume anything about salary?

Because that's usually the reason, especially when speaking of what universities teach. "We can't find people who know $TECH" is, under those circumstances, almost always corp-speak for "We can't find new grads who already know $TECH to fill our entry level positions for what we're willing to pay in order to replace the employees that learned it on the job and then leave when we don't give them raises after a couple of years."

Have you posted the positions you're trying to fill here on the monthly "Who is Hiring?" thread?

As an out of the box suggestion, consider sponsoring the creation of an online course (like a Udacity nanodegree, perhaps) that covers the curriculum material you consider missing. A comprehensive set of 'build your own programming language and tooling' courses would probably be quite popular.

Re: Advanced Compilers: Self-Guided Online Course

#216

Earlier quoted context omitted.

My uni, NC State, has a course (CSC 326) called Software Engineering that has students contribute to an existing project created by the staff in teams, with the best contributions being merged into master for the next semester students to work on.

That sounds pretty cool. Do you get a choice of what kind of project you want to contribute to?

Sorry - should've been more clear. It's a project written by the staff in Java and Angular. It's been used continuously through the years, evolving each semester with the best contributions being merged. I believe it's a health management service, I haven't taken the course yet.

Re: Advanced Compilers: Self-Guided Online Course

#217

Earlier quoted context omitted.

My two cents - what’s useful for employers is giving students the confidence to jump into the code and figure it out. By this measure, what’s relevant for a compilers course isn’t the material itself. It’s that it’s structured to force the students to figure certain things for themselves. There are college hires who need to be spoon fed, and college hires who just need mentorship and direction. Group two are invaluab…

Andy Pavlo of the CMU DB fame echoed this in one of the intro video lectures to one of his courses. He said his contacts in the industry valued people, who can navigate a large codebase productively. Most uni courses seem to involve writing a "toy" solution from scratch, which is seldom the case in professional programming. He designed the course to be an exercise in working in an existing codebase that one needs to…

I am currently in this class and can confirm that navigating the codebase is a nightmare. The specifications we are given in the relevant assignments are vague or wrong and the code itself is pretty questionable. I spend more time trying to understand the assignment and current code than actually writing anything myself. If that's what he's going for, I guess he succeeded.

Re: Advanced Compilers: Self-Guided Online Course

#218

Earlier quoted context omitted.

Yes. Go and look up Tree Sitter and its references.

Parsing (use of rather than theory) matters as it affects my work. So I followed up. See https://youtu.be/Jes3bD6P0To Tree sitter is based on LR parsing (see 23:30 in above video) extended to GLR parsing (see 38:30). I've had enough of fools on HN posting unverified crap to make themselves feel cool and knowledgeable (and don't kid yourself that you helped me find the right answer by posting the wrong one). Time I wi…

I'm not sure what you think you're refuting but Tree Sitter definitely does some different stuff to allow recoverable parsing.

Re: Advanced Compilers: Self-Guided Online Course

#219

Earlier quoted context omitted.

My two cents - what’s useful for employers is giving students the confidence to jump into the code and figure it out. By this measure, what’s relevant for a compilers course isn’t the material itself. It’s that it’s structured to force the students to figure certain things for themselves. There are college hires who need to be spoon fed, and college hires who just need mentorship and direction. Group two are invaluab…

Andy Pavlo of the CMU DB fame echoed this in one of the intro video lectures to one of his courses. He said his contacts in the industry valued people, who can navigate a large codebase productively. Most uni courses seem to involve writing a "toy" solution from scratch, which is seldom the case in professional programming. He designed the course to be an exercise in working in an existing codebase that one needs to…

> Most uni courses seem to involve writing a "toy" solution from scratch, which is seldom the case in professional programming.

Without writing a "toy" from scratch, one would never understand professional programming or codebases either. They wouldn't understand why they oftentimes poorly designed, full of bugs, etc. Tracing own "from scratch" steps, with self-reflection, is the best way to be prepared to "professional" programming. First, make and find mistakes yourself, only then you will be ready to find mistakes in, and improve on, other people's stuff.

Re: Advanced Compilers: Self-Guided Online Course

#220
post #181

Earlier quoted context omitted.

> I’d like to sit down all university professors who teach compiler courses and teach them a course on what’s relevant. I don't teach compiler courses, but I'm an academic, and I do keep in touch with industry people to find out what's important for my data analysis course. A couple of big problems with your proposal: 1. Time variation in "what industry wants". This year one thing's hot, the next year it's something…

There is no such variance and new fashions in compilers every year. There are hardware compilers and tools including language servers primarily. Move to cloud requires source to source compilers for data snd transforms.

> There is no such variance and new fashions in compilers every year.

Indeed. Packrat is exactly an example of passing fad in parsing. I find it telling that you, an "optimizations expert" are so worried about ways to parse. Shows that "new fashions every year" have reached the compiler industry too.

Post reply on HN