So I’ve just started my Master’s in CS and wanted to know what subjects (aside from DS and Algo) to review from my bachelor’s that would be important to know while searching for a job as well as which would be useful while on the job. The reason I ask is because I kinda bumbled my way through my Bachelor’s and didn’t really study the subjects well so I want to take the time to relearn them if they’re important to whatever job I’m gonna get (most probably software engineering). For reference here are some of the subjects that were part of my curriculum:
- Data Structures using C
- Design and Analysis of Algorithms
- OOP using JAVA
- Database Management Systems
- Operating Systems
- Software Engineering
- Data Communications
- Compiler Construction
- Object Oriented System Development
- Computer Networks
- Web Programming and Services
- Distributed Systems
- Embedded Systems
- Software Project Management
- Artificial Intelligence
- Data Mining
Read the chapter and don't skim anything. If you don't understand something, you need to go back a paragraph at a time until you're back in familiar territory, then work forward until you hit what you missed. It's very well constructed to actually explain everything, but it's very, very dense. Set solid blocks of time aside to work on it.
The problems all start out hard, but get much easier once you've done a few from the chapter. Once you've practiced the techniques a while, it gets quite a lot easier; it turns out they know what they're talking about when they say these are general techniques. Think of actually completing your first few problems in a chapter as being the majority of the work.
Expect Dynamic Programming to be harder than the rest. Shit's notoriously hard. Schedule extra time for it. Once again, the majority of the work is getting through your first couple problems of that type. Eventually it clicks.