Reasons to know computer architecture

Reasons to know computer architecture


Today, before we take the time to learn about computer architecture in earnest, let’s take some time to understand why we need to know computer architecture. This post will not cover difficult content, so I hope you can read it with a comfortable mind.

What should I learn first when I first learn programming?


What should we learn first when learning development for the first time? Usually, the answer will be “Learn the grammar of the programming language first.” Because programming means writing code. This is because developers think that all they have to do is write good code. Therefore, you may be wondering, “Why do I need to know computer architecture?” However, I believe that in order to become a good developer, you need to have programming skills and know the basics of computers. When I say the foundation of a computer here, I mean things like computer structure and operating systems.

2 reasons why you need to know computer architecture


I think the two biggest reasons why you need to know computer architecture are as follows.

  • problem solving skills
  • Development is possible considering performance, capacity, and cost.


problem solving skills


From an unknown object to an object of analysis

If we have ever learned programming at school, at an academy, or at any organization, we have probably experienced something like this at least once. Obviously, I just followed the code written by the teacher, but I thought, “Why doesn’t my code work?” Or you may have seen students like this.

If you are currently a working developer, there may be experiences you do not want to experience. There may be cases where code that clearly worked well without any problems in the environment in which I developed it does not work when it is actually released to users. Then everyone will think. In this case, it is definitely not a grammatical error in the programming language. Obviously, the problem is a development environment other than the programming language, but there may be people who cannot find a solution here, and people who analyze computers with the question, “Why doesn’t it work?” There are people. “I clearly entered the code correctly, but why doesn’t it work?” In the case of people who give up on this, in my personal opinion, I think it is because they perceive the computer itself as an unknown object or have a feeling of rejection. Conversely, people who look into the development environment or inside a computer think of the computer as an object of analysis, not an unknown object.

Performance, capacity, cost


Next is about performance, capacity, and cost. If you learn computer structure, you will be able to program taking these three things into consideration. I believe that programming without any consideration of performance, capacity, or cost lacks the qualifications of a developer. However, these three things are sometimes overlooked when learning programming. I think there is a big difference between learning programming based on basic computer knowledge and starting to learn programming blindly.

In fact, it is safe to say that among the big tech companies we commonly know (Meta, Amazon, Apple, Google, etc.), there is not a single place that does programming without considering performance, capacity, and cost.

Now, let me explain why these three things are important with an example. Let’s say we need to develop a website. Since the website we create is also a program that must be run by a computer, a server computer is needed to provide this program to users.

Even if you search for server computers on the Internet, you will find a wide range of prices and performance, so which one should you choose? If we unconditionally choose a cheap computer, there may be cases where the computer cannot keep up with the performance of the website we created. However, choosing a good computer may mean paying $2,000 for a service that can be easily solved with $1,000. It can happen.

Therefore, developers must be able to determine for themselves how much performance the code we currently develop requires. Even if a cloud service is used, the developer must choose what type of CPU, memory, and storage capacity to use, so the ability to make decisions on his own is required. Therefore, if you have a good understanding of computer structure, you can develop while solving or considering problems that are difficult to solve using the grammar of a programming language alone.

Leave a Reply

Your email address will not be published. Required fields are marked *