preface

I am not graduated from a famous university, let alone a big factory. I am just an ordinary programmer who graduated less than two years ago. During my hard work, I know that it is very important to have a “complete knowledge system”. The person deeply regrets not knowing this in college…

  • Access to all book materials and high definition mind maps is available at the end of the article.
  • The geek Hour column in mind mapping is a column I subscribe to, not an advertisement. If you are not interested in this part, you can skip it.

C programming language

Introduction:

Ah-ha C

The Challenge of Logic (Revised edition) is a fun primer on programming from the elementary and middle school point of view, with lively comics and humorous writing instead of anything too hard. You can read it after a meal or even sit on the toilet and enjoy it.

Advanced:

C and the Pointer

This book provides comprehensive resources and in-depth discussions related to C programming. This book discusses the basic knowledge and advanced features of Pointers to help programmers to integrate the powerful functions of Pointers into their own programs.

C Expert Programming

This book showcases the coding techniques used by the best C programmers, with a chapter devoted to the basics of C++.

C Pitfalls and Pitfalls

The point of this book is not to criticize C, but to help C programmers bypass the pitfalls and obstacles of programming

C++ programming language

Introduction:

C++ Primer Chinese version (5th edition)

This famous C++ classic tutorial, after eight years, finally ushered in an unprecedented major upgrade. In addition to the rich practical experience of Stanley b. Lippman, a C++ master, and the deep understanding of the C++ standard by Josee Lajoie, former head of the C++ standards committee, And C++ pioneer Barbara e. Moo’s insights in C++ teaching, and based on the new C++11 standard for a comprehensive and thorough content update. It is very valuable that all examples of C++ Primer Chinese (5th edition) are written in C++11 standard, which is extremely rare in the classic update — demonstrating the significant progress of the C++ language and its comprehensive practice.

(2) Effective C tetralogy:

Effective C++ Chinese edition (3rd edition)

Effective C++ : 55 concrete ways to improve programming and design, 3rd edition, organizes 55 guidelines, each describing a way to write better C++. There are concrete examples behind each clause.

More Effective C++

More Effective C++:35 Effective ways to improve programming and design (Chinese version) is one of mayer’s Effective ideas. More Effective C++(35 Effective ways to improve programming and design) is a sequel to Effective C++ by Scott Meyers in 1996. There are fewer articles, but more pages, because this time the material is more advanced than “One episode.”

Effective STL Chinese Edition

STL is part of the C++ standard library. The book is a summary of the experience of STL. The book lists 50 clauses, most of which explain a certain aspect of the problem that should be paid attention to when using STL, as well as a detailed analysis of the source of the problem and the pros and cons of the solution.

Effective Modern C++ Chinese

To fully understand C++11 and C++14, you need to be familiar with the language features they introduce (for example, auto type derivation, mobile semantics, lambda expressions, and concurrency support). The challenge is to use these features efficiently — to make your software correct, efficient, maintainable, and portable. That is what this practical book aims to do. It describes how to write truly great software using C++11 and C++14 — modern C++.

Further study:

Exploring the C++ object model in depth

This book explores program behavior under the C++ object model supported by object-oriented programs. To provide a clear understanding of “the basic realization technology of object oriented nature” and “the hidden benefit exchange behind various nature”. Examine the efficiency impact caused by program distortion. Provides rich application examples, images, and efficiency measurements between object-oriented concepts and the underlying object model.

STL Source Code Analysis

Anyone learning to program knows that reading and dissecting famous code is a quick way to improve. Before source code, no secrets. Masters of careful thinking, experience crystallization, technical thinking, unique style, are fully reflected in the source code.

Linux

Linux Basics:

Birdman’s Linux Home Dish

This book is the most well-known Linux introductory book “Bird brother’s Linux private dish foundation study” of the latest edition, a comprehensive and detailed introduction to the Linux operating system. The book is divided into five parts: the first part focuses on the origin and function of Linux, how to plan and install Linux host; The second part introduces Linux file system, file, directory and disk management. The third part introduces the text mode interface shell and the good helper shell script of the management system, and also introduces the use method of the text editor VI and VIm. The fourth part introduces the Linux account management which is very important for system security, as well as the host system and program management, such as viewing process, task assignment and job management. The fifth part introduces the system administrator (root) management matters, such as understanding the system running status, system services, for the login file parsing, system backup and core management.

Linux Command Line and Shell Scripting

This book is a comprehensive tutorial on Linux command line and shell scripting. The book is divided into four parts: the first part introduces the Linuxshell command line; The second part introduces the basics of shell scripting; Part three delves into the advanced aspects of shell scripting; Part 4 shows you how to use shell scripts in a real-world environment. This book not only contains detailed hands-on tutorials and practical information in the real world, but also provides reference information and background materials related to what you are learning.

Linux Programming (4th Edition)

The book is a classic in the field of Linux programming, widely praised for its simplicity, comprehensive content and rich examples. The publication of the first two Chinese editions also caused a strong response among Linux enthusiasts and programmers in China, which has continued to this day. This is the eagerly awaited fourth edition of the book, which is more carefully organized and carefully crafted to preserve the authenticity of this authoritative work.

Programming in Linux environment:

Linux High Performance Server Programming

This book is a classic work in the field of Linux server programming, written by senior Linux software development engineers, from the network protocol, server programming core elements, principles and mechanisms, tool framework and other aspects of a comprehensive interpretation of writing high-performance Linux server application methods, skills and ideas. The theory is not only comprehensive and in-depth, grasping the key points and difficulties, but also contains two comprehensive cases, which are of great practical significance.

Advanced Programming in UNIX Environments (version 3)

Advanced Programming in the UNIX Environment (3rd edition) is the third edition of Advanced Programming in the UNIX Environment, which is considered as the “Bible” of UNIX Programming. In the eight years since the second edition of this book, much has changed in the UNIX industry, particularly in the standards that affect UNIX programming interfaces. In keeping with the style of the previous edition, the book has been revised and supplemented according to the latest standards, reflecting the latest technological developments.

Linux Network Programming:

UNIX Network Programming Volume 1: Socket Networking apis (version 3)

This is a masterpiece! Top web programming experts Bill Fenner and Andrew M. Rudoff were invited to write revisions to the classic work of W. Richard Stevens. The book absorbs the development of network technology in recent years, adding IPv6, SCTP protocol and key management socket, etc., in-depth discussion of the latest key standards, implementation and technology.

UNIX Network Programming Volume 2: Interprocess Communication (2nd edition)

UNIX Network Programming. Volume 2: Interprocess Communication (2nd edition) is a classic of UNIX network programming! Interprocess communication (IPC) is critical to the performance of almost all Unix programs, and understanding IPC is essential to understanding how to develop network applications across different hosts.

The Linux kernel:

In-depth Understanding of the Linux Kernel Chinese Edition (3rd Edition)

In-depth Understanding of the Linux Kernel, 3rd Edition walks you through the most important data structures, algorithms, and programming tricks used in the kernel. By exploring surface properties, the author offers valuable insights for those who want to know how their machines work. The book discusses important properties unique to Intel. The relevant code snippets are dissected line by line. However, this book covers more than just what the code does. It explains the theoretical underpinings of how Linux works the way it does.

Data structures and algorithms

Introduction to Algorithms

The book gives a thorough introduction to computer algorithms. The analysis of each algorithm is easy to understand and interesting, while maintaining mathematical rigor. The design of this book is comprehensive and suitable for a variety of purposes. Topics covered include: the role of algorithms in computing, probability analysis and an introduction to stochastic algorithms.

Computer network

TCP/IP:

TCP/IP Volume 1: Protocols

TCP/IP Volume 1: Protocols is a complete and detailed guide to TCP/IP protocols. Describes the protocols that belong to each layer and how they operate on different operating systems.

TCP/IP Detail volume 2: Implementation

“TCP/IP Detail · Volume 2: Implementation” a complete and detailed introduction to the IMPLEMENTATION of TCP/IP protocol. The book provides about 500 illustrations, 15,000 lines of C code, and uses examples to help you master TCP/IP implementation.

TCP/IP Detail (Volume 3):CP Transaction protocol. hP. P and UIX Domain protocol

TCP/IP Detail (Volume 3):CP transaction protocol. hp. P and UIX domain protocol is a continuation of the TCP/IP Detail series. The main content includes: TCP transaction protocol, or T/TCP, which is an extension of TCP to make client-server transactions faster, more efficient and more reliable; TCP/IP applications, mainly HTTP and NNTP; UNIX domain protocols, which provide a means of communication between processes. UNIX domain protocols are typically twice as fast as TCP/IP when the client and server processes are on the same host.

Computer system

How computers Run

This book begins with the three principles of computer, and introduces the computer structure, manual assembly, program flow, algorithm, data structure, object-oriented programming, database, TCP/IP network, data encryption, XML, computer system development and SE related knowledge.

How programs Run

Book to start from the internal structure of the computer, in the form of a caption in detail the binary, memory, data compression, the source and executable files, the relationship between operating system and application, assembly language, hardware control methods such as content, the goal is to make readers understand from user double-click on the program icon to start running between what happened.

Understanding Computer Systems in Depth

From a programmer’s perspective, this book details the essential concepts of computer systems and shows how these concepts can really affect the correctness, performance, and usefulness of applications. The book consists of 12 chapters, including information representation and processing, machine-level representation of programs, processor architecture, program performance optimization, memory hierarchy, linking, exception control flow, virtual memory, system-level I/O, network programming, concurrent programming, etc. The book provides plenty of examples and exercises, along with some answers, to help readers deepen their understanding of the concepts and knowledge presented in the text.

The database

MySQL:

MySQL Must Know must Know

MySQL is one of the most popular database management systems in the world. It starts with simple data retrieval and moves into more complex topics, including the use of joins, subqueries, regular expressions and full-text based searches, stored procedures, cursors, triggers, table constraints, and more. The reader is instantly enhanced by a clear, systematic and succinct presentation of what he or she needs to know through focused chapters.

High Performance mysql(Version 3)

High Performance mysql(Version 3) is a classic in the mysql field with a wide range of influences. Release 3 contains a number of updates, including new features in the latest mysql 5.5 release, as well as new content on solid state drives, highly scalable design, and databases in cloud computing environments. The benchmarking and performance tuning sections have also been extensively expanded and added. The book is divided into 16 chapters and 6 appendices, covering mysql architecture and history, benchmark testing and performance analysis, database software and hardware performance optimization, replication, backup and recovery, high availability and scalability, aS well as mysql in the cloud and mysql related tools. Each chapter is a relatively independent topic, and the reader can choose to read it on its own.

Redis:

Redis Getting Started

Redis Is an introductory Redis guide that introduces the basics and practices of Redis in an easy-to-understand way. Including history and features, deploying and running Redis in development and production environments, data types and commands, implementing queues, transactions, replication, pipes, persistence, optimizing Redis storage space, and so on. And the task-driven method is introduced to use the Redis client library of PHP, Ruby, Python and Node.js.

Video learning network

Books + videos are a good way to learn. I recommend two websites with abundant learning resources:

  • Chinese University MOOCs
  • B station

END

For all the books + Mind map content in this article, follow the public account “Xiaolin Coding” and reply “I want to learn” in the background, you can get free book resources + HIGH-DEFINITION mind map