2023秋招C++后端面试项目推荐,5个项目吃透两个offer拿到手软!

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 2023秋招C++后端面试项目推荐,5个项目吃透两个offer拿到手软!

发现一个很奇特的现象:高薪行业的饱和速度越来越快,看学长学姐乱杀然后自己毕业也能跟着乱杀的黄金时代已经不复存在了。

高强度刷了很多招聘交流平台,深深地感受到今年双非群体的失声(非学历歧视,事实如此)。哭喊着找不到实习的群体越来越多由研究生甚至top本硕的研究生组成,我甚至很怀疑作为一个本科生,我到底需要有什么神仙能力才能在就业市场分一杯羹。

这意味着,对于绝大多数候选人而言,不再存在什么低bar高收益的普适解。对于涉世未深的学生来说,这无异于开盲盒,因为你永远都不知道你所选择的专业,在四年或者六年以后是什么样子。

可惜的是,你可以意识到这点,但是却无能为力。22届大厂offer拿得有多爽,23届叫苦声就有多大。至于24.....反正我是没发现哪个方向今年还能闭着眼睛拿高薪offer的。

预测一下哈, 24秋招=没有迪子的23秋招

  • 3月:疫情阴霾散去,经济复苏,形势-版好, 24届学生翘首以盼。
  • 6月:气氛怪怪的?不怕!再差能有去年差?
  • 9月:互联网秋招小小震撼。
  • 10月:金融暑期转正失败小小震撼。
  • 11月:桂圆摇了我吧!
  • 12月:迪子收了我吧!
  • 24年1月: 摆烂! allin 公务员!
  • 2月:省联考小小震撼,不会写申论?抄材料!
  • 3月-5月:春招?已经没勒!
  • 6月:红皮书搞出来,家里蹲考公!不进体制誓不为人!

我看高赞说高薪行业饱和越来越快,校招生追涨杀跌很容易栽跟头,我想抛一个观点,这些所谓的高薪本身就是一个伪风口。我举个例子:

2019年华为被制裁,芯片被封锁,于是乎市面上成立了一大堆芯片公司出来骗补贴,给的工资也一个比一个高。但我们知道,这么多年,世界上做芯片的能挣到钱的也就高通,NVIDIA,联发科,Intel,AMD这几家,这些公司在芯片领域已经深耕了几十年都不止了,而19之后成立的这些摩尔线程,壁仞科技,zeku基本都是靠政府补贴和烧投资人的钱,他们各种开高工资挖人,但是自己本身几乎没有任何盈利能力,那倒闭关停不过也是时间问题,但是学生在学校的时候基本只会去offershow或者论坛看着他们一个月27K的工资挤破头的想进去,前几天zeku倒闭的事后来我们都知道了。

我觉得解答这个问题,不如先回忆一下历史。虽然就两年,但是有些人记忆里还没两个月长。

具体来说:

  • 2021年秋招:有手就行+疯狂晒offer,BAT大厂SP捷报频传
  • 2021年春招:咋没啥工作机会了??offer去哪了?就差了半年,咋形式这么差呢??
  • 2022年秋招:我们这种985的重点实验室,往年好多去大厂的!今年实习都很难!大厂也不咋招实习了,不知道什么情况。往年有鹅选鹅,有虾选虾,没有延毕,今年跪求延毕机会-_-
  • 2023年秋招:华子BYD求求了快捞我吧好几天睡不着觉了

至于2024秋招嘛,秋招没到,某大厂已经开始裁员了,搞不好联动其他大厂跟着裁。

我自己学C++,填了一个坑又一个坑,深知新手学习C/C++的重要性和疑难问题,因此特地给C/C++开发的同学精心准备了一份优惠优质学习卡——零声白金卡(https://xxetb.xet.tech/s/3wrN44购买地址),5个项目分别是:基础架构-KV存储项目、spdk文件系统实现项目、Linux内核内存管理实战案例分析、FFmpeg+SDL播放器开发实战、QtMP3音乐播放器搜索引擎实战,提供项目源码下载,同时这份资料也包括 C/C++学习路线、简历指导和求职技巧等。

一、KV存储项目

1、kv存储的架构设计

2、网络同步与事务序列化

3、KV存储的性能测试

PS:项目提供源码下载

640.png

二、spdk文件系统实现项目

1、spdk blob文件系统设计分析

2、文件系统引入线程与json配置解析

3、文件系统四层架构设计与构建git版本管理

4、从blob读写到文件系统的原语操作实现

5、syscall的hook实现

6、基数树对文件系统内存管理

7、文件系统hook api的设计与实现

8、文件系统posix api的兼容问题与文件夹设计

PS:项目提供源码下载

640.png

三、Linux内核内存管理实战案例分析

1、自旋锁项目实战分析

2、RCU项目实战分析

3、分配物理页实战分析

4、vmalloc案例实战分析

5、kmalloc案例实战分析

6、kzalloc&kcallolc案例实战分析

7、创建slab缓存案例实战分析

PS:项目提供源码下载

640.png

四、FFmpeg+SDL播放器开发实战

1、FFMpeg+SDL开发环境搭建

2、播放器框架和解复用模块开发

3、包队列帧队列模块设计

4、解码线程模块实现

5、声音输出模块实现

6、视频画面渲染

7、音视频同步和作业讲解

PS:项目提供源码下载

640.png

五、Qt项目实战专栏

  • 1、MP3音乐播放器搜索引擎设计与实现
  • 2、数据库数据表设计与实现_歌曲搜索
  • 3、HTTP下载音乐_数据解析Json_显示歌词
  • 4、上一曲_播放暂停_下一曲_循环播放实现
  • 5、音乐搜索引擎关于_皮肤更换_系统托盘

PS:项目提供源码下载

640.png

六、附录(C/C++学习路线)

腾讯官方认证,按照大厂标准授课 ,整个提升方向分为以下7大块:

基础精讲:数据结构、c++新特性、设计模式、Linux工程管理。

  • 1:网络必须技术点:TCP/IP, select, poll, epoll, Reactor, libevent, 百万并发, websocket, HTTPS。
  • 2:基础组件开发:线程池, 内存池, 连接池, 分布式锁, 无锁队列.
  • 3:第三方组件:redis, mysql, nginx, mangodb, rocksDB, TiDB, etcd, grpc, kafka, Kong网关。
  • 4:项目:图床项目(图片分享), IM即时通讯, 协程。
  • 5:源码分析:redis , nginx skynet
  • 6:面试加分项:Rust, DPDK, 内核, docker, kubernetes, gpu高性能计算

具体技术点:这里详细谈下C++ 的学习路线,按照这个路线去学习C++,每个阶段都帮你规划好了学习时间,只要你努力且认真的去学了, 保证帮你既高效又扎实的学好C++:

640.png

1.精进基石

①数据结构与算法

  • 红黑树(应用场景、进程调度cfs、内存管理、左旋与右旋等)
  • B树和B+树(定义证明、插入、删除、遍历、查找、指针等)
  • Hash与BloomFilter,bitmap(函数实现、应用场景、布隆过滤器等)

②设计模式

  • 创建型设计模式(单例、策略、观察者、原型等设计模式)
  • 结构型设计模式(适配器、代理、责任链、状态桥接、组合模式)

③c++新特性

  • stl容器,智能指针,正则表达式
  • 新特性的线程、进程、原子操作、lamda表达式

④Linux工程管理

  • Makefile/cmake/configure(工作ipcs原理、文件编译、cmake的写法等)
  • 分布式版本控制git(工作流程、分支管理、服务器搭建等)
  • Linux系统运行时参数命令(ipcs、uptime、iostat、sar、mpstat等)

2.高性能网络设计

①异步网络库zvnet

  • 网络io与io多路复用epoll,kqueue(项目)
  • 事件驱动reactor的原理与实现(项目)
  • http服务器的实现(项目)

②网络原理

  • 服务器百万并发实现(实操)
  • redis,memcached,nginx网络组件(理论)
  • posix API与网络协议栈(理论)
  • UDP的可靠传输协议QUIC(项目)

③协程框架NtyCo的实现

  • 协程设计原理与汇编实现(项目)
  • 协程调度器实现与性能测试(项目)

④基于dpdk的用户态协议栈的实现

  • 用户态协议栈设计实现(项目)
  • 应用层posix api的具体实现(项目)
  • 手把手设计实现epoll(项目)

⑤高性能异步io机制 io_uring

  • 与epoll媲美的io_uring(项目)
  • io_uring的使用场景(理论)

3.基础组件设计

①池式组件

  • 手写线程池与性能分析(项目)
  • 内存池的实现与场景分析(项目)
  • MySQL连接池的实现(项目)

②高性能组件

  • 原子操作CAS与锁实现(项目)
  • 无锁消息队列实现RingBuffer(项目)
  • 定时器方案红黑树,时间轮,最小堆(项目)
  • 手写死锁检测组件(项目)
  • 手写内存泄漏检测组件(项目)
  • 手把手实现分布式锁(项目)

③开源组件

  • 异步日志方案log4cpp(项目)
  • 应用层协议设计ProtoBuf/Thrift(项目)

4.中间件开发

①redis

  • redis相关命令详解及其原理
  • redis协议与异步方式
  • 存储原理与数据模型
  • 主从同步与对象模型

②MySQL

  • SQL语句,索引,视图,存储过程,触发器
  • MySQL索引原理以及SQL优化
  • MySQL事务原理分析
  • MySQL缓存策略

③Kafka

  • Kafka使用场景与设计原理
  • Kafka存储机制

④微服务之间通信基石gRPC

  • gRPC的内部组件关联
  • 基础http2的gRPC通信协议

⑤nginx

  • nginx反向代理与系统参数配置conf原理(实操)
  • nginx过滤器模块实现(项目)
  • nginx handler模块实现(项目)

5.开源框架

①游戏服务器开发skynet

  • sky net设计原理
  • sky net网络层封装以及lua/c接口编程
  • sky net重要组件以及手撕游戏项目

②分布式API网关

  • 高性能web网关 Openresty
  • Kong动态负载均衡与服务发现

③高性能存储spdk的文件系统实现(项目)

  • spdk的工作原理与文件系统架构分析
  • 文件系统的posix api实现
  • 文件系统的性能测试

④高性能计算CUDA

  • gpu并行计算cuda的开发流程
  • 音视频编解码中的并行计算

⑤并行计算与异步网络引擎workflow

  • workflow的应用场景
  • workflow的组件实现

⑥物联网通信协议mqtt的实现框架mosquitto

  • mqtt的高效使用场景
  • mqtt的broker

6.云原生

①docker

  • docker风光下的内核功能
  • docker容器管理与镜像操作
  • docker网络管理(项目)
  • docker云与容器编排(项目)

②kubernetes

  • k8s环境搭建
  • pod与service的用法
  • k8s集群管理(项目)
  • k8s二次开发与k8s API(项目)

7.性能分析

①性能与测试工具

  • 测试框架gtest以及内存泄漏检测
  • 性能工具与性能分析
  • 火焰图的生成原理与构建方式

②观测技术bpf与ebpf

  • 内核bpf的实现原理
  • bpf对内核功能的观测

③内核源码机制

  • 进程调度机制
  • 内核内存管理运行机制
  • 文件系统组件

8.分布式架构

①分布式数据库

  • kv存储rocksDB的使用场景
  • TIDB存储引擎的原理
  • TIDB集群方案与replication原理

②分布式文件系统

  • 内核级支持的分布式存储Ceph
  • 分布式ceph存储集群部署

③分布式协同

  • 注册服务中心Etcd
  • 协同时间 用户态文件系统 fuse(项目)
  • 快播核心技术揭秘 P2P框架的实现

9、项目实操

1.dkvstore实现

  • KV存储的架构设计
  • 网络同步与事务序列化
  • KV存储的性能测试

2.图床共享云存储

  • fastdfs架构分析和配置
  • 文件传输和接口设计
  • 产品上云公网发布/测试用例

3.微服务即时通讯

  • IM即时通讯项目框架分析和部署
  • IM消息服务器/文件传输服务器
  • 消息服务器/路由服务器
  • 数据库代理服务器设计
  • 文件服务器和docker部署
  • 产品上云公网发布/公网测试上线

项目这一个板块是由零声的讲师所总结的,自己在学习的课程中可以结合上述的详细技术细节点与自己过往工作的项目经验相结合学习提升。

适宜的工程师人群(共分为8大群体)

  • 1.从事业务开发多年,对底层原理理解不够深入的在职工程师
  • 2.从事嵌入式方向开发,想转入互联网开发的在职工程师
  • 3. 从事Qt/MFC等桌面开发的,薪资多年涨幅不大的在职工程师
  • 4.从事非开发岗位(算法岗,运维岗,测试岗),想转后台开发岗位的在职工程师
  • 5.工作中技术没有挑战,工作中接触不到新技术的在职工程师
  • 6.自己研究学习速度较慢,不能系统构建知识体系的开发人员
  • 7.了解很多技术名词,但是深入细问又不理解的工程师
  • 8.计算机相关专业想进入大厂的在校生(本科及以上学历,有c/c++基础)

课程优势:

  • 1.简历梳理技术点凸显项目技术梳理
  • 2.模拟面试技术表述
  • 3.薪资谈判福利争取
  • 4.offer 选择职业规划技术前景

往期学员学习过程的心得总结:

  • 1.学习要有主动性。无论是开始的自学,还是后面的培训学习,学习的主观能动性一定要有,特别是报班学习之后,不要觉得万事有老师,外部的辅导条件能够让你有更好的学习效率和氛围,但是最终需要掌握技能的还是你自己的,所以学习的过程不要懈怠。
  • 2.学完技术内容之后,要形成自己的技术栈体系。我在学完之后,就根据我自己的技术内容花了三天时间整理一份 c/c++后端开发需要掌握的技术体系路线图,来帮助自己梳理自己所学的技术点。
  • 3.善于总结自己的学习过程。每当自己学完一个小块的知识点之后,最好是将自己对它的理解整理成博客文章,这样既能自我梳理自己的学习成果,又能作为自己在面试工作时向面试官展现的一个亮点。
  • 4.一定要复盘自己的面试过程。在我学习之后的面试过程,并不是一帆风顺。但是我在老师的建议下,不管成功的还是失败的面试过程,场场复盘!找出自己回答的不好的地方做备注修改,这样一次次下来,对于面试,我也是越来越胸有成竹。
  • 5.学习方式,不管黑猫白猫,抓住老鼠的就是好猫。对于也想从事或是转行到 c/c++后端开发岗的兄弟,如果考虑报班培训的话,可以推荐大家了解一下我之前学习过的课程,整个课程体系对标的是腾讯的 T9 级别。

学习成果检验

640.png

640.png

640.png

640.png

640.png

最后:

给校招的小伙伴一句话:第一份工作不亚于一次高考,珍惜校招,社招的竞争是你目前想象不到的。能去大厂觉不妥协,IT行业第一份工作背景越好,起点越高,后续发展空间越好!

给那些1-3年的安于现状的伙伴一句话:

不要抱怨市场,不要安于现状,在低端,往中端领域看,在中端往高端领域看。认知以及对自身的要求,都会有所改变。

给那些担心35岁的伙伴一句话:

决定上限的不是年纪,而是技术。 最后:希望学习路线对你有所帮助,希望码农的我们越来越好!

精品技术文推荐阅读:

相关文章
|
2月前
|
人工智能 算法 Java
后端程序员逆袭之路:巧用 AI 工具,拿下高薪 offer
在技术职场中,后端程序员面临诸多挑战,如复杂业务逻辑、繁琐代码编写与调试及持续学习压力。然而,AI 工具的兴起为后端开发带来了全新机遇。智能代码生成工具如飞算 JavaAI 可高效完成需求分析、设计与代码生成;智能调试工具如 CodeGuru 能快速定位问题;知识学习工具如 ChatGPT 助力技术提升。借助这些工具,后端程序员不仅能显著提高项目质量和效率,还能展示技术前瞻性与学习能力,拓展技能边界,从而在求职市场中脱颖而出,顺利拿下高薪 offer。
|
1月前
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
174 41
|
3月前
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
187 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
2月前
|
人工智能 小程序 NoSQL
【一步步开发AI运动小程序】二十一、如何将AI运动项目配置持久化到后端?
本文介绍基于云智「Ai运动识别引擎」的运动配置持久化方案,旨在优化小程序或Uni APP中AI运动识别能力。通过将运动检测参数(如`Key`、`Name`、`TickMode`、`rules`或`samples`)持久化到后端,可避免因频繁调整运动参数而重新发布应用,提升用户体验。持久化数据结构支持规则和姿态样本存储,适用于关系数据库、文件或文档数据库(如MongoDB)。此外,云智还提供运动自动适配工具及「AI乐运动」产品,助力快速实现AI体育、全民健身等场景。
|
4月前
|
SQL JavaScript 安全
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
180 11
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
|
8月前
|
存储 安全 Java
每日大厂面试题大汇总 —— 今日的是“美团-后端开发-一面”
文章汇总了美团后端开发一面的面试题目,内容涉及哈希表、HashMap、二叉树遍历、数据库索引、死锁、事务隔离级别、Java对象相等性、多态、线程池拒绝策略、CAS、设计模式、Spring事务传播机制及RPC序列化工具等。
178 0
|
8月前
|
存储 消息中间件 NoSQL
每日大厂面试题大汇总 —— 今日的是“京东-后端开发-一面”
文章汇总了京东后端开发一面的面试题目,包括ArrayList与LinkedList的区别、HashMap的数据结构和操作、线程安全问题、线程池参数、MySQL存储引擎、Redis性能和线程模型、分布式锁处理、HTTP与HTTPS、Kafka等方面的问题。
296 0
WK
|
7月前
|
机器学习/深度学习 人工智能 算法
那C++适合开发哪些项目
C++ 是一种功能强大、应用广泛的编程语言,适合开发多种类型的项目。它在游戏开发、操作系统、嵌入式系统、科学计算、金融、图形图像处理、数据库管理、网络通信、人工智能、虚拟现实、航空航天等领域都有广泛应用。C++ 以其高性能、内存管理和跨平台兼容性等优势,成为众多开发者的选择。
WK
324 1
|
9月前
|
NoSQL Java Redis
面试官:项目中如何实现分布式锁?
面试官:项目中如何实现分布式锁?
209 6
面试官:项目中如何实现分布式锁?
|
8月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
1499 3