What subfields in computer sciences may one study without learning Object Oriented Programming or is there some kind of degree in Computer Science without the OOP knowledge requirement?

Is there a language without OOP?

Does one need to know OOP to simulate a CPU?

I wanted to earn a CS degree without ever learning OOP. Is there a name for that?

My guess what that Computer science without OOP is simply applied Statistics or Machine Learning using SKlearn and packages.

  • $\begingroup$ The whole theory of computability and complexity completely abstracts from programming languages paradigms. $\endgroup$ – Steven Jul 1 '20 at 13:44
  • 2
    $\begingroup$ You can learn any part that isn't OOP. OOP is a tiny tiny tiny subfield. I'd call it a vouge idea in industry in the 90s and early 2000s. In industry nowadays we're seeing a movement away from that. When learning to program I understand why people think its so important but from a theory standpoint it isn't important at all and even from an industry perspective the idea is loosing ground. $\endgroup$ – Jake Jul 1 '20 at 14:44
  • $\begingroup$ Welcome to SE Computer Science. Why don't you state your real question ... so far you are only circling around it. What is OOP according to you ... and do not bother trying for the right answer, there is none. What do you think is wrong abour it? $\endgroup$ – babou Jul 1 '20 at 20:02
  • $\begingroup$ @Jake I'd see a move away from some aspects of OOP, like merciless subclassing. $\endgroup$ – gnasher729 Jul 1 '20 at 22:18
  • 2
    $\begingroup$ I'll add another thing to this. Why do you want to avoid learning something? I spent a lot of time having a bias against certain types of mathematics that I didn't find pleasing but frankly that didn't help anyone. I also had a bias against a lot of OOP things and associated tools but that didn't help me either. You're far better off trying to leave your bias behind. Who cares if you learn something useless along the way? I've learned tons of useless things. The useless things are some of my favorites! $\endgroup$ – Jake Jul 2 '20 at 4:23

Object Oriented Programming is a type of programming paradigm.

A Computer Science degree is mostly theoretical (not only machine learning and applied statistics! Believe me there is so much more), so you wont see any of this in most courses, however, in a Software Engineering degree I suppose you do learn more about OOP.

Anyways, OOP is always good to know. Its not as complicated as you would think from its fancy name, and it gives a nice way to write organized code, and most programming languages support that kind of programming.

However, there are some programming languages that use a different type of programming paradigm called "functional programming". I recommend you to take a look at it too.

If you are wondering about what kinds of things there are in a CS degree, feel free to ask me!

BTW: This Stack Exchange site is for theoretical computer science, so questions about theoretical computer science problems are seen here all of the time.


Depending on where you study, you might be able to get a CS degree without Object Oriented Programming, but the chances are slim. Most degrees would require you to take some programming courses using some general purpose languages along the way, and that will often be Java, C++ or similar, and there you have OOP. Hard to avoid.

But that's good for you, because if you want any job outside university, and you have not a clue about OOP, your chances are practically zero to get any job.

  • 1
    $\begingroup$ I think there are a few jobs that mainly require functional programming, but not knowing OOP would mean being handicapped e.g. any time one had to interface with some OO code that someone else wrote, etc. $\endgroup$ – Mars Jul 1 '20 at 23:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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