10

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).

  • 2
    Yes. Computer science is impossible without heavy usage of mathematics. – peterh says reinstate Monica Mar 3 '18 at 21:32
  • 5
    Removing maths from computer science would leave it as 'non-science'. – Coder Mar 3 '18 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 Mar 4 '18 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 Mar 4 '18 at 9:34
  • 3
    @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 Mar 4 '18 at 15:59
8

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.

But

  • 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. – Parth Patel Mar 4 '18 at 8:38
  • 1
    I disagree with this answer. – Kevin - Reinstate Monica Mar 5 '18 at 17:16
  • 2
    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 - Reinstate Monica Mar 5 '18 at 20:51
  • 1
    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 - Reinstate Monica Mar 5 '18 at 20:53
  • 1
    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 Mar 5 '18 at 22:39
4

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

Basically,

Yes

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. – Parth Patel Mar 4 '18 at 8:33
4

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. – Parth Patel Mar 4 '18 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. – Basile Starynkevitch Mar 4 '18 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. – Parth Patel Mar 4 '18 at 8:59
  • 1
    These are not math, but specialized CS topics. And the math knowledge remains shallow in them, certainly not deep (or complex). – Basile Starynkevitch Mar 4 '18 at 9:00
  • 1
    Upvote for "computer science is the mathematics of resources". – Oleg Lobachev Mar 15 '18 at 19:38
3

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. – Parth Patel Mar 4 '18 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 Mar 5 '18 at 22:40

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.