本文会跟大家一起分享我的思考,包括但不限于如下话题:
工程师的软素质模型
如何识别工程师的软素质
如何发现并改进自己软素质方面的不足
工程师的职业发展
美团点评的工程师文化
如果你也对这些话题感兴趣,欢迎留言交流。
- 概述
- 技术面试流程
- 软素质模型
- 如何识别软素质
- 自驱力
- 好奇心
- 学习能力
- 沟通表达能力
- 技术规划能力
- 总结复盘能力
- 一些补充说明
- 美团点评的工程师文化
想学习更多Android知识,或者获取以上相关资料请加入Android技术开发交流2群:862625886。本群可免费获取Gradle、RxJava、小程序、Hybrid、移动架构、NDK、React Native、性能优化等技术教程!
概述
写本文的初衷是自己做了多年的面试官,前前后后面试了上百名工程师,有时会不禁思考,面试时除了考察候选人专业方面的知识和技能外,是否还要考察工程师的软素质,如果需要考察的话要怎么识别这些软素质。
关于第一个问题,要不要考察工程师的软素质,我想答案是肯定的,因为一名软素质较好的候选人进入公司后自己的成长会更快,对团队的正向影响也更大。所以,本文更多的是思考如何定义软素质模型以及如何识别这些软素质
如果你是一名面试官或者会有机会参与到团队的面试工作,那么通过阅读本文你可以了解到如何识别候选人的软素质并在面试环节做把关。如果你是一名刚入门的技术管理者,本文也许可以帮你打开识人带人的大门。更多的情况,大部分同学还是参与到一线的开发中,除了埋头写代码外,其实更应该了解自己的短板,查缺补漏,这样才能更快更好的成长,希望看完本文后对你也有所启发。
技术面试流程
通常情况下,互联网公司会有四轮面试,前三轮是技术面,第四轮是HR面。其中,一面、二面会着重考察候选人的专业知识和专业技能,对软素质也会做一定程度的把关,三面会着重考察候选人的软素质,第四轮HR面除了考察软素质外,更多的会考察候选人的文化匹配情况。
可以看到软素质考察会贯穿到面试的始终,只是每轮侧重点不一样。上面说的是只是通常情况,具体要面试几轮以及每轮面试要考察的点视情况不同可能会有所调整。
软素质模型
好了,问题来了,要考察软素质,首先要定义软素质有哪些,最好是有个软素质模型,这个模型还要尽可能的适应公司发展的要求以及匹配公司的工程师文化。下面说说我对工程师软素质模型的理解。
上图是我总结的工程师软素质模型,我们从内往外说起。
最核心的是自驱力,是一个人内在的东西,我们说一个人是不意愿成长,一个人是不是自律,指的就是他的自驱力,自驱力是一个人成长的源动力,自驱力好的人后面发展的潜力也会比较好。
中间一层是好奇心和学习能力,技术日新月异的今天,一个人如果不对不断变化的世界保持好奇心,且不断学习精进自己,很可能会跟不上节奏。有句老话说的好,你必须不停地奔跑,才能保持在原地,说的就是这个意思。
最外层分别是沟通表达能力、技术规划能力、总结复盘能力。良好的沟通表达能力不仅对个人发展有着至关重要的作用,对团队合作也大有裨益。技术规划能力强的人对问题往往理解的比较深刻,且目标感很强,更容易拿到结果。总结复盘能力能够帮助你找出自己的不足,并形成方法论去指导后面的工作。
如何理解这些软素质之间的关系呢,如果把人比作汽车的话,自驱力就是一台汽车的发动机,好奇心和学习能力是燃料,沟通表达能力、技术规划能力、总结复盘能力是实际表现出的外在性能。
如何识别软素质
如果拿冰山作比,软素质更多是隐藏在冰山之下,如果要识别考察一个人的软素质,就需要观察冰山之上的部分,也就是一个人的行为,所谓的透过现象看本质。下面就一一说明如何识别这些软素质。
自驱力
可以从两个方面来考察候选人的自驱力:目标感和自律。自驱力强的人做事情会有明确的目标,同时比一般人更加自律。
关于目标感,可以问候选人如下一些问题,是不是经常做计划?为什么会做这个计划?最近的计划是什么?计划是不是足够SMART?
关于自律,可以结合上面的问题继续追问,比如之前制定的计划完成度如何?如果没有完成是遇到了什么原因?如果完成了是因为计划的挑战性不够吗?借用Keep的格言:自律给我自由。
结合上面的问题,我们以跑步为例来具体说明一下。假设候选人给自己定了跑步的计划,一个自驱力强的人首先会给自己设定个有挑战的目标,比如一周跑步3次,每次6公里。同时还会有足够的自律保证目标的实现,如果计划的完成度很低很难说这个人自驱力强。
综上,自驱力强的人对自己会比较狠,正所谓社会我*哥,人狠话不多。
好奇心
好奇心大概可以分为两个层面,一是知道有什么,二是知道为什么
所谓知道有什么,就是知其然,是指知道自己所从事的领域或感兴趣的领域正在发生的技术进展、技术创新有哪些。比如对Android候选人,可以问他Android最新版本是多少?包含哪些新特性?有哪些优秀的开源项目?这些项目的作者是谁?也可以问一些当下的热门技术领域,比如人工智能、深度学习、区块链、数字货币等,好奇心稍微强点的同学,对这些新事物应该都不会陌生。从上也可以看出好奇心和视野也有一定的正相关性,好奇心强的人往往也有比较宽的视野。
再说知道为什么,也就是知其所以然,除了知道有什么外,好奇心强的人还会去了解为什么。以区块链为例,如果候选人对这个领域感兴趣,可以继续追问如下一些问题,比如区块链的技术原理是什么?如何实现去中心化的?共识机制有哪些?看过哪些相关资料?
学习能力
怎么识别一个人学习能力的强弱呢,笔者认为,候选人首先要有学习的意愿,其次要有行动,最后还有要有结果。面试时可以通过问如下的一些问题来了解候选人的学习能力,比如,最近读了哪些书?读完后有什么收获?是开阔了视野、提高了认知、还是在工作中有实践?工作中遇到过哪些之前没遇到过的问题,是如何解决这些问题的?这类话题很多,出发点就是考察候选人在遇到自己不了解、不熟悉的问题时是如何通过学习来掌握相关技能来解决问题的。当然面试官要有能识别这些问题难度的能力,如果只是解决了一个相对简单的问题,并不能说明候选人的学习能力很强。
一个学习能力强的人,会不断花时间去广泛涉猎、获取输入,可能是读书、订阅专栏、或是阅读源码,并在工作中不断去实践。同时,他也会不断提高自己学习的效率,比如用Google查阅资料而不是度娘,尽量阅读官方文档而不是二手资料,等等等等。相反,学习能力较差的同学很可能都没有花时间去学习,更别提有什么收获了。另外,据我观察,学习意愿强的同学一般会比较谦虚,正所谓敦兮其若朴,旷兮其若谷。通过观察这些特质,也能帮助面试官窥视一二。
沟通表达能力
沟通的目的是要正确的传递信息,好的沟通表达要简单明了,且能抓住重点。
可以通过问候选人一些偏主观的问题来考察其沟通表达能力。比如,面试开始前可以让候选人做个简短的自我介绍,通过自我介绍观察候选人的表达是否足够清晰。别看自我介绍是件小事,但就是有候选人介绍不好自己,具体表现为没有清楚表达自己的过往经历或者介绍时没有突出自己的亮点。
也可以让候选人介绍下最近负责或参与的一个项目,好的表达方式是采用STAR原则,所谓STAR原则,即Situation(情景)、Task(任务)、Action(行动)和Result(结果)四个英文单词的首字母组合,它是结构化面试当中非常重要的一个理论。如果候选人在面试时能够采用该原则,那么大概率其在日后的工作中也会采用,果真如此的话,团队日常沟通会相对顺畅不少。更多可以参考STAR原则,这里不再赘述。
实在找不到话题的话,也可以让候选人介绍一个他比较擅长但是你不了解的领域,看他能不能说明白,沟通能力强的候选人会把相对复杂的问题通过浅显的语言表达出来。总之,只要留心,面试时还是很容易识别候选人的沟通表达能力的。
最后,推荐巴巴拉·明托的《金字塔原理》一书,虽然本书主要是讲结构化思考的,但对于沟通表达时理清思路,抓住重点还是大有裨益的,因为所有语言都是思考的产物。
技术规划能力
规划是对未来整体性、长期性、基本性问题的思考,并结合这些思考设计全面长远的发展计划和行动方案。和计划相比,规划更加具有前瞻性、全局性、战略性和方向性。是高级工程师的一个硬实力。
听起来有点虚,咱们举个具体的例子,以搜索系统为例,先梳理目前的现状:
- 用的是一套开源系统,原始版本bug比较多,解决一个问题往往需要一周的时间
- 高峰期性能问题严重,7天有4天会报警,整体稳定性在99.8%
- 质量问题严重,4次升级出现了2次bug
可以看出,现有系统已经影响了业务的后续发展,需要做技术规划,对系统进行优化。优化前首先要定个小目标,这个小目标就是优化的方向,目标要遵循SMART原则。具体到这个例子,可以定如下的目标:
- 稳定性提升到99.99%
- bug率降到10%
- 发现的问题当天跟进
- 节省70%的机器
有了目标后,后面就是对目标进行拆解。先是对规划做系统性的描述,清楚执行者自己的位置,这里推荐用五视图法(逻辑架构、开发架构、运行架构、物理架构、数据架构)把系统的架构图画出来,画出架构图后就可以方便的对系统进行分层,也方便对任务进行明确的拆分。接下来要根据阶段性可check的原则明确项目的优先级和里程碑。最后就是风险评估和执行阶段了。
说了这么多,那到底如何了解候选人的技术规划能力呢,下面几个问题可以参考下:团队目前遇到的最重要的三个问题是什么?有没有针对这些问题做过技术规划?具体目标是什么?目标是不是足够SMART?里程碑是什么?问完这些问题后,也基本上对候选人的技术规划能力了解一二了。
总结复盘能力
对项目进行总结复盘(不管是业务项目还是技术项目)也是一项能力,复盘的目的是从之前的经历(可能是成功的经历,也可能是失败的经历)中总结可供指导后续工作的经验。总结复盘的方式也多种多样,但万变不离其宗,主要还是围绕下面几个内容:目标回顾、进展评估、原因分析、经验总结,篇幅所限这里就不再赘述了。
怎么识别呢,可以通过如下几个问题来简单了解下候选人的总结复盘能力。例如,有没有定期做过总结?总结的形式是什么样的?最近一次做总结是什么时候?总结后的结论或经验有哪些?关于复盘总结的话题比较大,想了解更多内容的话,给推荐大家一本书:《复盘:对过去的事情做思维演练》。
一些补充说明
- 面试的过程更多的是挖掘候选人的亮点,而不是去找缺点
- 一个人的发展不是一成不变的,即便当下某些能力比较弱,也不代表今后不会变强,所以最核心的还是要通过自驱力、好奇心、学习能力去看他的潜力如何
- 对于校招或者刚工作不久的同学,会着重考察自驱力、好奇心、学习能力、沟通表达能力,对技术规划、总结复盘不做太多要求,但对于高级别的工程师或者技术团队的管理者,这两点是需要着重考察的
美团点评的工程师文化
最后跟大家聊一聊美团点评的工程师文化。看一家公司有没有工程师文化首先要看这家公司的技术基因,而技术基因跟公司的创始人或者创世团队有很大的关系。美团点评的创始团队以及大部分高管都是工科出身,部分还在早期写过代码,可以说公司的技术基因还是比较强大的。
文化是个很虚的东西,不过通过了解团队认同的理念和做事的方式,我们还是可以从某个侧面了解一二。下面是我们认同和践行的一些理念: - Think Big, Act Small
- Keep It Simple & Stupid
- Done Is Better Than Perfect
- Talk is cheap. Show me the code.
- 大道至简
- 做有积累的事情
- Don‘t repeat yourself
- You Build It, You Run It, You Own It
- 自动化一切
想学习更多Android知识,或者获取以上相关资料请加入Android技术开发交流2群:862625886。本群可免费获取Gradle、RxJava、小程序、Hybrid、移动架构、NDK、React Native、性能优化等技术教程!
原文地址:http://blog.51cto.com/13983283/2343908