What are the fundamentals of computer science and the reason why we need them in our daily lives?
It is sometimes difficult for beginners to learn the fundamentals of computer science as they want to learn it.
This blog is going to elaborate on the fundamentals of computer science.
What Is Computer Science?
Computer science is the automation, information, and study of computation. Computer science ranges from theoretical discipline to practice discipline. Computer science is generally considered an area of distinct and academic research for computer programming. There are other different types of computer science fundamentals. Below are the details of the different types of them;
What Are The Types Of A Computer?
On the basis of size, computers are divided into five types;
- Personal Computer (PC)
- Mainframe computer
On the grounds of data handling speed and capacity, they are also divided into three parts;
- Hybrid Computer
- Digital Computer
- Analogue Computer
What Are Fundamentals?
Fundamentals are the techniques or concepts that can be applied in different areas and in multiple computer programming languages. They are not joint to anything specific and sometimes ignore the practical aspect. They are the foundations you can acquire more specific knowledge on. The computer programming languages are built using these fundamentals and give you a particular way to work with them.
What Actually Are These Computer Science Fundamentals?
The points listed below talk about the list of the most important computer science fundamentals;
- Data structures
- Maths (basics)
- Logic (yes, separately)
- The work of the computer
- What a programming language actually does and what it is
You need data structure but not all of them but many of them. Knowing What lists, heaps, sets, arrays, trees, and hashtable are and what traits they have, does not actually benefit you in our daily lives. In some interviews, you even need to know them in and out because of some organizations test for knowledge of them. It is necessary but many people do not agree to this practice.
Nevertheless, getting to know at least what they can do for you can help you to write efficient code. If you want unique values, you should filter an array repeatedly if already a set does it for you. This provides less work, and a few potential bugs are prevented.
I do not talk about complex mathematical expressions that may use a lot of symbols that may look as if no one could ever solve them. But later, we need some of them. You do not need to know a lot of maths, multiplication or addition here, subtraction or division there, or to know how to calculate the center of your viewport to be beneficial.
Networking /I /O
We live in a global world, and so do most applications you can create. Your front end talks to your server and gathers data or starts some background processing or your API talks to another API.
All this traffic goes through a network. Having some basic knowledge about networking and network I/O helps to understand that all this comes at a cost. Your JSON string needs to get serialized first, put into an HTTP message, and then travel down to your network interface, through your local network, then reach your point of travel through routers, internet access, and this goes on.
This is a boolean algebra and mathematical logic and although some blogs state that, they can show you how to write code that never needs any statement. The data structures used to accomplish this still use if-statement under the hood.
Whether you implement a mathematical expression or not, you do logic or better boolean algebra all the time.
The Work Of The Computer
Knowing the work of the computer is essential for you to understand what you actually do. How each instruction you write may lead to each variable you declared, how electricity flows through your computer’s circuits, and assign a value that leads to something being stored within your computer’s memory and later retrieved in the CPU’s cache. The work with the computer and your instructions tell the computer what to do and what not to do.
Learning how to solve problems so that a computer can understand and do something based on the expressions and statements you provide is a learning algorithm. It is advantageous for learning those together with the data structure because it touches a lot of fundamentals of algorithms. Solving a problem, or applying divide and conquer, or using recursion is very easy to touch at least while learning data structure, sort algorithm, and searching.
Also read: how long does it take to learn c++
What A Programming Language Actually Does And What It Is
When you have a basic understanding of how a computer works, you have to understand that the high-level computer languages most people work with do a lot to do away with low-level details.
Understanding what runtime is helped a lot. Not all languages compile to machine code. A statement that takes one line in Python is more code within the runtime and even more machine code.
Any single I mention in the above-listed points can be applied in a computer programming language. While learning a specific computer language, you can learn
You don’t need to know all this before you start learning a computer programming language. You can learn it while learning a computer language but it should be your target to get comfortable in all of this at some point
Once you are comfortable with learning all this, it becomes easier to switch languages to another because you have already learned a new syntax.