网站首页 > 技术文章 正文
「C++后台开发」别名可以叫「C++/Linux服务器开发」,目前BAT里面都是有大量的c++开发岗位,鹅厂在c++后台开发岗都是急需。虽然岗位对技术要求难度系数较高,但是有大厂情结的朋友们还是可以冲一冲的。
很多有c/c++语言基础的朋友,在面试后台岗的时候都会有一个疑问,面试大厂的时候,技术水平要到一个什么程度才能进?
这里就分为校招和社招。校招的话对于技术层面的要求会相对较低。
会C with STL以及常见的数据结构与算法,并且笔试能当场做出leetcode中等难度以下的人就有70分了,如果笔试的时候对STL、auto、lambda等用法都很熟练,都有加分。对于实习生来说,表现不错就可以招进来,剩下网络编程和linux进去之后会再教你。
所以校招更看重的是你的基础和学习能力。实习进去之后再观察你的技术学习进度决定是否给你发offer。当然,如果你能提前掌握Linux环境编程,网络编程等技术更会加分,毕竟不管是哪个赛道,内卷都是有的。
分享一个C/C++Linux服务器开发的免费的技术直播,每晚8-10点都有直播,我最近发现的宝藏公开课,课程质量非常高,点击免费报名每晚都可以直接听:C/C++Linux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂
文章福利:帮整理了2022年10家大厂的50道面试题(含答案)和腾讯T职级岗位需求技能图,需要的伙伴私信【1】进群找晚晚领取。
再说社招,其实对于c++后台开发岗位来说,最核心的技术点有3个:
- C++基础知识
- TCP网络编程(以及「可靠」UDP)
- Linux环境编程
考较到了代码能力,架构能力,安全能力及工程素养。
如果对于这三方面的技术掌握到位,面试通过的概率不会低。至于如何在大厂的职级体系中去确定自己的定岗,就会有更加细分的标准。
以鹅厂c++后台岗举例,对于每一个技术方向的掌握情况都是有大致的判断【T1-T9】
一、编程语言
- 开发环境搭建、运行第一个hello word【T1】
- 运用基本数据类型、表达式与操作符进行简单开发【T1】
- 字符串、向量和数组【T1】
- 语句和函数【T1】
- 分支控制、循环【T1】
- 对象生命周期 & 垃圾回收【T2】
- 错误和异常处理【T2】
- 标准库使用【T2】
- 日志分析、断点调试等简单代码调试方法【T3】
- 面向对象设计原则【T3】
- 单例模式、工厂模式等简单的设计模式【T4】
- gdb高级调试技巧和常用系统分析工具使用【T5】
- 适配器模式、代理模式等常见设计模式【T6】
- 创建型、结构型、行为型设计模式的应用技巧【T7-T8】
- 代码耦合的产生原因和规避方法【T9】
- 整洁代码的设计思路和落地【代码能力】
- 复杂系统重构,识别系统潜在风险以及优化点,进行模块划分以及分层设计,提高系统内聚性降低模块间的低耦度【架构能力】
- 对编程范式有深入的了解,并对语言新特性熟悉,能够针对具体的问题场景分析,交付优秀的代码【代码能力】
- 熟悉常见的并发编程模型,并能根据业务场景进行落地【代码能力】
- 代码质量管理,熟知测试理论,并能运用测试各阶段的设计原则,高质量的输出测试用例【工程素养】
二、数据结构与算法
- 初识数据结构和算法 - 冒泡排序【T2】
- 数组、列表、栈,队列等基本线性数据结构【T2】
- 递归、排序、二分查找算法【T2】
- 跳表、散列表、hash算法【T3】
- 二叉树、红黑树、字典树【T3】
- 堆排序、归并排序、二分查找等高阶算法【T4】
- 字符串匹配、KMP算法【T4】
- 熟悉图论算法:dijkstra算法、最小生成树、深度/广度优先搜索等【T5】
- 贪心算法、动态规划【T5】
- 能够分析算法的执行效率和资源消耗、时间和空间复杂度分析【T6】
- 能够根据实际场景,选用合适的数据结构和算法进行程序设计【T7-T9】
- 位运算(异或非)【T7-T9】
三、数据库
- MySQL服务器的安装与配置【T1】
- 数据表的新建、查询和删除操作【T1】
- 标准语言SQL和CURD能力【T2】
- 表、主键、索引、视图【T2】
- 表结构设计规范与范式运用【T3】
- 事务的使用以及其ACID特性【T3】
- 不同存储引擎的区别【T3】
- 事务的隔离级别和实践原理【T4】
- 数据库的连接池管理【T4】
- 数据库的权限管理【T4】
- SQL注入、web shell攻击的危害和规避方法【T4】
- 数据库的集群和高可用【T5】
- SQL语句优化、执行计划查看、索引和参数调优【T5】
- 运用Redis进行数据缓存处理,提高系统性能【T6】
- redis内存模型【T7-T9】
- redis的持久化、主从同步以及集群【T7-T9】
- 针对业务数据特点,对存储进行选型
- 数据库理论(关系型非关系型)
四、网络原理
- 利用ping、ifconfig、telnet等命令查看计算机网络状况【T1】
- 网络体系中每一层的作用和基本协议【T2】
- TCP和UDP的基本原理【T3】
- http协议基础与应用【T3】
- TCP协议的可靠传输机制【T4】
- TCP协议的流量控制和拥塞控制【T4】
- Session、Cookie 与 Application【T5】
- 网络安全的加密算法与数字签名【T5】
- https协议的基本原理【T5】
- http2.0与http3.0特性【T6-T9】
- XSS攻击的危害和规避方法【T6-T9】
- Wireshark、tcpdump等网络抓包工具使用和结果分析【T6-T9】
- 网络故障分析与问题解决【T6-T9】
- 网络规划与网络拓扑
五、操作系统
- 常用的文件、目录操作命令使用【T1】
- 程序的编译与运行【T1】
- shell脚本与vi使用【T2】
- linux系统性能监控命令的使用【T2】
- 线程、进程的概念、创建与调度【T3】
- 用户态和内核态的基本概念、区别【T3】
- CPU的上下文切换、中断处理与系统调度【T3】
- 磁盘文件系统、虚拟文件系统与文件缓存【T4】
- 物理内存和虚拟内存【T4】
- 进程间通信机制【T5】
- 死锁的危害、出现原因、解决方法【T5】
- 内存溢出、内存泄漏的原因与解决【T6】
- 如何高效利用CPU缓存【T7】
- 内存问题分析与性能优化【T7】
- 磁盘 I/O 性能优化【T7】
- 系统网络性能评估与优化【T8-T9】
六、网络编程
- 熟悉TCP/IP 四层模型,利用socket编程编写简单客户/服务器程序【T2】
- 基本TCP/UDP套接字编程【T3】
- 五种常见I/O模型【T4】
- I/O多路复用技术【T5】
- time_wait、close_wait状态产生的原因、危害与避免方法【T5】
- 熟练掌握各种I/O模型的运用场景【T5】
- 掌握C10k问题的基本解决方案(这个是不是不合适呀?现在都在攻克C10M问题了)【T5】
- 掌握常用网络框架,并能根据场景灵活应用【T6-T9】
七、分布式架构
- 简单rpc协议设计和框架搭建【T5】
- rpc的服务寻址、数据流的序列化与反序列化和网路传输【T5】
- 分布式事务理论与常见的互联网公司落地方案【T5】
- 一致性算法【T5】
- 分布式锁的设计与实现【T5】
- 主流的微服务rpc框架【T5】
- 服务注册、服务发现【T6】
- 分布式trace、监控告警【T7】
- 常见负载均衡算法以及各算法的适用场景【T7】
- 主流分布式系统架构设计,比如分布式缓存、API网关、分布式消息组件【T8-T9】
- 分布式系统的缓存设计、缓存雪崩、缓存击穿等问题的解决方案【T8-T9】
- 微服架构熔断保护、降级熔断、流量控制、故障隔离、故障恢复方案设计【架构能力】
- 分布式架构的高并发、高可用、可扩展【架构能力】
八、云原生
- Docker原理与搭建【T4】
- Kubernetes【T5】
- 容器编排、容器网络【T6】
- 集成构建【T6】
- 云上常见的SaaS服务和组件【T7】
- 弹性扩缩容【T8】
- 服务网格Istio和Serverless【T9】
九、软技能【T9】
- 需求分析
- 项目设计方法
- 项目流程管理
- 项目风险控制
- 跨部门合作
- 沟通技巧
- 组织协调
- 目标管理
可以看到,对于定岗的每一个技术模块都会有相对的技术掌握标准,可以对照着技术提纲与自我的技术掌握情况进行对比参照。
希望能给面试c++后台开发岗的朋友带来一些帮助。需要资料私信【1】进群领取哦~
猜你喜欢
- 2024-10-18 了解C语言中的操作符(c语言操作符怎么定义)
- 2024-10-18 20天轻松入门《C++第二章——程序设计基础》—3经坛教育
- 2024-10-18 C++中的volatile关键字(volatile关键字 c语言)
- 2024-10-18 C/C++软件开发证书怎么考?报考难度大吗?含金量高吗?
- 2024-10-18 c++数据类型(c++数据类型转换)
- 2024-10-18 C语言中实现边沿函数算法及应用,这是抛弃PLC留下的痛!
- 2024-10-18 C基础、经典问题:交换a、b值较好的方法?
- 2024-10-18 C++ 避免使用模块重新编译模板库(调用c++模块,不忽略异常)
- 2024-10-18 关于C语言交换两个数的实现方法以及个人心得
- 2024-10-18 记录有趣的面试题:二进制字符串相加,C++/Java/Python 解法分析
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)