前言:
近期经历了一场五小时的面试,也算是毕业后的第一次正式面试,对软件开发岗的面试流程有了点直观感受。事后复盘了整个面试过程,发现了自己的一些不足,并反思了后续的改进方向,于是写篇博客记录下自己的一些心得。
整个面试过程分三轮由三个面试官负责,前两轮分别有一场面试和一场笔试,第三轮是经理或主管面试,整个面试过程我总结主要考察以下四个方面:
- 知识体系的深度与广度:理论指导实践,实践深化理论。有深刻完备的知识体系,开发调试犹如按图索骥;丰富的开发调试经验,也会让知识体系更加深刻完备。面试官可能针对某个问题不断展开追问,考察你知识体系的内在关联和理解深度,是否做到了融会贯通,学习和开发过程中是否勤于思考追根问底;
- 提供适用解决方案的能力:软件开发实际上是为开发需求提供并实现合适的解决方案,一般需要为某个需求提供多个解决方案,并能够分析不同解决方案的优缺点和适用场景。 提供并实现解决方案的能力通常是在项目开发过程中锻炼出来的,面试官可能会抛出某个需求或问题,让你给出解决方案,并追问实现的关键细节和用到的技术原理,考察你对开发过项目的专业程度和类似开发需求举一反三的能力;
- 方案实现并Debug的能力:这个主要是笔试环节了,通常像牛客网或Leetcode 上面的算法题,也有可能是在讨论解决方案细节时让实现其中的某个关键数据处理过程。考察你的代码是否高效实现了既定需求(也即代码是否通过测试且时间和空间复杂度较低)、是否便于调试分析(也即是否有错误处理过程)、是否易读(也即代码组织和变量命名是否规范)、是否包含单元测试代码(可能笔试环境已有测试用例)等,如果实现代码未通过测试,同时考察你快速Debug 的能力;
- 融入团队协作网络的能力: 部门经理或主管面试也会聊起你的性格、兴趣爱好、特长、职业规划、人生目标等,看你是否能快速顺畅融入团队,是否跟团队文化有冲突,你能为团队协作网络添加点什么新的元素,团队协作网络是否可以带你快速成长起来等。如果你擅长一些团体类活动,比如篮球、足球、游戏等,可能会更快融入团队。
面试过程主要考察候选人的能力和潜力,如果是校园招聘更看重潜力,社会招聘更看重能力。潜力主要体现在知识体系的深度和广度上,包括好奇心和自学能力;能力主要体现在为开发需求提供并实现合适的解决方案上,包括Bug 调试分析能力,这个主要在项目开发中锻炼积累。面试官主要评估候选者的潜力和能力,面试者应尽可能清晰简洁的展现出自己的潜力和能力,让面试官的评估尽可能准确,双方目标一致也可算合作关系了。
一、知识体系的构建与拓展
学习可以分为主动和被动两个层次,主动学习的效率自然比被动学习更高一些。1946 年,美国学者Edgar Dale 提出了“学习金字塔”理论,随后美国缅因州国家训练实验室也做了相同的实验,并发布了“学习金字塔”报告:
本文作者通过复盘一场五小时的软件开发面试,总结了四个关键能力:知识体系构建与拓展、解决问题的能力、代码实现与Debug、融入团队协作。强调主动学习、深度思考、实践经验以及团队协作的重要性,并给出了具体的学习和提升方法,如通过讨论、实践、教授他人来巩固知识,追问技术本质,多做思维训练,提高代码质量和Debug效率,以及如何更好地融入团队文化。
最低0.47元/天 解锁文章

2万+

被折叠的 条评论
为什么被折叠?



