I am starting my graduate studies in computer science this year and am confused as to what quality research (some new innovation or discovery) domain I would choose specifically amongst virtualization, distributed computing, containers, and/or blockchain.

My main issue is that I understand but am not interested in algorithms and their efficiencies. Similarly, I can understand my undergraduate level mathematics but that does not interest me. I have good knowledge and understanding of operating systems, virtualization, and containers concepts.

I have researched regarding this online and came to know people normally only compare out the efficiency of one algorithm over another in problems of memory sharing, process switching, and other similar problems; is there any other method or means to do something new in the field of cloud computing, containers or blockchain?

It would be quite helpful if any expert(s) from these domains could enlighten me regarding as to what type of research is currently going on in these domains and how research work in these domains can be done (while staying away from algorithms and complex mathematics).

Thanks to all those who answered and commented. Answering some comments and to give some more context to my question:

  • I am looking to select my research area from the broad domains of Cloud (virtualization and administration), DevOps methodologies and tools (optimizing workflows and processes), Containers technology (for example dockers and kubernetes), and Blockchain optimization ( I am aware this one would involve complex algorithms).

  • I'm not looking to write PHP scripts or JS (I know that is engineering). I personally dislike front-end scripting. Some of my projects include setting up a private cloud infrastructure for a company in an internship, writing shell scripts for CI/CD purposes and creating a custom RHEL ISO which already has preinstalled software (no, not templates). Basically, I am proficient in Python, bash shell, Java, C and have a good understanding of how OS, Cloud and IT infrastructure generally works. You can say I am interested in the data center or infrastructure optimization.

So, my question's main perspective is: I find it hard to believe that computer science research (at least development of new techniques, tools, and platforms) is impossible without deep knowledge of mathematics and algorithm designing (I may be wrong but that's the point of the question). Is there established research work or progress done in these domains that do not involve very complex usage of algorithms and mathematics like integration, differentiation and such. Please note, I am trying to avoid complex usage and modification of algorithms and its maths. I am interested to discover methodologies of such research (I am hardly able to find much on the Internet).

  • 3
    Yes. Computer science is impossible without heavy usage of mathematics.
    – peterh
    Commented Mar 3, 2018 at 21:32
  • 7
    Removing maths from computer science would leave it as 'non-science'.
    – Coder
    Commented Mar 3, 2018 at 22:01
  • 2
    @peterh Impossible? I think thats a rather extreme position. Increasingly, cs thinks of itself in a "big tent" metaphor. I am not sure I'd agree with the assertion that cs research is "impossible" without mathematics.
    – Shion
    Commented Mar 4, 2018 at 2:56
  • 3
    It sounds like you're interested in engineering, not science. Which is fine of course. But the distinction is important...
    – user9646
    Commented Mar 4, 2018 at 9:34
  • 4
    @RodrigodeAzevedo CS is composed of multiple, heavily-overlapping subfields, of which “theory” and ”systems” are only two (or more accurately, about seven and a half).
    – JeffE
    Commented Mar 4, 2018 at 15:59

4 Answers 4


The sad truth is that you absolutely don't need CS for most practical programming tasks.

But without a CS degree, you will have nearly zero chance for the better programming jobs.

Furthermore, without a high-level math/cs knowledge, your mental skills remain significantly under-developed, compared to your own possibilities or to the ones who actually got this degree.

The sad truth is, that the job of a programmer, the ability to write a program what a customer pays for, is hard, but it is an absolutely different type of knowledge, like to know the math of the General Relativity. This truth is so sad, so catastrophal, that you will likely spent some decades of your life, whining on it. But it is the truth.

CS, its math, yes it is such a knowledge. For example, to understand, why there is no such thing as "best compressor" (more exactly: there is, but there is no program what could implement it), is a similarly complex and interesting knowledge, like cutting edge physics. But you absolutely don't need this skill to be a well-going programmer selecting freely between well-paying jobs.

This is how the world works. You can fight it, you can whine on it. I did both of them, decades long.... and I never became a scientist, only a programmer.

These fights and these tears are yet before you.

My advice would be this: learn that math, and get your degree. So:

  • you will fight
  • you will whine
  • you won't ever use it
  • and you won't be ever a scientist.


  • you will be a better man
  • you will be a smarter man
  • you will be able to choose freely between well-paying programmer jobs.

Believe me: if you do this now, you will be pride for that in your whole life. Despite the lifelong pain of your never reached goals.

  • I think I understand what you are trying to say. I appreciate you sharing your experience regarding this. I am also attempting to do the same, I want to contribute something new to the field of computer science and do some meaningful research in it, but even if I fail in doing that, I know I will be left with more in-depth knowledge of the domain and computer science in general which will be certainly beneficial in future. Again, thanks for sharing your honest experience and opinion. Commented Mar 4, 2018 at 8:38
  • 1
    I disagree with this answer.
    – Kevin
    Commented Mar 5, 2018 at 17:16
  • 3
    Sure. I got my terminal master's in CS and didn't like being in academia, so I went right into industry programming. I could do the work I do now without having a solid knowledge of theory, but I do see how it makes me a much better programmer. It: Helps me design patterns for some more challenging pieces of code. Allows me to make smart decisions in situations where performance and algorithmic complexity matter. Lets me understand exactly how the compiler parses my code, keeping trickier expressions from tripping me up...
    – Kevin
    Commented Mar 5, 2018 at 20:51
  • 2
    And makes it easier to understand what's going on when concepts like recursion and working with trees some up directly, like working with browser DOMs or Git histories. Altogether, having a CS background isn't necessary to being an industry programmer, but I do use what I learned in CS every day on my job, and I'm able to write significantly better code as a result.
    – Kevin
    Commented Mar 5, 2018 at 20:53
  • 2
    Even a high school student can do programming, and there are many good ones out there. But if you want to become a computer scientist who can design and implement complicated systems, you need the mathematics.
    – user58480
    Commented Mar 5, 2018 at 22:39

About me: I am a mathematician with a PhD in CS. Now, to your question:



There are fields of CS that are less inclined to mathematics, such as "informatics and society". There is at least one field in CS that lives between mathematics, CS, and philosophy of all sciences! Logical programming, that is.

But as a computer scientist, you would need some amount of undergraduate level mathematics. Big-O analysis? Math! DACs? Math! Heck, moving a camera around in your 3D game is more math than many are comfortable with.

(I kid you not, I routinely thought about a camera path for a very simple 3D scene in spherical coordinates today, with code and such, fully convenient and natural. And then it occurred to me that spherical coordinates used to be a big deal during high school.)

And don't get me started on mathematical software or formal languages.

As some claim, informatics is a portmanteau of "information" and "mathematics".

enter image description here http://abstrusegoose.com/206

  • I know Oleg, while developing any new product or technique in computer science there is more math involved than desired by many. You can take a look at my edit to the question. After looking some more, I think I am interested more in data center (or in general IT infrastructure) optimization with the use of cloud, virtualization, containers, and/or blockchain. I am looking to do my research in those areas and would appreciate any guidance in these areas. Commented Mar 4, 2018 at 8:33

I find it hard to believe that computer science research (at least development of new techniques, tools, and platforms) is impossible without deep knowledge of mathematics and algorithm designing

It is true that CS research requires some knowledge of mathematics and algorithm design.

However, it is debatable that such knowledge is deep knowledge. It could be superficial in some aspects.

Some professional mathematicians -think of University professors or, in France, CNRS researchers in math- might (jokingly) say that CS is for those who have not been able to assess deeply mathematical knowledge.

I've got a PhD in CS, and the math I have used is much simpler that some algebraic topology lectures that I tried to follow in my Master's (I failed the exam on these lectures).

IIRC, D.Knuth said once that computer science is the mathematics of resources.

As other answers explain, you do need some mathematics to do computer science. (but you probably need less math than a professional mathematician do).

In some comment, you add:

I think I am interested more in data center (or in general IT infrastructure) optimization with the use of cloud, virtualization, containers, and/or blockchain.

Then you still need to learn and use a lot of math (any kind of optimization work involves some math). But it is not as heavy as you say.

(so I tend to call "shallow knowledge of mathematics" what you describe as "deep knowledge of mathematics" and what is needed in computer science)

However, you probably need a few thousand hours of training in math to do CS (I don't call that deep knowledge).

(so you don't imagine how heavy is the knowledge of professional mathematicians)

Be sure to read http://norvig.com/21-days.html

  • Thank you Basile Starynkevitch. I had an intuition that what I am aiming forward does not require much mathematical knowledge and complexity. But your statement - "the math I have used is much simpler that some algebraic topology lectures that I tried to follow in my Master's" is what strengthens my intuition. I am looking forward for some concrete proofs and especially methods of doing that. Almost every paper I open is just based on an algorithm's efficiency, and a majority of cloud papers include the comparison of workload tasks on various platforms. Commented Mar 4, 2018 at 8:49
  • The point is that you don't define what is "deep knowledge of mathematics". I am French and was educated in France. I feel that what I learned in CPGE -read that wikipage, it is very specific to France- is not deep math (but shallow), but is essential for computer science. So you need several thousand hours of training in math. Commented Mar 4, 2018 at 8:50
  • As I'm in my undergrad, I don't know the normal level of mathematical and algorithmic knowledge is required at research level but I can describe what I consider as complex mathematics - the neural nets, dimensionality reduction and machine learning algos. Commented Mar 4, 2018 at 8:59
  • 2
    These are not math, but specialized CS topics. And the math knowledge remains shallow in them, certainly not deep (or complex). Commented Mar 4, 2018 at 9:00
  • 1
    Upvote for "computer science is the mathematics of resources". Commented Mar 15, 2018 at 19:38

You can try a PhD in Evolutionary Computation. These folks do a lot of work with hardly any Math. Look for papers in IEEE Transactions on Evolutionary Computation. You will find a lot of papers which you can read like a novel. But if you want to seriously do some work, Math is important and you must start to like it.

Even if you want to make a serious effort toward developing something using CS tools, without Math you can never be sure that what you are doing is right. It will take time to learn it and if you stop learning it for some time or take a break you might start forgetting it.

  • Damodar, I am currently in my undergrad's final semester and looking forward to pursuing masters in computer science. Thanks for introducing me to the new domain of Evolutionary Computation. I will definitely look into it. I know I cannot avoid maths but I am just trying to avoid its much-complicated part. Commented Mar 4, 2018 at 8:43
  • @ParthPatel You can look into Evolutionary computation but because of lack of mathematics EC is a 'hobby technology'. Nobody uses it in industry. So you see, Math is important if you want to seriously use CS for developing something useful or solving a problem 'correctly'
    – user58480
    Commented Mar 5, 2018 at 22:40

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .