Im trying to build my own learning track

Currently I am working on becoming a unity developer to make game or whatever is needed. I use C# within the system.

I don't feel satisfied just working within the engine and want to make my skills more broad and flexible to be able to solve a wide number of problems.

if someone could help me break down the comp sci world so I can learn about each domain one at a time and potentially learn to combine them all.

Why? because I get extremely nervous when I see any feature that I can't deconstruct quickly.

A better way of phrasing it.. Im looking for a hierarchy of computer science ideas from the broadest to the smallest... so I can understand them properly and sort them. put the ideas together.

or perhaps I should just calm down


2 Answers 2


You'll be able to better understand all the branches and subfields of Computer Science if you take a look at the ACM Computing Classification System. This system is normally used by scientists to assign commonly agreed keywords to their papers. This site can show you a "big picture" (13 categories), then you can choose a category, click on it and see what it consists of, and so on.

An alternative way is to use the American Mathematical Society subject classification system - the 68 Computer Science category is much more coarse than the ACM classification, however it still shows a "look and feel" of the Computer Science.

Looking at these subject classification systems might be useful if you want to choose a subject to dig deeper into it - however learning all these subjects one by one will be beyond any human capabilities.


Broadly speaking, computer science can be divided into Theoretical Computer Science, Artificial Intelligence, and Computer Systems. Each of these categories has many subcategories, and each subcategory has many subcategories and concepts after that, and there are also some domains that don't perfectly fit into any of the categories. The wikipedia page provides a good overview of all the areas of computer science in the introduction, and goes into more detail in the body of the article.

Theoretical computer science studies what can and cannot be computed efficiently. Artificial intelligence (including machine learning) is about making computers perform well on difficult conceptual tasks, especially processing images, text, and video data. Computer systems is about building computers and networks of computers, including all the software and hardware infrastructure (or "nuts and bolts") that makes everything fit together.

For computer science research, there's a website CSRankings.org that lists all the most prominent and active research areas in these categories. For example, within theoretical computer science, there is algorithms and complexity theory, logic, and cryptography. Within artificial intelligence, there is machine learning, computer vision, and natural language processing. Within computer systems, there are fields such as networks, operating systems, software engineering, programming languages, databases, and computer security.

However, it's important to note this sort of "big picture" view is not really a good way to learn computer science! For such a vast field, looking at the big picture you will encounter many concepts and areas that aren't relevant to what you are doing, and you will lose interest quickly. A much better way is to focus on only the subareas you find interesting, and read a little bit more about those. In the long run, you will develop an understanding of one or two areas, while dabbling in one or two more, and eventually have a deep understanding of some areas and a shallow understanding of all the others.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.