C++面试艺术:我的思考与避坑指南
C++面试艺术:我的思考与避坑指南
-
- 0、前言
- 1、核心素养
- 2、发布需求
- 3、面试形式
- 4、面试过程
-
- 4.1 流程
- 4.2 自我介绍
- 4.3 面试提问
- 4.4 项目经历提问
- 4.5 自由交流
- 5、面试建议
-
- 5.1 给面试者的建议
- 5.2 给面试官的建议
- 6、总结
0、前言
在我职业生涯中,无论是作为老东家的HR兼技术面试官,还是现在公司里的C++技术面试官,我一直在思考:我们究竟需要什么样技术背景的人才?如何才能高效筛选出合适人选?基于这些思考,我整理成这篇博客,一来希望自己在技术维度上不断地扩展延申,二来是可以给身边找工作或者同样作为面试官的朋友提供一些参考借鉴。
1、核心素养
一位优秀的C++工程师通常具备以下几个素养:
- 精通/熟练掌握C++编码技巧,有良好的代码风格;
- 扎实的计算机背景基础(计算机网络、操作系统等);
- 熟练掌握各种设计模式;
- 优秀的工程实践能力;
- 注重代码质量、擅长各类软件测试手段;
- 具备一定的部署、运维能力;
需要注意的是,不同企业和项目对人才的具体要求会有所侧重。以上列举的是较为通用的能力标准。在面试环节,企业会基于这些核心素养,结合具体岗位需求,在有限时间内对候选人进行全面评估,以选拔最适合项目需求的人才。
2、发布需求
首先,企业需要确定好当前需要招聘什么样的人才,此时需要梳理当前缺哪一类人才,针对性发布需求来吸引合适的候选者。
例如当前开发人员紧缺,那么在招聘公告上侧重是凸显开发技巧经验的,下面是一个参考例子:
- 精通C++编程语言,有良好的代码风格;
- 熟悉C++11/14/17新特性,熟练掌握STL、常用数据结构等;
- 具有xxxx领域3年以上开发经验;
- 熟悉多线程编程和并发工作,掌握线程同步机制;
- 具有良好的问题分析和解决能力;
- 了解软件开发流程,熟练使用Git、SVN等版本控制工具;
- 具有良好的团队协作精神和沟通能力;
如果是招聘偏向于现场部署运维,那么应该是类似这种:
- 熟悉Linux操作