3 ms·
> Currently, CS courses at top universities have very little to do with the business of actually programming, they are more based on mathematical theory. SE cou
by munin 15y ago
> Currently, CS courses at top universities have very little to do with the business of actually programming, they are more based on mathematical theory. SE courses tend to look more like 'software engineering management.'
Where does this meme come from? If you get a CS degree from CMU, you are going to program your ass off. You are going to write at least one of a compiler, a HTTP proxy, or an OS kernel from scratch (and if you choose to, you will write all three) as well as countless smaller applications (your own heap allocator, your own shell, etc). I didn't go to CMU and those are the project I know about.
At UMD, the curriculum will have you spending most of your time, again, programming your ass off. I don't think there's a single class where you'll spend more time on "mathematical theory" than on programming.
- randomdata 15y agoThere are, of course, exceptions, but programming in industry is typically a design job. Your focus is on designing an infrastructure for the application that will allow it to be functional and maintainable, and survive massive refocusing of scope without determent to the prior two points. Things like compilers, HTTP proxies, and OS kernels are plugged into the infrastructure, not written as part of it. Your concern, as an industry programmer, is not whether merge sort of bubble sort is the right algorithm for your problem; you will just hand that off to the built-in sort function. Your concern is whether or not MVC is the right design pattern for your application. Again, there are exceptions, but that is fairly typical of the average programming job. So while you might pick up some design skills during your study in a CS degree, it is not the focus of the program. That is where the meme comes from.
- munin 15y agoI'm not sure if that's a legit complaint. Can stuff like that be taught adequately in a course or is it something you pick up by "just doing" it? A lot of classes where you program your ass off force you to make design decisions, some explicitly as part of the assignment and some implicitly. Isn't that valuable? What would a "design based" curriculum look like?
- randomdata 15y agoI don't necessarily disagree with you, just trying to explain where it came from. Software engineering is the "design based" curriculum.
- evanmoran 15y agoI went to CMU and can confirm this. I coded a shell, filesystem and kernel just in that one OS class. To anyone who thinks this doesn't prepare you for something just because the focus was on the OS abstractions, algorithms and concurrency instead of "good coding design", you are mistaken. Universities teach math-like computer science instead of OOP/Code style/Agile/etc because it is much harder. You can learn OOP and the rest on the job. College is meant to broaden you as a person, to teach you to think -- not teach you to do a specific skill set. Not all of them can do it, and not all students want to learn this way, but the dream is still pretty great. Interestingly this is the opposite of what apprenticeships are for. They teach you a skill set from master to student. Perhaps these two systems have less in common then we originally thought. Should the comparison be between apprenticeships and vocational schools?