Reading as a god

Chapter 198 Laboratory

Chapter 198 Laboratory

Withdrawing her thoughts, Zhang Shan quickly focused on "Computer Systems: A Programmer's Perspective"

The Chinese translation of this book is "In-depth Understanding of Computer Systems".

Speaking of which, the source of this book is a series of books-Computer Science Series.

This series contains more than 500 volumes (527 volumes in total).This series of books also includes "Modern Operating Systems", "Basic Machine Learning Tutorial", "Essential Software Engineering Methods of C++", "Computer Graphics and Virtual Environment", "80x86 Assembly Language and Computer Architecture", etc.

These books are also known as computer black books because of their classic nature.

The so-called computer black book is probably because the covers of the computer science series introduced by the Mechanical Industry Press are all black marble texture, which reflects the taste and style of the straight man's aesthetic computer industry: cold and elegant.

This set of books not only includes core computer courses such as operating systems, computer networks, software engineering, compilation principles, and databases, but also takes you through cutting-edge knowledge areas such as quantum programming, algorithmic game theory, and augmented reality.

"Computer Science Series" has published more than 20 varieties in more than 500 years, and there are too many classic works such as "Introduction to Algorithms", "In-depth Understanding of Computer Systems", and "TCP/IP Detailed Explanation".A collection of works by famous experts in the computer field from all over the world, accompanying the career growth of generations of programmers and researchers.Technology changes, changes with each passing day, timeless, classic forever!The computer science series pays tribute to classic ideas with professional quality and academic spirit.

Zhang Shan has read the "Twenty Lectures on Stanford Algorithmic Game Theory" in this set of books before.

Speaking of which, the reason why I read this book is because of an extremely accidental opportunity~
This book tells the story of the lively interaction between computer science and economics over the past decade or so, resulting in the new field of algorithmic game theory.Many problems at the heart of modern computer science, from the allocation of resources in large networks to online advertising, involve the interaction of multiple self-interested individuals.Economics and game theory provide a wealth of useful models and definitions for these questions.At the same time, for many problems of traditional economics, research from computer science has played a supplementary role. "Twenty Lectures on Algorithmic Game Theory at Stanford" originated from the author's lecture notes on algorithmic game theory at Stanford University, and aims to allow students and other new scholars to quickly and easily understand many important concepts in this field. Twenty Lectures on Algorithmic Game Theory at Stanford illustrates these concepts through examples such as online advertising, wireless spectrum trading, and network management, making it ideal for both classroom teaching and self-study…

Although this set of books is called Computer Black Books, this set of books is not entirely related to computers. Zhang Shan read "Computer Science Series: Discrete Mathematics and Its Applications" when he first read about discrete mathematics. Book.

"Computer Science Series: Discrete Mathematics and Its Applications" is a classic textbook that introduces the theory and methods of discrete mathematics. It has become a highly adopted discrete mathematics textbook. This book has been used as a teaching material by many prestigious schools in the United States and has achieved great success.The Chinese version has also been widely adopted as teaching materials by domestic universities.

Using feedback from teachers and students, as well as their own insights into education, the authors of this book have made numerous improvements to the seventh edition to make it an even more effective teaching tool. "Computer Science Series: Discrete Mathematics and Its Applications" can be used as an introductory textbook for discrete mathematics courses of 7 to 1 semesters, suitable for students majoring in mathematics, computer science, computer engineering, and information technology.

And speaking of the book "Computer Systems: A Programmer's Perspective" ("In-depth Understanding of Computer Systems") that Zhang Shan is reading, this book elaborates the essential concepts of computer systems from the perspective of programmers and shows how these concepts Real impact on application correctness, performance and usability.

The book has 12 chapters, the main contents include information representation and processing, machine-level representation of programs, processor architecture, optimized program performance, memory hierarchy, linking, exception control flow, virtual memory, system-level I/O, network programming , concurrent programming, etc.A large number of examples and exercises are provided in the book, and some answers are given to help readers deepen their understanding of the concepts and knowledge described in the text.

Zhang Shan soon started reading.

Although the book is in English, Zhang Shan's vocabulary is basically not enough to read, it's a piece of cake.

Through reading, Zhang Shan discovered that the greatest advantage of this book is that it describes the implementation details of a computer system for programmers, helping them construct a hierarchical computer system in their brains, from the representation of the lowest-level data in memory to the composition of pipeline instructions. , to the virtual memory, to the compilation system, to the dynamic loading library, to the final user mode application.

By grasping how programs map onto systems and how programs are executed, readers can better understand why programs behave the way they do and how inefficiencies arise.

The book "Computer Systems: A Programmer's Perspective" emphasizes the basic knowledge of being a programmer. SICP comes from MIT, the world's top university (SICP is the famous "Structure and Interpretation of Computer Programs", you can buy a Chinese translation version in China, that is, "Computer Program Structure and Interpretation" by Machinery Industry Press), and "Computer Systems: A Programmer's Perspective" also came from a famous family: CMU (Carnegie Mellon University).

Although it is not as old as SICP, it has been used as a textbook by hundreds of universities around the world (fortunately including Fudan University where Zhang Shan studied) for many years.

The Chinese translation of this book is "In-depth Understanding of Computer Systems", Zhang Shan is very, very, and 120% dissatisfied.The reason why Zhang Shan said this is that this translation completely distorts the original meaning of the book.

If the original title is translated literally, it should be similar to "Understanding computer systems from a programmer's perspective", where does the word "in-depth" come from.Perhaps in the eyes of domestic editors, this is about the system, using C and assembly language, so it is very "deep", but Zhang Shan believes that this only shows the shallowness of the domestic technical atmosphere.Because in fact, this is an entry-level book. This book is not actually "in-depth", and the content it talks about is relatively shallow.

But "shallow" does not mean "shallow". It is often very difficult to write a good book for beginners. Therefore, whether it is SICP or "Computer Systems: A Programmer's Perspective", its authors are professors from top universities. Combining Written with years of teaching experience.

CMU uses this book as a textbook for the "Introduction to Computer System" course, which is an "Introduction to Computer System (Introduction)" for junior students majoring in computer science. Maybe these students have just learned how to use a high-level language, such as Java. Programming, it can be said that I have no contact with topics such as how computer systems work, and "Computer Systems: A Programmer's Perspective" only requires readers to have "some programming experience".

This book covers a wide range of topics, from the basic composition of computers, binary data representation, to machine-level instructions, CPU working methods, storage structure and optimization, virtual memory management of operating systems, program operation methods, I/O, Networking, to (lower level) program performance optimization and parallel program development, etc.Therefore, it actually covers the content of many courses such as "Computer Composition Principles" and "Operating System".In fact, there will be more vertical content in the higher-level computer professional curriculum.

Therefore, if someone says it is "bottom", Zhang Shan agrees.

But if it is "deep", at least Zhang Shan disagrees.

"Wide coverage" is actually the biggest advantage of this book.It tells us how computers are designed and work, what the point of an operating system is, and what they do. The goal of "Computer Systems: A Programmer's Perspective" is actually to explain the principles clearly, but it does not dig into a topic too deeply or in too much detail.For example, Chapter 4 of the book uses the "Y86" processor architecture "designed" and "implemented" by myself, in order to simplify the X86 instruction set, so that the content of the textbook will not be too complicated on the premise of being able to explain the problem.Therefore, after reading this book (in fact, it is not necessary to finish reading, to be honest, Zhang Shan has not finished reading) this book, we can have a rational understanding of the working methods of various components of a computer system.

So who is this book suitable for?Zhang Shan also hesitated about this question.

Zhang Shan highly praised "Computer Systems: A Programmer's Perspective".

Whether you are an undergraduate or a programmer who is planning to get started with programming, you can gain something from this book.

Even if you are a front-end JavaScript programmer, you can benefit from Computer Systems: A Programmer's Perspective.If you are a .NET programmer, then you are more suitable to read this book.

Say something "proud": If you don't know XX, YY or ZZ, how can you be a good programmer?

This book may indeed be different from the usual work. Compared with the "lower level", it will still control the "lower level content" within a certain depth, and will not talk about a specific topic to "get twice the result with half the effort" Degree.In fact, although we are already working on a higher abstraction when developing .NET, our program is still running on the operating system, and it is still running according to a certain rule. Understanding some internal Working mechanisms also help us write better applications.

Strange to say, although various languages ​​and frameworks are getting better and better, it stands to reason that it should be easier and easier for us to write programs.But now it seems that some basic content has become more and more important. For example, in the face of parallel computing, some details of the computing system, such as memory consistency model, thread scheduling, and program locality (Locality) Put it on the table, otherwise it will be difficult for us to write efficient applications.Similarly, some things such as functional programming and Monad seemed very scientific and mathematical things are getting closer to us a few years ago, such as LINQ, Reactive Framework, etc., in fact, they are already things around us .

The book "Computer Systems: A Programmer's Perspective" covers a wide range of topics, and Zhang Shan believes that it is not necessary to read it word for word.

According to Zhang Shan's personal point of view, we should focus on reading Chapter 1 "A Tour of Computer Systems" and the first part "Program Structure and Execution" (starting from Chapter 2, which occupies about half of the book), which contains After knowing the machine-level representation of data, assembly language and execution methods, and CPU architecture, we should critically understand its principles.

For example, Chapter 6 "Optimizing Program Performance" proposes many machine-level optimization methods. It seems that some of them are too detailed, and are no longer recommended in the actual work process (such as inlining some methods to Improve performance), we must grasp the "why" instead of simply absorbing the "how".The second part of the book "Running Programs on a System" mainly talks about the content of the operating system, which can be read a little easier, but Chapter 10 "Virtual Memory", which talks about virtual memory in the operating system All aspects of the mechanism are critical and need to be read carefully.As for the third part of the book, "Interaction and Communication Between Programs", you can read it more "selectively". Zhang Shan only read Chapter 13 "Concurrent Programming", and simply scanned the other two chapters.

As a classic textbook, it must have many additional resources. For example, some links are given on its official site, the most important of which may be the learner site, which includes various tools needed for this book, reference documents, etc. resource.

In the process of reading, Zhang Shan remembered that a certain big cow mentioned two books before, one is a domestic excellent book "Link, Loading and Library".

This book mainly explains the process of "generating files" in the compilation process, and how files are loaded by the operating system when the application is executed, and it involves both Linux and Windows platforms.

The second book is "Windows Internals 5th Edition", and People's Posts and Telecommunications Publishing House has introduced its photocopy version.

Compared with the "can't get in" book Zhang Shan is reading now, this is indeed a "deep" level book.

It basically covers all aspects of the Windows kernel, including system architecture, memory management, thread scheduling, security mechanisms, file systems and other topics. For our programmers on the Windows platform, this content may be more targeted.

Zhang Shan just bought this book not long ago, let alone read it carefully.

Of course, the so-called purchase of books was naturally ordered by Luo Changhui~
Now Zhang Shan doesn’t pay much attention to this kind of trivial matter, although Zhang Shan earns every minute of reading~
There is no way to count whether it is good or not, except for the income from studying for a long time, Zhang Shan doesn't care about the money at all~
With Zhang Shan's current life, even without making any changes.

The money in the bank every day will also bring a lot of interest, and even if you don't spend the money deliberately, the daily turnover is scary...

Zhang Shan noticed that this book and "C Expert Programming" are similar in some places~
(End of this chapter)

Tap the screen to use advanced tools Tip: You can use left and right keyboard keys to browse between chapters.

You'll Also Like