As a computer science student, I find myself torn between two essential classes: Operating Systems (OS) and Compilers. Both seem critical to a solid foundation in software development. If I can only choose one due to time constraints, which course would better equip me for future work in the tech field?
7 Answers
I can’t imagine pursuing a CS degree and skipping out on OS. It seems too essential!
The best choice really hinges on the syllabus. The practical skills from a Compiler course could be more beneficial than hands-on OS experience, while OS theory tends to be more significant than Compile theory. Maybe go for compilers and just get a good OS theory book, like Tanenbaum’s to catch up. But honestly, a solid foundation in Algorithms and Data Structures is key, both OS and Compilers could be less critical based on your paths.
I don't agree that OS and Compilers are the most crucial classes. I find that first and second-year core courses like Data Structures and Algorithms, along with Software Engineering, lay a good foundation. A solid OS course can give you insights into things like schedulers and multithreading, which are super important for grasping how computer systems work. But I think a Compiler course, while valuable, doesn't provide the same foundational understanding.
For me, I'd say definitely go for the OS course. It's used in everyday programming tasks, covering important topics like scheduling and system calls. Compilers are involved more behind the scenes, and unless you’re keen on distributed systems, O.S. would be the way to go.
In the end, do what excites you! Both courses have their merits, and you can always learn the other later if you really want to.
I personally feel compilers might be the better choice. But it really depends on the content of the OS course. What does it cover?
It primarily goes through PintOS.
Honestly, I think it doesn't make a huge difference which one you choose, as long as you’re not planning on diving deep into building operating systems or compilers. You should pick the course with the professor who matches your learning style best. Both classes will challenge you with larger, more complex codebases, so go with what feels right!

Looks like that settles it, lol!