▲ | PaulRobinson 2 days ago | |
When choosing my degree back in the mid-1990s, I chose a BEng in Software Engineering, and not a BSc in Computer Science because I wanted to enter a career writing software, not a deep study of the theory of a branch of applied mathematics. I was fortunate enough to have figured this out for myself, and whenever I met a CS grad in my early career it was obvious that the production of actual software terrified them. Meanwhile I'd learned how to build (and how not to build), working programs in C including a simple OS on an M68k chip on a VME bus. I struggled with my final year project because it became too theoretical and CS-ish (trying to write a Prolog to SQL interpreter), so my grade took a hit, but I am really glad I entered industry with useful, practical skills that employers valued. There's always going to be a place for pure CS, I'm glad it exists as a discipline, but more kids should understand the difference, and more colleges should be offering degrees that teach people how to software is built (and how to build software yourself), not just write papers. | ||
▲ | ahartmetz 2 days ago | parent [-] | |
There is a problem insofar that software engineering somewhat exists, but it's more like CS for dummies. I think it's important that it actually teaches at a high intellectual level, just about something different. Let the students write an operating system, not some typical "manageable student task" bullshit. I've had an exchange semester in Oslo where they asked their students to do just that. First exercise: bootloader in assembly, second exercise: task switcher, third exercise: virtual memory, fourth exercise: filesystem - etc. It might have been one or two weeks per exercise, not sure. I actually failed most of the later exercises due to "other priorities", but I strongly felt that they were doing it right. The exercises were of course simplified, but a bootloader is a bootloader, task switching is task switching, virtual memory is virtual memory... no flourishes and some fixed buffer sizes etc, but the basics were there. |