4 ms·
It's a complex question. You have to be aware that most things you'll learn in CS will have basically nothing to do with your job. CS is basically maths. You'll
by CLPadvocate 6y ago
It's a complex question. You have to be aware that most things you'll learn in CS will have basically nothing to do with your job. CS is basically maths. You'll learn formal logic, theorems and proofs, abstract models and algorithms, things like that. Don't get me wrong - they are or can be insanely interesting, but there is also a huge gap between CS (especially on master's level) and things that you encounter in daily job as a coder. So if you expect something that's directly relevant to your work, you'll probably be disappointed.
On the other hand, what you get is a problem-solving toolbox and improved ability to think on an abstract level and solve the general problem. It can be a significant asset if you are aiming at R&D positions or comanies that have a strong focus on that.
I don't know the USC program, so can't say much about it, but just as an additional idea - maybe you should also look into software engineering path - depending on the university, you can get a much more hands-on study. Just as an example - if you think about compilers and programming languages, in CS the focus may be (again, depending on the university and lecturers) on formal definitions of languages, their equivalence, provably correct transformations of expressions, and so on. In SE you may have a larger focus on compiler implementation, optimization techniques etc.
I hope it helps a bit. And just for the info, I do not regret my MSc ;)
- skrtskrt 6y agoThank you for the answer! I had not thought to vet a program I am interested in for "heavy on theory" vs "heavy on application" - I will make sure to do so.