C/C++Linux server development complete learning route (including free learning materials download address)

C/C++Linux server development complete learning route (including free learning materials download address)

I believe that most of the students who just graduated or want to switch to C++ server development are confused and don’t know where to start, so they are ready to participate in various training courses or online training. Newcomers who come out for employment are undoubtedly a heavy blow, but they don't know where to start. My purpose of writing this article is to help more newcomers who want to enter the industry or who want to change to become a C++ server to avoid more detours, and eventually to be able to master relevant knowledge smoothly and find their favorite job.

1. Basic stage

  1. c/c++ programming language

  2. linux basics

  3. Data Structures and Algorithms

  4. Design Patterns

  5. Script language (optional)

2. Introductory stage

  1. linux system programming

  2. linux network programming

3. Advanced stage

  1. Database mysql

  2. Distributed cache redis

  3. Network library

4. Project practice stage

  1. Baidu network disk actual combat project

V. Advanced stage

  1. nginx

  2. zookeeper

  3. message queue

  4. skynet

  5. boost

  6. Load balancing

  7. container

  8. rpc

  9. Microservices...

Six. Systematic learning

C/C++Linux server development system learning video link: C/C++Linux server development/Linux background development architect-learning video

Attach Tencent core technology learning route (T1-T9)

1. Basic stage

1. c/c++ programming language

The essential introductory book for c language is this "C Programming Language"

  • Analysis of the essence of C/C++ programming

Video link: https://pan.baidu.com/s/1_3cA9dz6vRp5iwBTfvhA8g Password: cirr

2. linux basics

  • Linux system installation, commands and tools use C++ server programs are basically running under the linux system, so you must learn how to use linux system installation, command tools, etc. Click on the following video: learning materials

3. Data structure and algorithm

Electronic book link: https://pan.baidu.com/s/14s4FDJaTaDrUqh0AJgouag Password: e729

4. Design Patterns

A design pattern is a set of code design experience that has been used repeatedly, is known to most people, and is classified. The purpose of using design patterns: for code reusability, making the code easier to understand by others, and ensuring code reliability. Design patterns make code writing truly engineering; design patterns are the cornerstone of software engineering, just like the structure of a building.

Video link: https://pan.baidu.com/s/1EL8GUdwSqwRImikdCHTsmw Password: xehz

5. Script language (optional)

In many cases, C++ development will be mixed with other scripting languages. Especially game companies use C++ and Lua scripting as the mainstream, and some use python, so I suggest you learn these two scripting languages.

  • Lua book recommendation, including introductory book "lua programming" and in-depth principle book "lua design and implementation"

2. Introductory stage

1. linux system programming

Programming under linux you must first learn files and directories, standard I/O libraries, system data files and information, process environment, process control, process relationships, signals, threads, thread control, daemons, various I/O, processes The content of intercommunication, network IPC, etc. Click on the following video: learning materials

2. linux network programming

Network programming can write network communication programs, such as chat programs, data transmission programs, file transmission programs, etc.; it can give you a deeper understanding of network communication, and when you encounter network communication problems, you will have a very in-depth analysis; Lay a solid foundation for learning many distributed application systems.

In addition to the study materials, there are actually a lot of interview materials, including interview questions, tutorials, resume templates, etc. I also read these materials and the guidance of the big cows in the group, and I got this job that I am very satisfied with. .

IT programming technology exchange qun learning materials , free to receive

Compared with the doubtful life of many people learning C++, my learning process did not take many detours. After all, I found high-quality tutorials and learning materials at the beginning, and the results are naturally extraordinary.

I feel that learning any technology cannot be done behind closed doors, because many of the problems in the learning process are not encountered by you alone, so communicate with colleagues more, and the probability of getting into the wrong corner is much lower.

In addition, as someone who has come here, I also want to remind everyone: If you want to learn C++, you must work hard and be patient. It is impossible to walk to Rome in one day. The only thing you can do is to set off immediately.

3. Advanced stage

1. Database mysql

  • Getting Started Recommendation "MySQL Must Know and Know" This is the best database introductory book. It has long been ranked first in database sales on Amazon. It is recommended for novices who want to quickly understand database principles and MySQL. The nature of fast food, concise and clear, small format, and very thin, relatively easy to read.

 

MySQL database video explanation link: https://pan.baidu.com/s/1mWqUinQysWwbJZCAxRLrGw

Password: npa4

2. Distributed cache redis

  • The book "Redis Design and Implementation" comprehensively and completely explains the internal operating mechanism of Redis, introduces most of the single-machine functions of Redis and the realization principles of all multi-machine functions, and shows the core data structure of these functions and the key Algorithm ideas. By reading this book, readers can quickly and effectively understand the internal structure and operating mechanism of Redis, so as to learn how to use Redis more efficiently.

Redis related video explanation link: https://pan.baidu.com/s/1hD1GK8HJkHtf5RG1enVGDA

Password: 4bfa

3. Network library

There are many linux c/c++ network libraries, such as boost.asio, libevent, libev, libuv, muduo, ace, etc. It is recommended to find a code that is relatively small and concise to learn repeatedly, ponder the internal principles, and effectively improve network programming capabilities. I have repeatedly studied the muduo network library several times and have gained a lot. You can choose one of libevent, libev, libuv, and muduo to learn. Among them, libev and muduo are the most streamlined and easy to learn.

4. Project practice stage

1. Big data cloud storage

V. Advanced stage

1. nginx

  • Nginx is a free, open source, high-performance HTTP server and reverse proxy server; it is also an IMAP, POP3, SMTP proxy server; Nginx can be used as an HTTP server for website publishing processing, and Nginx can be used as a reverse The proxy implements load balancing.

2. zookeeper

  • ZooKeeper is a distributed, open source distributed application coordination service, an open source implementation of Google's Chubby, and an important component of Hadoop and Hbase. It is a software that provides consistent services for distributed applications. The functions provided include: configuration maintenance, domain name services, distributed synchronization, group services, etc. The goal of ZooKeeper is to encapsulate key services that are complex and error-prone, and provide users with simple and easy-to-use interfaces and systems with high performance and stable functions.

3. Message Queue

  • The currently used message queues are RabbitMQ, RocketMQ, ActiveMQ, Kafka, ZeroMQ, MetaMq, etc.

4. skynet

  • Skynet is an open source server-side concurrency framework based on C and Lua. Now many game companies are using it, especially small and medium-sized companies, chess and card companies, and more and more companies adopt it. If you want to develop games, I suggest you learn the principles. .

Six. System learning recommendation

The bottleneck of technology is the problem of cognition. Cognition is not about knowing its name. It is also necessary to know its cause, and more importantly, to know its origin.

For self-study friends, it takes a long time, the technology stack is not perfect, the structure is not structured, and the self-discipline is poor. Learn to advance, improve the technology stack system, improve yourself, change jobs and increase salary, and develop to a higher level

Recommend this C/C++Linux server development advanced advanced architecture learning related video click on the link to subscribe to watch: C/C++Linux server development/Linux background development architect-learning video

 

Guess you like

Origin blog.csdn.net/Linuxhus/article/details/115015723
Recommended