背景
2019年的经济大形势不是很好,工作机会也相应减少。
随着各个互联网公司的裁员浪潮,人才市场上释放出了很多工程师。各大厂虽然没有裁员,但今年的招聘需求明显减少,面试更加严格,招聘的也多是技术专家级别的岗位,同等级别的岗位,要求也比往年提高。
但是所谓的多少也是相对而言的,对于真正厉害的人,缺口还是很大的。
所以,在自己的职业生涯规划中,一方面要参考市场环境,另一方面更要对自身的技术能力、兴趣爱好、综合素养有一个全面客观的认识和评价,也只有这样,才能在整个求职过程中收放自如,谋得自己心仪的工作。
由于我主要从事Linux c通信方面开发,所以本篇介绍技术方面以此为主。当然,一些通用的结构化面试过程,各个公司应该是大同小异,面试前还是要认真准备一下。
技术
从3月份开始投递简历,面试主要集中在4月份,大小公司也面了几个,技术方面各种类型公司对宽度和深度的要求是不一样的,可以在面试之前通过各种渠道提前了解一下公司的大概需求,这样可以做有针对性的准备。
Linux基本知识
- uboot启动流程
- 虚拟内存及堆栈空间
- 如何修改内核参数,如最大fd数,各种修改方法的区别
- 讲解一个自己做过的驱动开发
- 文件系统
- 进程与线程及特点
- 进程与线程及通信方式
- 内存溢出和泄漏,如何处理
- 查看网卡速率的命令
数据结构与算法
- 斐波那契数列的几种实现(递归)及优缺点,如何优化
- 链表实现,反转链表相邻节点
- 常用的字符串匹配算法及适用环境
- 写一个算法处理微博转发次数和点赞次数排名的程序(hash)
- 快速排序
- 位图
- 具有k点节点的满二叉树
应用程序相关
- 死锁的几种原因及定位,如何自动化测试定位及解决
- epoll的两种模式及读写区别
- 多核编程相比传统方式的优缺点,如何最大程序发挥优点,怎么优化
- 多核调度中如何做负载均衡
- 白盒测试中的安全问题,如何从项目全生命周期处理安全问题,对于安全还有什么看法
- 使用过什么开源库,使用GPL开源库对自己的应用程序会有什么影响,怎么保证生产和发布安全
- 协议处理中如何处理rev字段的数据,默认的方法是什么,为什么这样处理
- 如何定位开发和已部署设备出现的问题
- 对上层协议的理解,如http
- 字符串常量与字符串内存地址
- wait和sleep
- 对称加解密算法
- rsa算法是否安全
网络相关
- ping的各种回应及原因
- 如何处理高并发、大流量的网络,通用技术有哪些
- 可能的优化方向有哪些,如何评判可行性
- 网络中间件的使用
- 频繁io处理中的优化
- 多线程中的网络并发处理及模型
- tcpdump应用
相关技术
- sdn/sdr
- dpdk/cavium/tilera
- dpdk的使用,应用程序如何启动
- dpdk的大页内存及作用
- cache miss怎么产生的,解决的方式有哪些
- dpdk使用的网卡等
- 自有协议栈如何确保不丢数据
- tilera如何做一些优化,dpdk呢
- 这些技术比通用方式能快多少
- ipv6
- 对硬件加速的理解
- 如何做程序优化(包括指标、目的、空间、时间及项目管理)
- cpu与fpga之间如何通信
- 使用过哪些开源的技术和库,为什么用它们,对它们的优缺点掌握多少
- makefile、boost库
- shell及python脚本编写
- devops
- 虚拟化、分布式
面向对象
由于之前工作涉及的不多,面试的也不多。
- 设计模式
- 常规的继承、多态和重载
- 智能指针
数据库相关
这个涉及的也不多。
- mysql/reids
- 数据库查询优化细节
- 数据库查询突然变慢时,如何排查定位问题
- 2个数据表的sql语句
结构化问题
- 从广度方面给自己打几个标签,为什么,这些方面与别人有什么不同
- 自认为对哪些技术比较精通,与我司有哪些方面的契合度
- 项目周期管理和推进计划如何制定
- 讲一下现公司部门结构及项目模块划分、软件框图
- 详细讲述一个项目,遇到的问题,是如何解决的
- 如何激发团队积极性
- 自己的3个优缺点,如何评价
- 怎么解决与同事之间的冲突
- 读过什么书,对自己有什么影响
- 未来3-5年的职业规划
- 工作中有哪些创新,源自哪里,带来了什么
- 如何管理一个项目,及项目节点周期
- 与领导有不同意见了怎么办
- 对未来的工作团队和环境有什么要求
- 有什么问题
总结
以上是我面试的一个简单的罗列和记录,不同的公司侧重的考察点可能会有不同,仅供参考。
有的公司会有笔试,有个公司要求做ppt展示,具体要求面试前问清楚,提前做好准备。
每个人都是与众不同的,自己的经历、性格、兴趣、技能造就了自己,不需要委曲求全,工作也是生活的一部分,热爱生活的人也热爱自己的工作。
记住一点,打铁还需自身硬,厚积才能薄发,不断提前自己的技术和素养,承担更多的责任,多经历自己没有经验的事情,自己就会成为有用之才。
换工作是实现自己职业生涯规划的一种方式,但不是唯一的方式,所以慎重决定,决定之后就义无反顾地去做吧!