好奇心
好奇心大概可以分为两个层面,一是知道有什么
,二是知道为什么
。
所谓知道有什么
,就是知其然,是指知道自己所从事的领域或感兴趣的领域正在发生的技术进展、技术创新有哪些。比如对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
- 自动化一切
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
记、源码讲义、实战项目、讲解视频**
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
[外链图片转存中…(img-9iQdStEs-1710933721958)]