
Without computer architecture you cannot truly understand:

By understanding computer architecture you basically understand how everything is linked together, how a computer works and how come a program really does work you see the big picture. I cannot say about myself that I am an experienced programmer but a (actually the) book on computer architecture I read was for me the most interesting book I have read, related to computers and programming. The level of knowledge about computer organization and computer architecture that a high level programmer must have depends on the task the high-level programmer attempt to complete.It is basically the same reason as for understanding C and pointers or maybe even algorithms the only difference is that if you know computer architecture you really understand pointers (actually pointers seem very trivial after knowing computer architecture). Understanding hardware can help you explain the mysterious errors that sometimes creep into our programs, such as the infamous segmentation fault or bus error. In order to write good software, it is very important to understand the computer system as a whole.


There are a fundamental relationship between hardware and the many aspects of programming and software components in computer systems. But what happens when the program we have written needs to be faster and more efficient or the application we are using does not do precisely what we want? As Computer Scientists, we need a basic understanding of computer system itself in order to rectify these problems. We can use various application packages without understanding how they really work. We can certainly write high label language programs without understanding how these programs execute. As computer users, we probably do not have to worry about this anymore than we need to know what our cars look like under the hood in order to drive them.

The study of computer architecture and organization focuses on the interface between hardware and software, and emphasizes the structure and behavior of the system. Computer architecture and Organization focuses on the function and design of various components necessary to process information digitally.
