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
  • CheGueBeara [he/him]
    ·
    2 years ago

    Unfortunately the answer depends on what kind of job you want. You can do a lot of things with a CS degree. Of course they are nearly all programming or related to it, but someone that programs part of a website at a FAANG is doing different stuff from someone doing advanced data engineering software for a renewables startup is doing different stuff than someone working for a typical enterprise contractor or government.

    Example: if you want to do jobs that are web programming, you'd want to focus on full-stack Typescript / modern JS for front and back and maybe play around with Python and Java/Kotlin for back end. In the other hand, if you'll be working more with data, you'll want to get better at SQL and database theory in general, higher performance querying and data processing methods, etc. On the other other hand if you want to be creating new crap from scratch and solving hard problems you'll want to get really good at DS and algo. On the other other other hand if you wanted a geospatial job you'd want to brush up on that, if a graphics job you'll want to brush up on that and linear algebra, if a mobile app job you'll want to learn Kotlin, Swift, and make some toy apps.

    The above is about resume building and how to present yourself in an application. Don't try to do all of it unless you're very excited about doing that or something, lol. The point I'm making is that different jobs look for different skills to make the difference when hiring. The dev that has built a full stack web app with real users is more appealing for a shop needing that level of vertical work than someone who only knows Java, for example. Not that you couldn't pick it up p on the job, just that you'll get more interviews and offers if you already have it.

    For an interview, you'll want to do a bunch of stupid leetcose bullshit because companies still use it really often even though it's mostly pointless.

    Also, since you're getting a master's, consider whether you'd want to become a tech lead and/or project manager type, putting your knowledge and experience to work in a way that isn't just coding. You might have a hard time getting directly hired if you don't have experience yet, but if that's your trajectory you'll want to find experiences that prepare you for it, i.e. not situations where you are the only dev and there are no deadlines (but to be confused with places that overwork you).