10 ms·
I am impressed one can get a CS degree without ever even hearing even a vague description of a "system call".
by raimue 10y ago
I am impressed one can get a CS degree without ever even hearing even a vague description of a "system call".
- tronje 10y agoIt's a little disappointing, really, but perfectly possible in my experience. The uni I'm doing my CS degree at also isn't exactly on top of its game when it comes to practical yet low-level stuff like this.
- okreallywtf 10y agoIts interesting that the more low-level engineering stuff isn't taught everywhere and that some people wish it was. My school was much heavier on the engineering side of CS (3 systems level courses that were required for undergrad and optional OS course, all of which discussed syscalls pretty extensively). A lot of people in my program hated it though and found it to be a serious barrier-to-graduation since it just did not make sense to some people who did OK with more higher level concepts. Personally I really liked that stuff, it had a very mechanical aspect to it and even though I'm not a systems programmer I feel like it gave me a much more rounded understanding of a computer as a machine.
- hobo_mark 10y agoI think that was a joke, half the post is hand-drawn stick figures after all...
- adelarsq 10y agoI don't think. I already did see this happen.
- jonesetc 10y agoI don't think that it is. I know that at my university I only encountered anything with the OS in 3 elective classes (OS, UNIX system programming, and networks). Lots of lower tier CS programs like mine seem to really just focus on popping out Java programmers that can work on enterprise systems. Probably 33% of my graduating class fit that bill and went to work on low importance systems at a local bank.
- vkjv 10y agoInteresting. At the university I attended, Operating Systems was required not only for Computer Science students but, also Computer Engineer students.
- masklinn 10y ago> Lots of lower tier CS programs like mine seem to really just focus on popping out Java programmers that can work on enterprise systems. Even in higher-quality ones, OS (and thus syscalls) may not be covered if the curriculum focuses mostly on, say, computational science, or PLT, or formal methods.
- fche 10y agoThat sounds more appropriate for a vocational program in community college.
- jvns 10y agoHow I got a CS degree without learning what a system call is: http://jvns.ca/blog/2016/09/12/how-i-got-a-cs-degree-without-learning-what-a-system-call-is/ http://jvns.ca/blog/2016/09/12/how-i-got-a-cs-degree-without...
- bjz_ 10y agoDamn, your degree looks like it must have been a ton of fun!
- yoklov 10y agoThose "UNIX BASICS + ASSEMBLY" courses are where I'd expect it in that list... Not sure how you could cover those without at least mentioning them.
- deleted 10y ago[deleted]
- untothebreach 10y agoI can't speak for jvns, but for my degree, "UNIX BASICS" was essentially "Command-line basics" (an intro class), and Assembly was pretty much just the actual language syntax, registers, pointers, and interrupts. The word "syscall" might have been mentioned once or twice, but only in a hand-wavy, "don't worry about this right now" kind of way.
- iamcreasy 10y agoIn my assembly course we wrote intel 3/4/586 assembly. It was all about Syntax and Registers. Why pointers will be there in an Assembly course?
- untothebreach 10y agomainly just, "how to deference the address you just got to get the value you want." Might be covered under the "syntax" heading as well, but the concept was still gone over for those that hadn't quite grokked it yet.
- kibwen 10y agoI as well received a CS degree without ever hearing about syscalls. It's not especially surprising either, considering that computer science is essentially mathematics with some programming sprinkled in. Only one of my classes used C and assembly at all, and we used it to write an assembler, not to interface with an OS. The entire rest of the degree was in Java (with a single notable digression into Scheme).
- scott_s 10y agoYour sentiment about the relationship between computer science and math comes up often enough that I wrote a short essay about it. Computer Science is Not Math: https://news.ycombinator.com/item?id=3928276 https://news.ycombinator.com/item?id=3928276
- eximius 10y agoThere is an increasing distinction between computer scientists (math and algorithms) and software developers (implementation - your systems researcher and co). Just as originally computer science was 'just math', the very part of it that made it distinct may have become distinct enough to split off on its own.
- scott_s 10y agoI have not seen this distinction in academic computer science.
- nebopolis 10y agoComputer Science often has a different curriculum depending on whether the CS program at the university grew out of its Math or Engineering department. I think this helps explain some of the wide variations in what is considered a "CS" degree.
- scott_s 10y agoWe may be talking past each other - I am not talking about curriculum's, but the terms that those who do computer science research use to describe themselves. eximius made a claim I have seen no support for. All systems researchers that I know, including myself, consider ourselves computer scientists.
- dherman 10y agoIt's frustrating but unfortunately all-too-common to see the number of posts in this thread subtly (or not-so-subtly) questioning the "seriousness" of the speaker. In my opinion, this talk is doing one of the most important things for Rust in particular and our industry in general: demonstrating that badass technology is not exclusively reserved for the Very Serious People of the world, but that enabling technologies and communities with the right attitude, like Rust, can unlock people's potential and give them opportunities that were otherwise unattainable for them. Nothing makes me more excited about Rust than its enabling potential, and this talk hits on all the most important themes. (In my own small way, I'm trying to help push on this Rust theme by helping the Rust subcommunity of language bridges, to create better on-ramps for programmers in other ecosystems to make use of Rust.) I think it behooves all of us, particularly those of us who haven't had to deal with being a member of a class of people whose credentials are constantly questioned, to ask ourselves what unconscious biases may be causing us to doubt the validity of a presentation based on signifiers like "too many doodles" or "I happen not to have known <some specific fact>," instead of addressing the actual content. But again, I just want to say that I am over the moon that this was the closing talk at RustConf. Rust could have no higher calling than to be an instrument of opportunity for new systems programmers.
- brinker 10y agoThank you so much for saying this. I agree wholeheartedly and think this is a very important point to make. Really, the whole pattern of Why Don't You Know This Already is nothing but harmful. When someone learns something new and shares it, we shouldn't look down on them or demean them for not knowing it already. We all learn different things at different times, and not every CS program teaches the same things. Some are more math focused, some are more engineering focused, and even within those bounds there's space for a huge degree of variation. Let's not put people down because their degree didn't happen to teach something. Let's appreciate their excitement for learning that thing now.
- raimue 10y agoMy intention was not to attack the speaker or question their education. It is very clear that the speaker knows what she is talking about in her presentation. I wrote this comment on this small detail in the talk as that surprised me. I am involved in teaching CS classes (yes, systems programming) at a university. Every undergrad student has to take these classes here in order get at least basic understanding of how a computer works, both hardware and software. And that does not only include CS students. Even in specialized courses such as Business or Health Informatics, Electrical Engineering, or Mechatronics, all students will have to pass at least one class in systems programming. As I learned in this thread, my understanding of basic CS knowledge is different from what others learn in their university courses. When others describe in this thread how many math classes they had in their curriculum, this reminds me more of Applied Mathematics. Apparently, US universities also offer separate courses to get a degree in Computer Engineering. No such thing exists here in Germany, everything with computers is just "Informatik", and translated to English as "Computer Science" on the degree.
- chias 10y agoI don't think syscalls are strictly part of Computer Science. They're an implementation detail of how we have collectively decided to write operating systems. As such, they're far more relevant to software engineering or computer engineering than computer science. As Dijkstra once (supposedly) said, Computer Science is no more about computers than astronomy is about telescopes. You can be a computer scientist without ever even touching a computer (although I imagine these days most of us do anyway as a hobby). For example, my Computer Science PhD dissertation involves precisely zero lines of code. Following the astronomy analogy, I would place syscalls firmly within the telescope operating manual. That said, almost every undergraduate CS program that I've seen contains a dose or two of software engineering. I learned about syscalls in my OS undergrad class, which was an elective to the major. I also learned about how to use version control such as GIT and Subversion in a non-elective CS class... also not CS in the strict sense, but hard to avoid I guess?
- jblandy 10y agoIn the more theory-oriented departments this is possible. It's easy to assume that the parts of CS you understand well are the important parts. It's the converse of the Blub Paradox. Might there be things that other people consider fundamental that you're only passingly familiar with? At the meta-level: contempt (like that you're expressing) is a bit risky: it can be hard to tell whether it's motivated by a desire to uphold high standards, or the need for a quick bump to the self-esteem from putting someone else down. If it comes too easily or too often, I'd worry it might be the latter. I was present at the keynote. I've worked on debuggers of one sort or another (GDB, and the JavaScript-level debugging API for Mozilla's SpiderMonkey engine) for two decades now, and I thought the keynote was an awesome hack. Finally: https://xkcd.com/1053/ https://xkcd.com/1053/