4 ms·
> Absolutely agree that some MS degrees are pretty much less rigorous cash cows by now, that allow students to skip the fundamentals such as data structures, op
by matt_wulfeck 10y ago
> Absolutely agree that some MS degrees are pretty much less rigorous cash cows by now, that allow students to skip the fundamentals such as data structures, operating systems, and compilers.
At what point do we not consider operating systems and compilers "fundamental"? What percentage of CS/programming jobs require deep knowledge in these arenas?
- hackcrafter 10y agoAbsolutely I think they still should be considered fundamental. By definition, these are the subjects that allow you to keep going when your abstractions leak[0]. To say a job "requires" them is pedantic, but what's the point of calling something a CS degree if it is not at least signaling an understanding of these fundamentals. [0] https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/ https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-a...
- kowdermeister 10y agoIt should be optional or advanced level. If you are a web developer for example OS and compilers are totally not important to get along and have a healthy career.
- guntars 10y agoI disagree, compilers are relevant to web development because of all the compiling and transpiling that a single source file goes through in large application development.
- kowdermeister 10y agoIf you are interested in _writing_ compilers then sure. If I just want to use those compilers, then I don't really need to understand them just use them as specified. Now you'll say that I'll make a mess if I don't know what the compiler does. That's what best practices are for if say I pick TypeScript. Also, optimization is the compilers responsibility.
- rfrey 10y agofrom Latin fundamentum "a foundation, ground-work; support; beginning." Whether these subjects are fundamental is totally detached from whether they are useful in a certain percentage of industry jobs. I agree that knowing fundamentals is not that essential for a large number of programming jobs. They're still fundamentals though.
- deleted 10y ago[deleted]
- erroneousfunk 10y agoI did general engineering in undergrad, and software engineering (not CS) for my master's, so I'm somewhat of an outsider to a "computer science" degree. But if you have 6 whole years to turn someone into a "computer scientist," I would expect that, in ADDITION to compilers and operating systems, they'd also have a healthy dose of physics, chemistry, and especially math. I mean, for crying out loud, the degree has the word "science" in it. My freshman year physics class had us building computer models of the solar system from Kepler's laws, constructing vocoders by manipulating raw sine waves, and discovering the equations that governed op-amp circuits through experimentation and a little deep thinking. At my last job, one of my first tasks was to take raw data from truck engines computers (a data point ever 300ms) and turn point measurements like "instantaneous velocity" into data like "how far as the truck traveled over the last week"? Trivial. By combining that with engine speed and fuel usage, you could also say things like "what gear is the truck in?" "Has the engine performance declined recently?" "What percentage of the time has the driver idled in the last month?" And roll all that data up into an efficient database, build a super-flexible API around it, and create a series of web apps to display the useful stuff that managers wanted. Having a deep understanding of the physical relationships between measurements, understanding what the data can and can't tell you, being able to spot potential problems in a proposed project (for instance, something that relies on an impossibly accurate GPS in a subtle way) -- these are all things that computer scientists absolutely should be able to do. Yes, they should understand their computers from the electrons on up -- operating system included -- but they should understand the world that the computers interact with, as well.
- geebee 10y agoThat's a really complicated topic, of course. CS is in an interesting spot, in terms of how people perceive it and what students expect from it. On one extreme, people see CS as a kind of trade school housed in a research university, teaching only what is useful on the job. Some people see CS as professional degree, kind of like law - you must teach theory for students to understand the field, but in the end, you're producing practicing lawyers, not abstract thinkers. And then, at the other end of the distribution, you find people who see CS as an academic field, a branch of scholarship, where the question "what percentage of programmers need to understand compilers" would be akin to asking "what percentage of math majors who become actuaries use real analysis?".