# 【NO.502】各大厂c++ linux后端开发岗位要求汇总

## 1.前言

今天的主题是主要整理一下后端开发岗位招聘要求和需要掌握的技能，相信今年有很多想要更换工作的同猿们，被突如其来的疫情打乱了计划，希望来年的你们能得到你们想要的offer！祝好~

这份要求可能没有大家常见有数据分析那种，有很多的饼图、柱状图等等，这里只有单纯的文字，不过相信大家看完后，也知道自己该做什么样的准备~

## 2.招聘网站

首先介绍一下获取这些岗位和技能的来源：

互联网招聘网站，想必大家都知道一些，这里只列举我最常用的几个，也同样是最有效的几个：

拉勾网

拉勾网目前应该是互联网招聘职位最多、活跃HR也最多的网站，这里不接受反驳哈~

BOSS直聘

BOSS直聘，在我印象中是2017年左后火起来，或者更早，我是那个时候才使用的，这里有一个最好的地方是可以直接和HR去聊一下岗位和公司，也可以直接将简历发送给HR，当然，拉钩也有同样的功能~

脉脉

脉脉是一款职场人社交的APP，这里会有大量的公司职员，而且有大量的猎头穿梭在人海中，只为寻找到你哈！

上面三个渠道，就是我找工作使用最多的网站，同样，也是在互联网招聘中占据最多的，一般有这三个渠道就足够使用了，不比花费更多的精力去使用其他的招聘网站去投简历了~！

## 3.岗位要求汇总

下面这些岗位要求，是我浏览了大量岗位进行的一个总结，这些技能要求基本都是一线互联网大厂的要求，同样这些技能也是最基础的技能，需要我们掌握~

C++后台高级工程师（腾讯）

> 岗位要求：
> 具备良好的分析解决问题能力，能独立承担任务，有系统进度把控能力；
> 责任心强，具有良好的对外沟通和团队协作能力，主动，好学；
> 熟练Unix/Linux下C/C++开发和程序性能调优；
> 熟悉Unix/Linux操作系统原理及常用工具；
> 熟悉TCP/IP协议、进程间通讯编程，熟悉Unix/Linux下常用架构设计方法；
> 具备全面的软件知识结构认知（操作系统、软件工程、设计模式、数据结构、数据库系统、网络安全）优先；
> 熟悉分布式架构的主要架构方法，熟悉Mysql等数据库，熟悉NoSQL存储，熟悉面向对象设计。
> 熟悉rpc协议编程

C++开发（高级/资深）工程师（头条）

> 职位要求：
> 1、本科及以上学历，计算机或相关专业，良好的英文表达能力；
> 2、精通C++ 语言开发，有扎实的代码编写能力和良好的设计能力；
> 3、热爱编程，有较强的学习能力，有强烈的求知欲、好奇心 ，能及时关注和学习业界最新技术；
> 4、具有Android平台应用程序开发和Linux环境开发经验优先，熟悉前端开发优先。

后台开发工程师（UCoud）

> 任职资格：
> 2年以上后台开发经验，计算机技术基础扎实
> 掌握 Golang/C/C++/Java/Python 等一门主流编程语言
> 熟悉 Linux，熟悉 Docker
> 熟悉 HTTP，TCP/IP 等网络协议
> 熟悉后端服务高可用方案
> 积极主动、学习能力强

软件研发工程师（C++）（百度）

> 【任职要求】
> -熟练掌握C/C++ -熟悉数据结构、算法设计 -熟悉多线程、异步编程、网络编程技术 -熟悉消息队列、文件系统、Linux操作系统原理、Linux IO性能调优方法
> -熟悉高吞吐批量数据处理系统的特点和技术方案 -富有激情和创造力，学习能力强，良好的团队合作能力
> 具有以下条件者优先：
> -有大规模分布式系统开发经验 -熟悉分布式系统理论 -有数据传输系统、消息队列、流式计算开发经验
> -有raft，mysql、rocksdb调优经验

C++开发工程师（喜马拉雅）

> 技能要求：
> 本科及以上学历，C/C++三年工作经验以上，计算机相关专业；
> 熟悉linux环境编程，熟练掌握C/C++、多线程、多进程、内存共享、网络通信编程技术，熟悉linux下的调试工具（如GDB）使用。
> 深入理解TCP/IP、HTTP等协议及网络编程，并有完整的项⽬目经验
> 有关系数据库使用经验，精通SQL语句句，能查找SQL语句句性能问题并进行行调优；
> 对数据结构和算法设计具有深刻的理理解，有多年年系统分析和设计的实践经验
> 具备优秀的逻辑思维能力力，对解决挑战性问题充满热情，善于解决问题和分析问题。
> 有大规模，高并发分布式系统开发经验者优先
> 有网络安全知识或开发经验者优先9.有移动端（iOS/Android）开发经验者优

C++高级开发工程师（京东）

> 1、本科及以上学历，计算机、自动化相关专业；
> 2、3年以上Linux平台开发经验；
> 3、精通C/C++开发，如熟悉其他编程方式如javascript, python等的更佳；
> 4、了解常用算法和数据结构；
> 5、有网络编程、多线程编程、多进程编程经验；
> 6、有高并发后台系统开发经历。

C++开发工程师（喜马拉雅）

> 岗位要求：
> 精通 C/C++编程语言，具有良好的面向对象思想，至少精通一门脚本语言
> 熟悉STL 数据结构及算法基础；
> 熟悉多种网络协议，精通高并发网络编程和多线程编程；
> 熟悉MySql数据库,Redis数据库,并且有相关开发经验；
> 具有较强的学习能力及解决 Bug 能力；
> 有游戏服务端开发经验优先。

C++开发工程师/架构师（小红书）

> 精通C/C++编程，熟悉Linux平台、shell脚本，对数据结构和算法设计有较为深刻的理解；
> 熟悉多线程/多进程程序开发，对异步、并发技术有深入理解；
> 熟悉TCP/IP HTTP等网络协议，具备海量服务器开发经验者优先；
> 熟悉mysql、nosql等数据库，了解存储引擎；
> 有数据库相关中间件，存储等基础架构服务项目优先；
> 本科及以上相关专业学历，5年及以上工作经验；
> 具有良好的沟通能力，团队合作能力。

c++开发工程师（华为）

> 1、 精通C++开发语言。计算机、软件工程等相关专业优先。
> 2、 熟悉linux下编译、开发、调试，如cmake、gdb等。
> 3、 深入掌握数据结构、算法和操作系统知识，对软件架构、软件编码有强烈的兴趣。
> 4、 学习能力强，沟通能力强，责任心强，具有良好的团队合作精神。

服务器C++开发工程师（今日头条）

> 职位要求：
> 1、本科及以上学历，计算机相关专业；
> 2、3~7年游戏服务器工作经验，有1款及以上的游戏项目上线经验；
> 3、掌握C++，有良好的面向对象设计思想并熟练运用设计模式；
> 4、掌握LINUX下开发调试等相关工具链 CLANG\GCC\CMAKE\GDB ；
> 5、熟悉网络编程、操作系统，熟练掌握REDIS数据库应用；
> 6、有扎实的网络基础，熟悉TCP/UDP等网络传输协议协议；
> 7、有良好的数据结构和算法基础；
> 8、有RTC相关项目开发经验优先；

C++开发工程师（欢聚时代）

> 职位描述：
> 岗位职责：负责直播SDK的开发工作。
> 任职资格：
> 本科及以上学历，计算机相关专业，两年以上开发经验。
> 熟练使用C++，STL，熟悉常用的数据结构与算法。
> 熟悉TCP/IP，熟悉网络编程，多线程编程。
> 熟悉音视频相关技术加分。
> 有跨平台开发经验加分。
> 有良好的沟通能力，有较强的自我驱动力和快速学习能力。

C++开发工程师（微博）

> 职位要求：
> 计算机相关专业统招本科以上学历；
> 良好的沟通与表达能力、思路清晰，较强的动手能力与逻辑分析能力
> 2+年后端系统研发经验或者基础架构开发经验，熟练掌握 C/C++，熟悉一种以上脚本语言，如Shell、Python等，具备扎实的算法和数据结构功底
> 参与过高并发分布式在线系统的研发，解决过相关性能问题
> 精通 NoSQL 数据库技术和内存数据库技术（如 redis, memcache）
> 扎实的编程能力，熟悉算法和数据结构，熟悉计算机基础理论
> 熟悉大流量、高并发、高性能的分布式系统的设计及应用，擅长性能调优者优先
> 有搜索相关功能性能调优优先

Linux C/C++ 后台研发工程师（小米）

> 招聘要求：
> 1.熟练掌握C/C++，有良好的代码风格和编程习惯
> 2.熟悉Linux下多线程/进程及网络开发, 对数据结构和算法有深刻理解；熟悉shell、python等脚本编程；
> 3.熟悉分布式系统原理,网络编程原理,熟悉TCP/IP协议栈
> 4.熟悉nginx,mysql,redis,memcached,thrift,grpc等开源软件优先;
> 5.扎实的计算机基础，具备优秀的学习能力和逻辑思维能力，善于分析问题和解决问题，有互联网行业经验优先。

高级C++开发工程师（美团）

> 职位要求：
> 计算机相关专业，本科及以上学历。
> 扎实的 C++ 基础，熟悉常用的数据结构和算法。
> 熟悉 Linux 开发环境及工具，熟悉 bash, python 等常用脚本语言。
> 熟悉并行计算、高性能计算、网络编程者优先。
> 工作积极主动，认真负责

以上这些岗位想必大家看完后，会发现很多共有的技能要求，我这里也不仅仅是搬运工，我自己总结了下这些大厂需要的技能要求：

> 1、熟练Unix/Linux下C/C++开发和程序性能调优，以及如cmake、gdb等
> 2、熟悉Unix/Linux操作系统原理及常用工具
> 3、熟悉TCP/IP、HTTP协议、进程间通讯编程，熟悉Unix/Linux下常用架构设计方法；
> 4、熟悉分布式架构的主要架构方法，熟悉Mysql等数据库，熟悉NoSQL存储，熟悉面向对象设计。
> 5、熟悉rpc协议编程
> 6、熟悉 Linux，熟悉 Docker
> 7、熟悉消息队列、文件系统、Linux操作系统原理、Linux IO性能调优方法
> 8、熟悉多线程、异步编程、网络编程技术
> 9、数据结构、算法、设计模式
> 10、分布式系统
> 11、熟悉一种以上脚本语言，如Shell、Python、js等
> 12、熟悉nginx,mysql,redis,memcached,thrift,grpc等开源软件优先;

总结为以上12点，我们在日常学习和工作中，遇到以上的知识点，我们需要进行发散，举一反三并且进行实践，总之就是一句话——多总结，多实践 才是学习程序的正确的道路呀~

原文地址：https://zhuanlan.zhihu.com/p/420731832

作者：linux