books, from beginner to pro

What’s up guys?

Computer Science – roughly speaking, the science of computers. It combines everything a programmer needs to know about computers and working with them to create effective programs and algorithms. Programmers are different, and usually differ only in the language they write in, but they are all united by the need to understand the basics of this science in order to understand how a computer works.

In this article we will talk about the most useful books on Computer Science for a variety of levels that will give you an understanding of how computers work and everything connected with it. I propose to start immediately, and we will start with books for beginners (in my opinion).

Books for beginners

There are three main books here:

  • Charles Petzold – Code. The secret language of computer science. As the author himself says: “An unusual excursion through the history of digital technologies that have shaped the modern era.” The book for beginners is really not bad; it talks about many aspects of computer operation in more or less simple language (if you studied mathematics and computer science at school, you will understand). This is not a bad book to start with.

  • Vladston Ferreira Filo – Theoretical minimum in Computer Science (two books, green and orange). As it is written on the cover of the first part: “Everything a programmer and developer needs to know.” And the second part talks about computer networks, cryptography, data science and machine learning. These books are really useful, but I personally did not have enough information in them to fully immerse myself in the topics. But they provide a fundamental basis, the knowledge of which can be deepened by reading the books in the following sections. They are good for beginners.

Also, for beginners, I can recommend reading something about the OS you are using. As for Windows, I can’t recommend a book, but for Linux:

  • Kolisnichenko D.N. – Linux with examples. Practice is practice and only practice. If your goal is to master basic commands and work in Linux, then there is no need to read the entire book, but in any case, I recommend it.

This is the end of the books for beginners that I can recommend. Let’s move on to basic and more advanced books.

For intermediate level and above

Computer architecture

There are two books in this category:

  • Andrew Tanenbaum and T. Austin – Computer Architecture. This is a classic, this is a base. One of the most complete, in my opinion, books covering the topic of Computer Architecture. The book tells everything about the structure of a computer, from the basics of organizing computer systems to the assembler level and parallel computer architectures. The book is as detailed as possible – I recommend it.

  • Noam Nisan and Shimon Schocken – Computer Systems Architecture. A more general book that will be more useful for learning how to assemble computers and understand how it all works. But I like Tanenbaum’s book better.

Computer networks

  • E. Taenenbaum and D. Weatherall – Computer networks. Similar to the book from the previous category – this is a classic. Kinga has been reprinted many times. Tells almost everything about computer networks, from the physical level to network security. Like some other books by this author, it can be a little difficult to read, although, in my opinion, it’s ok.

I can’t advise anything more on this topic.

OS

There are three books in this category:

  • E. Tanenbaum. And H. Bos – Modern Operating Systems. It’s just like all the other books – a classic. Describes operating concepts common to all operating systems and considers specific examples. This book contains everything you need to know to understand how the OS works.

  • Evi Nement and others – Unix and Linux. System Administrator’s Guide. If you want to master Linux perfectly, this book is for you. It talks in as much detail as possible about administration, working with networks, data storage and other processes on Unix – a similar OS.

  • Mark Russinovich and others – Windows Internals. From the title of the book, it seems to me, everything is clear. She talks about how Windows works. The book covers topics such as system architecture, processes, threads, memory management and of course security.

Algorithms

From this category I can recommend a series of books:

  • Robert Sedgwick – Fundamental algorithms in C++. Even if you don’t know C++, everything will be clear to you; the author gives detailed explanations of what is happening in the algorithm. If you know, great. In fact, the books contain descriptions of all the most important algorithms in CS and they should be enough for you. The operating principle of each algorithm is described in sufficient detail.

And one more moment, especially for those who want to fully understand what is happening, and in Tanenbaum’s books:


In general, on the topic of CS, that’s it. You should also not forget about the various sections of mathematics and physics that are necessary to understand the material in most of the books on Computer Science. I can also give some tips for reading such books:

  • Don’t overload yourself with information. Don’t read too much at once.

  • As soon as you come across something that you don’t understand in the book, immediately study this topic. If you don’t do this, it will only get worse.

  • Practice everything you can practice. If any algorithm is given in the book, understand how it works and try to recreate it; if it is a program, rewrite it and figure it out.

  • Retell what you read. After reading the theoretical one, try to retell it (to yourself or someone else) in as much detail as possible. This way you will remember the material better.

  • If possible, read books in the original. This way you are less likely to stumble upon translator and editor errors.

You can download all the books mentioned in the article here.

This concludes the selection of books, thank you to everyone who has read up to this point!

Similar Posts

Leave a Reply

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