Computer science is a major with some of the most varied outcomes for their students. Computer science majors will go on to be professors, software engineers, hardware engineers, machine learning engineers and data scientists. A good computer science program will provide introductory coursework that offers glimpses into each of these various fields. Once a student identifies their interest, they set out on a track to build the relevant skills necessary for their post college job choice. In this blog, I'll talk about the various tracks within a computer science major, the opportunities that each of the different tracks provide, and which one you should choose. Note that different universities may name and classify each of these tracks slightly differently, but the overall structure should be similar.
Theoretical Computer Science/Academic Track
A student interested in theoretical computer science will take advanced theoretical and mathematical courses in almost all the disciplines that computer science has to offer – many of these courses don’t even involve coding at all. Students interested in this track are drawn to computer science because they like the theoretical math that underlies these disciplines. Often, these students are attracted to obtaining PhDs and ultimately professor positions because they hope to do theoretical research on their own in these cutting-edge fields.
Software Engineering Track
A student interested in software engineering will take classes in object-oriented program and front/back-end development. In addition, these students should be proficient with data structures and algorithms because employers will test them on that knowledge in interviews. If your favorite part of computer science is building, designing, testing and evaluating software then this is the track for you.
Data Analytics/Science Track
Students interested in data analytics will take classes in data manipulation, machine learning and statistics. In addition, they should aim to be proficient in R/Python and SQL. If you're a student who enjoys the mathematical aspects of computer science as well as coding and explaining your results to non-technical people, then this is the track for you
Students interested in hardware (sometimes called computer engineering with connection to electrical engineering), will take courses in operating systems, networking, and low-level programming. If you’re a student who wants to understand how a computer is built from the ground up, then this is the path for you.
Machine Learning Engineer Track
Students on a machine learning engineering track will take lots of coursework in statistics and machine learning. As opposed to a data analyst who just implements a machine learning algorithm, a good machine learning engineer dives deep into the algorithm’s structure in order to optimize it for performance. Therefore, a good machine learning engineer needs to be an expert in the cutting-edge machine learning algorithms.