I made a mild college CS alarmist post today on /leftypol/ and was asked by a student for advice on what to avoid in school. I'm well aware of how contentious programming can get, often with people disagreeing on what even constitutes fact vs. opinion, so feel free to argue against anything I say or provide your own advice to any potential CS students.
Here is my generalized advice in terms of CS: take any class that is focused on implementation rather than theory. Theory is also very important but it is absolutely useless unless it relates to your actual programming experience. If you are not being assigned large or challenging projects, make your own.
Things to avoid or be skeptical of:
- You are primarily being tested on pen-and-paper. The only time programmers have to write algorithms without a debugger or at least a console to print to is in job interviews. You can fail every single test in algorithms class and still be a boss programmer. Tests like these are more akin to Math exams where you must provide proofs.
- You are being force-fed OOP (Object Oriented Programming), either by an academic ideologue or simply by virtue of using Java which basically forces it. OOP in programming epitomizes "ideology" in Zizek sense, it's an abstract model adored by academics who don't write code for actual users because of its perceived elegance and simplicity. However, real-world code ALWAYS has to deal with reality's messy edge cases, which renders any OOP code into a nightmare. There are about a million other reasons it's bad, there are many good lectures on YT.