4 ms·
I dropped out of college in the early 90s when many of the CS programs were teaching dated material. It was the best decision of my life, no way I'd be where I
by brk 4y ago
I dropped out of college in the early 90s when many of the CS programs were teaching dated material. It was the best decision of my life, no way I'd be where I am if I had waited to graduate before getting started into a career.
IMO, college is one of many possible options to success. They all have trade offs, and there is no universal answer that fits all of the addressable market.
If you do not go to college, you have some benefits (no cost/debt, earlier involvement in an industry), but also some drawbacks (less of a social network, less insight into how some mechanisms of business and career work, etc.).
- xhkkffbf 4y agoAlas, the modern CS curriculum is still pretty dated. It's not that the courses are bad, they're just not that helpful. For instance, I like understanding how compilers work, but I'm never going to be on a compiler-building team. Nor will many of us because everyone just uses LLVM. But it's a big part of the curriculum. And the theory stuff is intriguing, but the modern machine doesn't behave like a Turing Machine and so the lessons are limited. At my local top-50 CS school, the one useful course on things like React, Angular and Vue, was pretty much cancelled because the Chairman apparently didn't want to "turn the place into a trade school." They refused to even give the adjunct an office.
- saalweachter 4y agoThe value of compilers/OS classes to a generic software developer isn't because you're going to spend a lot of time writing compilers or operating systems, it's because they help you understand what actually happens when your program executes.
- dragonwriter 4y agoYou seem to be complaining that your CS program is outdated because it teaches CS instead of Software Engineering or the programming trade. Kind of like complaining that a Material Science curriculum is dated because it teaches Material Science instead of Civil Engineering or the construction trade.
- xhkkffbf 4y agoYour point seems kind of circular. CS can't be dated because you have a list of what is considered CS and your list is a single source of truth. But I wasn't arguing about terminology. I was just pointing out that many of the big, required courses in CS aren't that useful. Or maybe not as useful as the professors might imagine them to be. So call it whatever you like. I'm just agreeing that the curriculum is dated.
- weberer 4y agoI'm going to have to agree with the parent commenter. It sounds like you went to a research university, which focuses heavily on theory, and were expecting a trade school.
- dragonwriter 4y ago> Your point seems kind of circular. It's not. > CS can't be dated because you have a list of what is considered CS and your list is a single source of truth. CS curriculum can be dated, if it doesn't keep up with progress in the domain. It doesn't become dated just because you want to do something other than CS. (It may be the case that the percentage of working programmers in jobs where a CS degree is a particularly relevant on-ramp has declined; that's certainly true for both EE and Mathematics, but those degrees aren't outdated, either.) > I was just pointing out that many of the big, required courses in CS aren't that useful. Or maybe not as useful as the professors might imagine them to be. They are useful, they just aren't useful for the task you want to do, which isn't computer science, or something which requires particular depth in computer science. Compilers remain useful, as does the skill to construct them, even if it's not the job you expect to be competing for. More broadly, theory is useful, it's just you don't expect to be seeking jobs that are either doing research moving the field forward or building systems that require more than rudimentary theory. “Not what I want” isn't the same thing as “outdated”.
- xhkkffbf 4y agoYou're missing my point. I wasn't saying compilers aren't what I want. Indeed, I said I liked learning about them. I said that very few people build compilers any more, a big change from the 1970s when they found their place in the curriculum. No one parses anything anymore. The data formats like JSON were designed to piggyback on the built-in parsers. The same goes for theory. It's fun to learn but the reality is that none of the machines have infinite tape and the interesting Turing machine diagonalization proofs pretty much depend upon this feature. Many of the hierarchies collapse without assuming infinite RAM. Again, you're waving your hands and saying they're useful. Maybe you can find the use for them. Good for you. But I don't see it that often. When I learned that Apple, one of the richest companies in the world, didn't create their own compiler for Swift, I knew that studying compilers was like studying buggy whips. There are a few folks at Colonial Williamsburg that want to understand buggy whip science. They can say with a straight face that it's useful. But it's not for 99% of the CS graduates.