This is a question I get quite often from people outside the field. What do computer scientists or software engineers study at university? It’s a good faith question, and I understand why it exists. When I was in high school, I wanted to get into Physics, Architecture or Micro-Econ, which I understood were rigorous, mathematical, dealt with data and concepts. I was confused as to why “coders” need 4 years of formal education. I, of course, being Indian, ended up in Vellore to study CompSci in 2017, and have a much better picture now.
Software development, IT and Computer Science are three adjacent, but different fields. They have overlaps, but their approaches are different. A software developer, at say Netflix, focuses on building softwares such that the customer is served well (via the Netflix application), or build internal tools such that other employees within the company have an easier time. Sometimes, their work goes silent, sometimes it is useful, but the scope is broad. It could be building the user interface on the application to look beautiful and more functional, or using techniques to make sure large volumes of video data is served seamlessly, or to make sure your Netflix accounts are secured. It could also be to build a tool for HRs to track if the office supplies run out (although companies like Netflix probably have contractors or third party vendors handle specific supply chains such as that via an internal procurement specialist). An IT engineer, on the other hands, serves mostly internal employees of all kinds. From making sure the accounts of Netflix employees in internal tools are maintained well (eg. @netflix.com email addresses and workspaces), or it could be to handle the network configurations for a Netflix data centre so deploys from software teams don’t get obstructed. There are offshoots of these: tech sales, dev-rel, that are beyond the scope of this essay, but are other software adjacent roles.
Computer Scientists often work on tangentially different problems. While software engineers write the code that serves the content, and they even optimise it, it is the duty of CS to come up with ideas and innovations to serve content in significantly better ways. If a researcher is at a university, and not affiliated with Netflix, they might come up with genius new ways to serve data that help both Netflix and Hulu. A Netflix affiliated researcher, however will study Netflix’s pipeline and work to improve specifically that.
These fields have large overlaps, and use Computers. Like an HVAC technician and a Drywall specialist carpenter both probably use nails and hammers, but in different ways, for different tasks.
What we study at University is more or less in connection to what we do. A course on Operating Systems usually is divided into primer and advanced parts, and this goes for all. In one, we will learn how to use an Operating System as a power user, and in the other we dive deep into how these operating systems are built. In a course on algorithms, primer focuses on learning how to implement algorithms such as sorting, and analyse what is the best way to sort (as an example), but as time goes on, they learn to abstract these things away from writing code, to turning them into mathematical equations that can be solved.
A good computer scientist will be able to build a computer in real life with fundamental electrical components, and on paper with fundamental mathematical models.
There are, of course, courses that teach us three things: how to code, what to code, and how to code better. A Python course might teach you how to code in Python, a Data Science course tells you how to use Python to work with data systems and data sets, and an Object Oriented Programming course tells you how to write non-shabby code that other developers can read and write.
There are equivalent IT, ethics, and humanities courses to make us a better well rounded individual. Unfortunately, they can be ineffective (and students and universities are both to blame, along with other factors). But that is again, beyond the scope of this essay.
Anyway: That is all for now, and hope it answers some questions!