如何求职 C++ 后端开发岗位
知乎Live “如何求职 C++ 后端开发岗位” 的笔记
C++学习内容
- 掌握C++基本语法和常用语言特性特性即可,切勿深陷C++浩如烟海的众多语言特性中。
- 操作系统API:通过学习《Linux系统编程》、《Windows 程序设计:第5版》、《Windows核心编程(第5版)》 掌握常用的C+。不常用的API,查 Linux mannul/Windows mannul(手册)即可。
- 熟悉操作系统原语,是C++的必备技能。
C++历史遗留问题、技术发展痕迹
- 字符串搜索函数会造成缓冲区溢出(当时的字符串长度不会像现在这么长)
- 时间函数可能是非线性安全的(当时没有多线程编程需求)
- 内存泄露(C++就不允许操作系统管理内存,只放心将内存交给程序员管理)
C++两大编程思想
- 面向对象(主流)
- 模板编程(视情况而定)
C++11的优点
- 优化了语言特性,更加方便快捷的编程。
- 引入了一些常用的库(STL)
- 现在面试,会问很多C++11的特性。
- VS2013、GCC4.8支持C++11特性。
- 分布式高性能、高并发的开发经验是积累出来的。建议新手先将单机性能做到极致,如果单机性能已经达到极致了,仍然不能满足业务需求,才开始考虑使用做拓展(水平拓展、垂直拓展)。基本思路就是先正确、后高效。
- 如何将单机性能做到极致。
C++后端开发基本技术栈
C++部分
- C++基本语法和语言特性必须掌握
- 操作系统API
- 多线程编程(熟悉操作系统常见的多线程API,如条件变量和信号量、同步原语。)
- 网络通信,理论(4成)+ 实践(6成)。操作系统层面的网络通信函数,如socket函数、send函数、accept函数、bind函数、listen函数、connect函数、recv函数等,掌握常见的网络通信模型(select模型、poll模型、epoll模型)。
数据库部分
- 数据库基本理论
- 增删改查SQL原语
- 数据库权限理论
- 数据库索引(类型、数据结构)
- 数据库的锁(层级)
- 数据的分表、分库
后端开发经验总结(从实践项目中积累)
- C++常用开发技能:如何检测内存泄漏、写时复制、智能指针是怎么实现的、
- 《提高C++性能的编程技术》百度网盘(提取码: 7xjb)
- 如何设计日志模块:性能不重要,输出文本能够帮助开发人员迅速定位问题才是关键。
- 断开重连、心跳控制、如何设计通信协议、服务的水平拓展和垂直拓展(水平拓展:一个服务不够就再加一个服务;垂直拓展:一个服务在其上下游再加一层服务,加内存条改改固态硬盘也算是垂直拓展。)
考察基础的一些问题
- 多线程操作,什么时候需要加锁,什么时候不需要加锁,为什么操作一个整型数据必须加锁,否则不安全。
如何提高C++后端开发技能(在完全掌握了上述基础知识之后)
- 基本功扎实,多看开源项目的代码。
会而不精
谨防会而不精
简历评估(链接: https://pan.baidu.com/s/1-1xpYko_FSm8tdib-CsDyQ 提取码: a9xr)。
- 求职简历和求职目标必须匹配。
- 工作简历太啰嗦和项目经验太少。
- 前几项写通用技能(算法数据结构、网络通信、多线程编程、Linux原理 )、后几项写专业技能(熟悉C++常用语法,熟悉C++11标准,熟悉金融系统开发)。
- 工作经验:简单说就行,某年某月-某年某月 在某公司做某某开发。
- 项目经验:独立写上工作过程中完成的项目,某个大型项目中的自己独立完成的模块,要简单的说清楚大型项目的背景以及自己用什么技术完成了什么模块的开发,轻业务描述,重技术描述。
- 不能说“通过某某项目,使得我更熟悉某某技术。这样会显得自己对某某技术还不够熟悉。”,而是应该写成,“基于某某技术,完成了某某功能的开发。“
- 不要一个版本的简历到处投递,针对心仪的岗位去定制简历。大致的模板可以参考拉钩网的模板来写。
- 学历和实习经历一定要写清楚
面试时的薪资问题
- 优先扩大基础薪资上限,期权不是很靠谱。
- 事前风控优于事后风控。
业务程序员如何提升自身技能
- 如果说C++后台开发的技术有10成,那么其中只有4成能从工作中学习到,剩下的6成,只能自己利用业余时间学习。
- 你把时间分配到哪里,你就收获到什么。
应届生准备大厂C++后端开发
- 算法、数据结构。
- 如果是从其他领域转向C++后端开发,那就多写一些C++多线程编程、C++网络编程等通用技能及相关经验。
参考链接
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!