Computer Science is considered a daunting subject matter, especially to those lacking in a more technical background. There are various myths and ghost stories surrounding computer science and this article aims to debunk most of them. So let’s start with the basics.
What is Computer Science ?
Well ,the simplest way of putting it ,without being needlessly complex to explain it like this. Computer Science is simply solving of real-world problems with computers . This is of course in some ways an over simplification but , in a nutshell that’s all it is solving problems with computers.
How do Computer Scientists Solve Problems?
In order to solve a problem you must be able to define it . After you define you can then need to follow an ordered set of steps in order to solve the problem. If you didn’t catch it yet, the second statement defines an Algorithm. Algorithms provide the best approach to problem solving as it allow you to have a solution that is able to solve problems with well defined features and complexity. Using Algorithms also makes your solution reusable to others or you on a later date.
What is programming ?
Programming is the art of writing clear instructions to a computer in to complete a task. The instructions themselves are called the program. A collection of programs is often called Software.
Why is programming necessary in Computer Science?
As I mentioned above Computer Science is simply solving problems with computers. So then you have to communicate with the computers . While this is obvious, it worth mentioning to get the point across , computers cannot communicate using natural languages . They interpret the world in a binary way , which is simply one’s and zero’s. Therefore therein lies the need for programming languages .
Do you really need Programming skills as Computer Scientist?
If you’re hoping that the answer is No , then I apologize for being a little misleading and getting your hopes up a little . Coding skills are a must have for a any computer scientist . The reason for this is mostly because, as I mentioned before a Computer Scientists solve problems with the use of computers . This task cannot be accomplished without a means of communicating with a computer and yes you guessed it a programming language.
Is Computer Science all about Programming?
Not at all. Programming is only an aspect of computer science and only one of the features a computer scientist should possess. Some problems may already possess some already defined solutions which are working pretty well. Sometimes the solution may require you utilize the ability for computers to communicate with each other (Computer Networking) or Installation of systems that Enterprises may use for management (ERP Solutions).
What’s with all the math?
Well , with computers
to be or not to be (Shakespeare)
is literally not a question of compromise . You are either a One or a Zero. This is why computer science is heavy in the field of discrete mathematics. All problems should have a logical ending or solution which can either be interpreted as a one or a zero. Mathematics is a field or Science that has a strong focus on logical ideas which can be followed to a logical end. In fact the most important topic in math associated with computer science is propositions which is concerned with the truth of a given statement. A famous idea which brings much debate in this area is how to treat a paradox. Let’s work with an example paradox called the Liar Paradox.
This statement is a lie
Evaluating this statement as true would make it false. And so if you don’t realize that you are in a never ending loop and attempt to follow this statement to it’s logical end . I have to say , this is the last medium article you will ever read .
Branches of Computer Science
Like a science or profession Computer Science has fields of specialization.
- Algorithms and complexity.
This branch aims to study the best approaches to solving problems as regards to algorithms. This aims to study the complexity of problems and their solution sets. A computer scientist specialized in this field would aim to find the most efficient approach to a problem, that minimizes resource usage and maximizes productivity.
- Architecture and organization.
Computer Architecture deals with the hardware design of computers . This deals mostly with the functionality of computer hardware . This field is one you need to know about as a Computer Scientist and one you should master as a Computer Engineer.
- Computational science.
This field deals with the more scientifically heavy applications of computer science . This field is concerned with scientific modeling, visualizations and simulations. If you fancy yourself a researcher this is the one for you.
- Graphics and visual computing.
This field deals with the display and rendering of images and animations on a computer screen . Do you wonder how Disney brings those princesses to life? Are you curious as to why crisis 3 won’t run on your Intel HD graphics card ?The field of computer graphics delves into the details of what makes your images more demanding or better looking than the next .
- Human-computer interaction.
What’s a computer without a human being to interact with it . Well, it’s a computer, but what would be the point . The main purpose of computers is to make the work of human beings easier. That’s why the field of Human-computer interaction is one of the most important fields in computer science . It draws from the field of psychology, sociology, anthropology ,to ensure that the interfaces designed for the computer make doing your work so much more enjoyable and easy. The evolution of computer interfaces can be seen in the change from ordinary keyboards to touchscreens to Virtual Reality.
- Information management.
Information management (IM) is primarily concerned with the capture, digitization, representation, organization, transformation, and presentation of information.
In fact Data Science is a field that has grown largely from weaponizing information management. The proper management of data to secure an edge in business and marketing. Google themselves could credit their success as an entity to careful and accurate data management.
- Intelligent systems.
Artificial Intelligence is an ever-growing field in Computer Science. The very thought of a computer that is capable of adapting as well as a human being while retaining it’s accuracy and relentless nature is a exactly what computer Science dreams are made of . It usually common to find on most occasions that Artificial intelligence is normally conjoined with data science . Well the reason for this is the simple fact that with any kind of Intelligence to exist , there must me an element of knowledge . For an knowledge to be acquired there must be data . Hence a heavy topic in Artificial intelligence is knowledge engineering which usually utilizes the data captured.
- Networking and communication
In order to understand Computer Networking you must first understand networking in general. In the simplest terms a network is an interconnection of related entities. That’s a very simple definition isn’t it . It’s because it a really simple idea when you really get down to it . And that should make sense right , because networking is not limited to computers. There are road networks , social networks , business network and of course Computer networks. With that in mind it’s easy to accept the definition of a Computer Network a being an interconnection of computers through a medium of some sort . This helps the transfer and management of data across the world on multiple computers and devices.
There are many more fields in computer science follow the link because writing about all the awesome subfields of computer science would lead to a million paged article.
What it takes to Excel as a Computer Scientist.
Willingness to Research
Willingness to research is one of the requirements to becoming a good computer scientist . The theoretical knowledge you receive from completing an online courses or degree programs only scratches the surface of what can be done in computer science . With Computer Science the real learning begins when you meet a problem in the real-world. Trust me that is the knowledge that will cement you’re understanding of a concept and a headache that comes with learning new things . If you need me to say it, I will , It’s totally worth it .
Attitude of a Problem Solver
You will need an attitude of a problem solver . Like I said Computer Science is all about problem solving. You must be willing to encounter new situations and have a need for continuous improvement. The Math? All geared towards problem solving. Impossible is a word you should not have in your vocabulary. Instead feel free to analyze whether a problem is worth solving in your feasibility study.
Most people think computer science is for people with a genius level IQ . This is nothing more than a ghost story . All you need is the ability to learn from you mistakes . You’ve probably heard this before but I’m going to repeat it .
Every master was a beginner and no one becomes a master by quitting.
I hope this article helped someone who was curious about computer science and found this helpful .