程序员告诉你:C/C++后台开发需要学习哪些技能书

article/2025/10/14 17:04:04

前言:后台开发工程师主流使用的编程语言有C++、Java、PHP以及目前慢慢流行的Golang等。小编就将以C++的角度,讲讲如何学习和准备后台开发的岗位

一、语言基础

 

无论是C++开发还是Java开发,对于一个码农而言,最重要的就是对于编程语言的熟悉。同样,无论从事哪种类型的岗位,首当其冲的就是要掌握好语言基础。

C++是一门博大精深的编程语言,不仅拥有继承于C语言的过程化程序设计思想,还包含有面对对象(OOP)的设计理念。强大而又复杂。相对来说,C++的学习成本较高,语言里面的坑较多。语言基础的学习路线如下:

1 语法基础

重点掌握:(务必熟悉底层机制原理)

指针和引用的概念指针与内存关系程序编译过程static、const、#define的用法和区别C和C++区别内存模型内存中的栈和堆分配

2 面对对象基础

(务必熟悉底层机制原理)

面向对象理解析构函数构造函数拷贝构造多态纯虚函数和虚函数虚函数实现机制虚函数表访问限定符 public、private、protected继承原理、虚继承、菱形继承静态绑定和动态绑定new/delete和malloc/free重载、重写和隐藏

3 语法进阶

(务必熟悉底层机制原理)

智能指针左值、右值引用和move语义类型转换方式常用的设计模式线程安全的单例模式内存溢出和内存泄漏C++11新特性静态链接库和动态链接库

4 STL标准模板库

(务必能进行源码剖析)

迭代器、空间配置器理解常用容器特点、用法以及底层实现vector、list、deque、set、map、unorderedmap

5 推荐书籍

《C++Primer》可作为工具书,随手查阅《EffectiveC++》深入了解C++的程序设计规范《STL源码剖析》剖析STL的源码底层,非常具有学习价值有精力还可以看《深度探索C++对象模型》《more EffecticeC++》

二、算法与数据结构

 

对于普通人而言,算法的学习最重要的是能够形成基本的算法思维,懂得从程序设计的角度对高重复性的操作做优化。这其中基本算法思想的掌握和常用数据结构的理解是必不可少。这方面的学习更倾向于多看多想多练。

1 常见算法类型

(务必能够手撕代码)

排序算法(冒泡、插入、选择、快排、希尔、堆排、归并、桶排、基数、计数)、字符串操作、数组操作、递归、回溯、分治、动态规划等

2 常用数据结构

(务必熟悉底层原理和实现)

链表、栈、队列、树(二叉树、平衡二叉树、红黑树、B树、B+树、哈夫曼树、字典树)、跳表、图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hxJLkMWK-1604040668260)(/img/bVcIdoh)]

3 推荐书籍

《大话数据结构》适合入门学习《剑指offer》必刷66题《算法导论》尽量看,能啃完就是大神

三、计算机网络

网络相关的东西不是很多,关键在于对常见网络协议簇的认识和理解,以及一些常规操作底层设计实现的剖析。比如:

| 输入百度网址会发生什么

| 微信扫描登录会发生什么

1 重点掌握知识点

OSI七层模型TCP/IP五层模型TCP/IP协议总结TCP、UDP区别TCP三次握手、四次挥手TCP状态转换TCP状态中TIME_WAITTCP连接建立需要为什么不是两次握手TCP第三次握手失败会出现什么TCP长连接和短链接及优缺点TCP拥塞控制-慢启动、拥塞避免、快重传、快启动TCP如何保证可靠性传输TCP如何解决粘包、拆包问题TCP为什么可靠UDP如何实现TCP可靠传输IP地址和子网掩码ARP解析过程DNS原理HTTP状态码HTTP1.0、HTTP1.1、HTTP2.0区别HTTP和HTTPS区别HTTPS加密过程非对称加密和对称加密算法Nagle算法

2 推荐书籍

《计算机网络自顶向下方法》教材书,可放手边查阅《TCP/IP详解》重点了解TCP、IP、UDP协议实现

四、数据库

 

数据库的一般使用其实不难,但是对于不同数据库的特性、实现机制、应用场景和性能优化方面却能够难倒一大批面试者。同样数据库本身也是非常好的项目实例,往往能够从中学习到许多程序设计的思想和模式。因此,对数据库要明白怎么用、为什么用、怎么用得好这几个方面的问题。

1 重点掌握

数据库类别关系型数据库和非关系型数据库区别

MySQL:

SQL常见语句MySQL内链接,外链接(左链接、右链接、全链接)MySQL索引类型和原理MySQL事务实现原理ACIDMySQL数据存储引擎MySQL主从复制原理、作用和实现MySQL日记系统redo log、binlog、undo logMVCC实现原理Sql优化思路范式理论数据库高并发解决方法

Redis:

Redis支持的数据类型Redis持久化Redis 架构模式主从复制一致性哈希算法

2 推荐书籍

《高性能 Mysql》能够加深对Mysql的理解和使用《Redis设计与实现》比较全面的书,可以多看看

五、操作系统

操作系统的问题会集中在进程和线程,但是这一类的问题往往会以开放题的形式出现。主要考察的是对操作系统组件以及运行过程的理解。比如:

| 开机登录系统发生了什么?

| 复制粘贴是怎样操作的?

1 重点掌握

物理内存和虚拟内存缓存IO和直接IO作业调度算法线程和进程进程和线程的调度线程的创建和结束线程状态线程间通信与线程同步机制互斥锁和信号量线程池消费者和生产者死锁并发和并行

2 推荐书籍

《深入理解计算机系统》很全面的书,这一本就够用了

六、Linux系统

对Linux系统的熟练使用是后台开发/服务器开发的必备技能点。这年头,不会几个Linux指令都不好意思说自己是敲代码的。(客户端和前端的同学表示不服)不管怎样,对于Linux系统的掌握无论在哪个方向上,都会有用武之地的。

1 Linux系统操作和命令

top命令ps命令netstat命令awk命令find命令grep命令wc命令sed命令head和tail命令正则表达式如何查找出现频率最高的100个IP地址linux如何统计文件中某个字符串出现的频率linux启动的第一个进程linux查看端口占用linux查看CPU和内存使用Linux查看系统负载命令Linux调试程序Linux硬链接和软连接core dumpcmake和makefileShell脚本基本语法和使用

2 推荐书籍

《鸟哥私房菜》入门足够了,多敲多写才能更快掌握

七、Linux网络编程

后台开发是离不开网络编程的,甚至简单来说,后台开发就是用厉害点的电脑去处理大规模的网络请求。所以作为一名合格的后端开发人员,对Linux网络编程的熟悉是必不可少的。

1 重点掌握

 

PS:想了解更多资料,获取更多知识,请加入我的企鹅圈O!!!

孤儿进程、僵尸进程和守护进程进程间通信方式signal、file、pipe、shm、sem、msg、socket线程同步机制线程:互斥量、锁机制、条件变量、信号量、读写锁fork返回值五大IO模型:阻塞I/O、非阻塞I/O、I/O复用、信号驱动I/O、异步I/OIO复用机制epoll与select/pollLT水平触发和ET边缘触发Reactor和Proactor模式反向代理、负载均衡

2 推荐书籍

《UNIX环境高级编程》APUE比较难啃,可以挑着看《Unix网络编程》UNP同样比较难啃,可以挑着看《Linux多线程服务器端编程》Muduo网络库,推荐看看源码实现《深入理解Nginx》深入了解基于C的web服务器实现

八、项目准备

如果以上的东西你都已经准备好了,那么相信你已经了具备C++后台开发能力。但是要记得,一个大型线上项目的开发,从来都不纯粹是单一语言的设计和实现。

因此用C++或者用Java或者用Golang或者用Python的区别或许没那么大,它们都有擅长的地方,毕竟存在即真理。所以,如果你真的有精力的话,不妨还可以了解一下更深层次的技术:

海量日志处理和并行计算开发分布式技术框架、中间件等 Dubbo、Spring Cloud 、Zookeeper 、Kfaka流媒体分发技术CDN...

当然,这些都不是非常必要的。但是绝对是亮点!此外,你可以准备一些基础向的相关项目:

网络库,可参考Muduo或者Nginx实现web服务器/http服务器,可实现基本的http响应请求和处理简易版STL库,展现C++的综合代码能力局域网聊天室开发,涉及到网络编程实现在线群聊分布式日志系统简易版数据库设计可参考一些C++常用库,造一些轮子或者做些有趣的小工具。

总结

在校园招聘中,对后台开发的面试大多还是针对候选人的计算机基础。大多数学生在校内接触不到太多高并发高可用的服务场景,甚至能上线的项目都很少,因此也很难要求校招生能够真正具备后台开发的能力。

所以对于C++后台开发岗而言,对C++/Linux的充分熟悉以及扎实的计算机基础和有相关的学习经历,就已经能够满足各大公司的要求了。当然如果有在基础架构分布式开发等方面的经验,就更是各大厂抢手的香饽饽。

本文所介绍的整体学习路线可覆盖绝大多数大厂的面试题目和考察范围,如今学习资料太多,选择路线清晰的适合自己的才最重要。资料不必多,能理解掌握才是最关键的。


http://chatgpt.dhexx.cn/article/39IunmpL.shtml

相关文章

c++后台开发适合入坑吗?就业前景如何?

一、什么是c后台开发? c后台开发也可以叫c后端开发,其实从技术上来说并无不同。 c后台开发就是基于linux环境和C语言的服务器程序开发,像qq服务器、微信服务器、王者荣耀服务器等等。虽然现在各种高级语言大火,但是在高性能这一…

后台开发之常用工具

最近windows电脑系统又莫名地崩了,重装了系统,其他磁盘文件还保留着,发现大部分软件之前装载D盘,还是可以继续用的,只需要将路径配置到环境变量即可。 趁着每个软件重新配置的机会,再来梳理一下平时开发过…

微信公众号后台开发

最近公司要做微信工作号开发,觉得有趣,便接了这单活。 1.首先已经申请了微信工作号,打开微信公众号平台 https://mp.weixin.qq.com/ AppId是这个公众号的唯一识别码,相当于登录名 AppSecret 是公众号的开发者密码,就相…

C++后台开发技术栈

目录 岗位要求 Linux C开发(vivio) C后台开发技术栈 岗位要求 Linux C开发(vivio) 熟悉掌握多线程/多进程 网络编程 常见RPC框架 设计模式 gdb调试等技术 计算框架mpi、tensorflow的研究与优化,不断提升性能…

C++后台开发学习路线

1.路线 一. 基础阶段 c/c编程语言 linux基础 数据结构与算法 设计模式 脚本语言(可选) 二. 入门阶段 linux系统编程 linux网络编程 三. 进阶阶段 数据库mysql 分布式缓存redis 网络库 四. 项目实践阶段 编写简单FTP服务器 C入门到精通Linux学习链接&#xff1a…

后台开发技术(1)--概述

说到后台开发,首选就有一个问题:什么是后台开发。就我理解,就是做服务器端开发。在服务器端运行着不同功能的服务,有直接与客户端连接的,有实现某一特定业务的比如用户注册登录,有数据存储的如基于mysql,memcached,redis等做的存储系统,除此之外还有一些满足运维监控系统…

腾讯T9职级后台开发要具备哪些专业的能力及知识点?

前言 首先说明这里的后台开发指的就是Linux上的C 编程。因为很多人对后台开发有误解,通常人们说前端后台,后台就马上联想到web后台, java、php和各种web框架横飞的既视感。 web后台属于后台,但后台却不只有web后台。两者是包含关系。 从网络协议的角度分析, web后台聚焦的是HT…

带你了解网络的魅力——tcping和ping区别

一、指代不同 1、ping:是Windows、Unix和Linux系统下的一个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。通过ICMP协议发送报文到对方主机上任意一个60000以上的端口,然后获取对方主机的回复 2、tcping:是一种面向连百接…

ping TCP端口的实用小工具tcping

ping 大家都很熟悉的ping 命令,属于网络层的ICMP协议,只能检查 IP 的连通性或网络连接速度, 无法检测IP的端口状态。 telnet telnet命令,属于应用层的协议,用于远程登录,也可用于检测IP的端口状态。但是…

tcping检测端口

1.下载 tcping.exe - ping over a tcp connection (elifulkerson.com) 2.放置路径 C:\Windows\System32 3.使用 -4,优先使用IPv4 -6,优先使用IPv6 -h,使用http模式 -t,让命令持续运行,直到使用ctrl c指令退出 -n 数…

使用TCPing或PSPing工具检测TCP延迟

测试网络的延迟可以使用ping,mtr,tracert等命令,但是测试TCP端口的访问延迟无法使用以上软件完成,此时可以使用TCPPing或者PSPing来测试TCP端口的延迟情况。 TCPPing 到网上搜索tcping,下载该工具后。放到C:\Wi…

(迁移)windows cmd的tcping和telnet命令

使用“tcping”命令提示不是内部或外部命令该怎么办? 我们在使用香港服务器或者香港vps的过程中,当我们遇到远程连接不上或者是相应业务无法打开时,最基本的操作就是联系服务器商处理,但其实当我们遇到这些时都是可以自己先简单排查下的。最…

用Ping、Tcping测试网络的连通性

1、概述 通常情况下,测试一个地址能不能访问,通常使用Ping来判断,如果测试端口的连通性,可以使用Tcping来判断。 2、使用 a.用ping命令查看地址能否访问,若可以访问,如下图: b.用tcping命令查…

windows如何确认服务器上程序端口是否正常(ping、tcping)

方式1:ping命令 ping命令说明 ping命令是个使用频率极高的网络诊断工具,在Windows、Unix和Linux系统下均适用。它是TCP/IP协议的一部分,用于确定本地主机是否能与另一台主机交换数据报。根据返回的信息,我们可以推断TCP/IP参数设…

cmd tcping IP 端口

下载tcping文件,将文件放到 C:\Windows\System32 目录下面 官网 http://www.elifulkerson.com/projects/tcping.php下载tcping.exe,文件不足300KB。 运行命令tcping,如果出现帮助文档说明运行正常。 cmd窗口运行tcping ip port 例如&#…

python tcping(ping命令)

python tcping(ping命令) 使用tcping库中的ping方法使用如下: from tcping import Ping ping Ping(www.baidu.com, 80, 200) # 地址、端口、超时时间 ping.ping(3) # ping命令执行次数 ret ping.result.table # 以表格形式展现(ping.r…

tcping常用方法

tcping常用方法 ping原理简介tcping原理简介安装tcping for Windows基本使用默认tcping端口为80tcping指定端口 Centos7安装hping3Centos7安装tcping for Linux常用参数默认tcping是80端口tcping指定端口示例 mac安装tcping ping原理简介 ping原理简介和常用方法 https://blog…

Tcping工具使用介绍

Tcping工具使用介绍 摘要:工作中我们经常会用Ping命令去测试网络连通性,但如果源地址配置了禁ping策略,该如何确定网络是否畅通呢,当然有经验的老鸟也可以用系统自带的telnet进行测试,这就看个人习惯了。 ping命令基…

windows命令之tcping安装和使用

一、tcping简介 tcping是一个控制台应用程序,其操作与“ping”类似,但它通过tcp端口工作。tcping命令基于tcp协议监控,可以从较低级别的协议获得简单的,可能不可靠的数据报服务。 原则上,TCP应该能够在从容硬线连接到分…

Windows ping TCP端口工具之tcping

ping这个小工具大家都非常熟悉,但是他不能ping端口,当我们需要知道目的地址的某端口是否开放时,这时需要用到这个tcping小工具了,Windows没有自带这个小工具,需要自己下载下来,放到指定目录里面。 下载地址…