Branches of Theoretical Computer Science, Engineering and Technology

Saad Bin Manjur Adit
12 min readNov 14, 2020

--

Computer Science and Engineering are consisting of two fields. Computer Science + Engineering. In other words, Theoretical, Engineering, and Applied are mixed in one jam that we call Computer Science and Engineering a.k.a. CSE.

In case you are planning a long period in Computer Science and Engineering, if you want to be in this area (CSE) for the rest of your life maybe it is worth knowing what are the options you have, what are the various areas you have in computer science so that you could know fixed to one area and then spend rest of your life in that see it so happens. That once you make a decision about you know some company or some area of your without your knowledge you know you might have to spend rest of your life in that area, therefore, it is better that you know about the branches first and maybe try to find out your interest in that and try to focus on. And one more thing why it is important that you know this all is very often we take some decision and we get into that field after few years maybe after 10 years of the fight and years we find out that it is not really what we wanted. Right? Therefore, it is always better that you find out whether it is all worth putting your time and effort into learning it so that later you will not feel that “oh, I should not have done that.” So not to say this you should know what are the common fields in computer science and then may you should see whether your skills and your expertise you have gained till now are suitable to be in that area or can you become a master in that area.

Theory

First Branch of Computer Science

So, let me show what are the branches in computer science. We have one is called “Theory”, you can call theoretical computer science so theoretical computer science will contain the subjects like this algorithm, data structures, graph theory, group theory that discrete mathematics then there is game theory. I cannot say that it is completely theory-oriented but then we could put it there and likewise, all these subjects will fall that maybe the theory of computation. Now, what are the chunk? What should you be knowing to get into this area? You should be good with mathematics especially mathematical proofs and analysis of algorithms all this so if you are very good with theory and if you want to spend the rest of your life in this and if it is your passion if you like it then go into it. And even if you have not learned anything in this area it is very easy to start from now and maybe in two-three years, you could equal to reach a stage where you know you understand everything at least you can start your research in two-three years if you don’t know anything at. So but if you have prepared already forget and if you are good with all these subjects at the gate level and everybody you know ready to start your research in this now you know in future if you get into this area is, you could become academician or you could become a researcher in research labs like IBM, Google Labs, Del Labs, Bell Labs, etc. In the labs, you could become a researcher or you could get into academics and become a professor. The best chances are that you could become an academician a professor at a well-known University and you know and the packages are good for professors and life will be peaceful.

Systems

The Second Branch is Systems

The next one is the area of “Systems”. So, systems are all about this software which runs close to the hardware. If you have the hardware the CPU how are you going to write the code, so that this machine will work so that it will provide the service to the users? So whatever directly interacts with the hardware is generally called system subjects. You know that the operating system is here Operating system, Compiler Design, Computer Networks, and Computer Architecture and Organization. And you can put all these subjects here they are all systems distributed systems. All the system courses and this is the next area in computer science coming to the system courses what I could tell you is if you are very good with coding. You should be good with coding; you know and don’t say that if you have written this sorting algorithm and searching algorithm life and you haven’t written or read the more than five hundred lines of code don’t say that you are good with coding.

It requires a really lot of coding if you have already contributed to open source and if you are no good with writing the patches and if you understand, if you could read and write code you should get to do it. I feel that if you have to learn to code it will take at least six months of dedicated effort. Six months of dedicated effort at least from now on if you have never written anything bigger than a sorting searching program it will take from now on at least six months think about it. That to dedicated effort not with you cannot do this but once you join the Masters or if you are already busy with other work because you have already more things to do and you cannot focus on this. If you want to get into this area get you to the open-source projects. Try to do open-source coding no other way but the problem in this area is research in systems is tougher compared to the research in theory and even research is not very easy but then research in systems is tougher in a sense. You look at this area of operating systems or in a DBMS(Database Management System) like this all these system courses have been there for a long time and most of the problems which are comparatively easy to solve have already been solved and the existing problems are tough to solve. There are lots of researchers working on this and if there is any problem that is easier to solve, they would have already killed it many times.

It is very difficult to pursue a research career in this in less time. I know recently what is happening is if you join any good University like BUET and if you would like to take a Ph.D. from this course I am NOT saying that you want to go for Ph.D. in case if you want if you are looking for it, it is taken nearly nine to ten years. I have seen people doing it for ten years but still, they are not able to get their PhDs. It is tougher to get a field in this. The other things that you could expect that you could get out of this area and you could become a software engineer, write coding and the system courses because many companies which are willing to take like Google, Microsoft all these subjects will help to become a software engineer or software developer. Development is easy in this area.

And then the next one is but, let me warn you if you are not good at coding don’t look at this area. Many people think that you know they see these operating systems at the B.Sc. level and they will think that the operating system is at the same level as masters also and then to go and take either M.Sc. or Ph.D. but it is very very different. In the sense in B.Sc. what we teach is just the theory but in M.Sc. type you are supposed to implement the code and when you’re supposed to implement the code you should be good with coding. And now if you are not good with coding just to learn it is going to take some time and when are you going to see the research papers right so it is going to be difficult if you are not good with coding. And if you don’t want to get into coding in your life then don’t get into this area. Stay away.

Intelligent Systems

The Third Branch is the Applied Field of Computer Science

The next one is to let us say the brunch of the future; that one is the “Intelligent Systems”. Intelligent systems mean now we have the hardware and we have the platform ready which means hardware along with this we have this software now using these two we want to make a system act as if it is a human being. This is the main area which is going to take off like anything this is the biggest area. I could think of the biggest application which means we want the algorithms and this software. So that they could identify who you are exactly and once we identify them, we are going to cluster the people like this all the students in Bangladesh who are preparing for M.Sc. All the students in the US who are looking for New South Wales. Once we cluster them then we could target them. That is why this area is going to be very crucial in this application therefore this area is not pure computer science. I tell you what are the subjects in this area and I tell you how what are the future CS. Data mining, web mining, pattern recognition, artificial intelligence. All these subjects are not pure computer science. That is why you don’t see them in B.Sc. Most of them you might see one or two subjects in B.Sc. between the final year as electives because they are not pure computer science. Computer science does not have anything to do with this so these areas are now applied to computer science to solve our problems.

I do not know many people have time to spend time on television either we watch television or not I think you are going to open your Facebook or Gmail every day. Yes, therefore the biggest medium for advertising is the next biggest medium is online that is the internet and now if you look into this area, it is going to take a major chunk of the profits from every company just for advertising. If you look at Google is providing a Gmail for free. Google knows how is it providing free IDs or free email accounts is, if you open your email account you will see definitely on the corner somewhere steady in the US or study there, study here, our matrimonial ads so they are making money out of it. Does it mean that they are scanning your enter emails? They are not scanning your emails but not manually. They have the software which will scan entire data about you so that they will find out through the keywords what you are looking for and so that they can target you see whenever you search something in Google this search so everything will be saved so that they will understand what you are searching for, what you want then appropriately will be shown the ads in are all your Google accounts.

Software Is Eating the World, but AI Is Going to Eat Software

— — — Jensen Huang

Just understand this the future is going to be online internet and therefore you have to learn this subject so that you can design better algorithms that could either cluster or target the audience. You look at major companies like Amazon, Google, Microsoft all these companies are focusing on this area. This area has the highest paid jobs in the world. If you get into this area you will become something called a data scientist either you do masters or you don’t have a Ph.D. You will become a data scientist and the highest paid jobs as of now I think on this Amazon is paying nearly $117k, Google is paying $140k per year for data scientists. You need to do have only the Masters and the beauty of this area is even if you don’t know anything yet till now you could right now start with it and in two years you could become a master in it which means in two years if you focus on this area on only these subjects in your masters there are chances that you could publish papers. By the end of the two years and you would become a researcher and you could get into inner labs like Del labs, Bell Labs, or Google Labs, or Amazon.

Once you get into this the packages are very high or you could choose to go to PhDs. And one more interesting thing is this area does not require you a lot of coding. The algorithms will not be too huge, you don’t need to implement an operating system, you have to just use the operating system and just write the application programs and the programming is not too heavy and you could do that programming in one month. I mean the programming required could be easy to learn and most of you know that programming that is with sorting searching kind of. It doesn’t take a lot of and if you are not brilliant, if you are an average student, if you start from now on or from the first day you join your masters by the end of it you will become a master in it and this is this area is worth looking.

My solution is don’t get into theory or don’t get into systems if you have a chance to get into this and World there are very good institutes for this.

Software Development

Another Applied Branch is The Software Development

One more area in this Computer Sciences is “Software Development”; so this is nothing but how do you develop the software or apps. So one good thing is if you have an idea and if you could write an app for it and if you are lucky and if you charge $1 per download and overnight if there are a million downloads you will become a millionaire. That is how many kids are becoming millionaires these days, isn’t it? Just to learn developing; app development you can learn it anywhere so the subjects required are like Java technologies. All these java technologies and then .NET(dot net) so you can use these technologies.

All I am putting it here and software engineering, Web technologies all these so this area I do not recommend that you know if you get into this area in masters because when you are doing masters it is an opportunity to learn something which you cannot learn outside (and that is not true because you would now it learn everything anywhere) but then you could focus on some area and you could become a master in.

These three areas you spend a lot of time on it and the last one you could learn as a hobby; and you can learn it anywhere. There are various coaching institutes and there are various online tutorials available for this. It doesn’t take a lot of time. Yes, I mean it will take some time but then you need not be an expert to start with. You can start with as you know amateur and maybe by the end of in one or two years you could learn it but then the key for app development is not programming it is the idea. If you have an idea and maybe if you think that you could make money out of it then spend some time learning about implementation or hire someone and implement it and you just sell it.

Anyway, this is not what I recommend if you are into this area again you will become a software engineer. So, I suggest that you get into the area of intelligent systems.

And one more thing there is a new area for us from cloud computing. Actually, it is not that new; it has been there for a long-time cloud computing is again the next big thing. In some other article, I will talk about cloud computing it is a completely different thing where we are going to combine all these things and put it into one concept. Lastly, you may say it's complex but you might be strong when you dove any of these oceans.

--

--

Saad Bin Manjur Adit

Student of Computer Science & Engineering @ University of Science and Technology Chittagong | Learners of Data Science | Machine Learning | Python