《c/c++求职》-c/c++后端开发

经验之谈

  1. c++后端岗位(包括了c++语言和c++技术体系)是周期较长的领域,需要放到战略高度,可能第一份工作工资较低,技术累计和方向要想对。
  2. go职位,一般都是从c++或是java转过去的,一般校招很少直接招进。
  3. 进入一家公司,关于做“核心技术”还是“螺丝钉”(浮躁的问题), 这个问题的核心是自己能力的提升,自己能力提升之后,公司就会让你做“核心技术”
  4. 公司很多时候学习到的是业务层面的内容,提升自己不只是需要业务层面,还需要自己有时间去提升(没有实习或是工作经验,就要自己多提升自己)。

市场需求

c++服务器开发招聘公司(随意统计,不全面):
全国:腾讯、深信服、浪潮、字节跳动
成都:大华、网易互娱、招银网络、蚂蚁occeanbase、海康、oppo、vivio、京东、盛邦安全、91ACT、百度

  1. c++后台开发培养时间很长,对于腾讯c++后台开发,选人很谨慎,高手才有机会。
  2. 熟悉掌握常用内容,比如操作系统常用api函数、条件变量(虚假唤起)、互斥体(整形变量同步,CAS原理),信号量,临界区等;一定要了如执掌,注意细节,不能用的时候才去查。

技术要求

如何学习c++

  1. 学习c++语要结合操作系统常用api函数

参考:《linux系统编程》,《windows核心编程》,man手册)
后来的语言,java,python,go都内置了很多SDK,而c++在不断的发展之中。
操作系统常用api函数(?c++函数库中)
eg:recv,MSG_PEEK,实现内存拷贝不删除

  1. c++中的函数库,中间很多不安全的

内存泄漏:程序设计理念:内存交给程序设计语言;pthon:内存这么重要,要交给操作系统
字符串匹配,不安全的操作,strcpy,strncpy

  1. c++语言学习

面向对象是主流
掌握常用的c++的语法,除非你是研究编译器的
c++的新标准;c++11(一定要掌握,国外公司很普及)。c++14, c++17, 优化改进大量语言,适用于快速编程,比如关键字的改变;
对于常用stl库(多线程工具库),VS2013, gcc4.8对于c++11兼容很好。

  1. 项目
  1. 需要基础知识扎实之外,看开源项目
  2. 注意项目的细节,小而巧的东西,重要的是你在项目中学到了什么?
    即时通讯项目flamemingo
    简单的http服务器
  1. c++提升技能
  1. 需要基础知识扎实之外,认认真真看开源项目
  2. 注意项目的细节,小而巧的东西(适合自己),重要的是你在项目中学到了什么?

高性能高并发服务器开发技术栈

学习要求:单机服务做到极致,当单机解决不了问题,拓展到多机,之后引入“数据一致性”,“负载均衡"问题,以及其他技术
技术栈

  1. c/c++语法, c++ api函数
  2. 多线程编程
  3. 同步操作:条件变量(虚假唤起),互斥体(整形变量不加锁,cas),信号量,临界区等
  4. 网络通信(网络编程+网络知识,不能走两个极端),epoll,socket编程,有多清楚就需要有多清楚。
  5. 数据库部分:非数据库运维人员(增删减查,权限理论,建表建库,查表查库,根据大数据分表分库,数据库索引包括数据结构,数据库锁的层级)

经验性总结(高级阶段)

内存泄漏,智能指针,写时复制,迟滞,池化思想,推荐书,《提高c++的编程技术》
设置日志模块(性能与成本结合),
断线重连,服务的水平扩展和垂直扩展,心跳,如何设计通讯协议

c++后端转行

可行性方案:windows转linux,弱化界面部分;客户端转服务端;核心是:保证技术栈统一
其他行业转c++后端很难

参考文献

  1. 网络技术面试题-范蠡live总结()
  2. 微信公众号:高性能服务器开发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值