返回介绍

12.1 从面试谈起

发布于 2024-08-17 23:46:11 字数 3084 浏览 0 评论 0 收藏 0

一个团队的整体风貌,和团队负责人有很大关系。如果团队负责人比较外向,那么他的团队也必然很火爆;如果团队负责人是内向型,那么他的团队也会很闷,日常工作中基本没什么声音。闹有闹的打法,静有静的风格,没有对错之分。

一个人性格是外向还是内向,面试时就能看出来。

12.1.1 如今是卖方市场

“面试的时候看人的短处,用人的时候看人的长处。”这是我曾经的一位老板跟我讲的,经过我这些年的实践,感觉并不全对。对于谷歌、微软、BAT这类公司,每天有成千上万人挤破头颅要进去,所以他们永远不缺人,可以在一流人才中,慢慢找候选人的短板。

但是对于二线公司,情况就不容乐观了。众所周知,移动互联网迅速爆发,人才缺口很大,基本上所有的互联网公司都缺人。一流人才,基本见不到,都去BAT了,只能从二流人才和三流人才中下手,同时还要手快,稍微慢一拍就被其他公司抢走了,所以对于二线公司,要适当降低标准,一个强力的Team Leader,外加一些能干活的人就行了。

人一旦招进来,接下来就要把他培养成一流人才,让他具备进入BAT的水平。于是我们要招那些有潜力有灵气的但是经验欠缺或者背景不好的开发人员,太笨的、太懒的、慢条斯理的都不行,如果要组建一支嗷嗷叫的团队,切记要守好这最后的底线。

作为部门主管,一旦你发现候选人不错,就要留个心眼了,无论是电话还是QQ还是微信,尽快与候选人后续建立长期联系。一言以蔽之,对于App开发人员,现在是卖方市场,我们招人时要改变以往高高在上的姿态,否则,就招不到人。

12.1.2 名校论不适用无线开发

有些公司要求招人必须是名校,尤其是研发部门,我觉得是不妥的。

我带过的团队成员,什么学校的都有。水平高者,往往来自那些名不见经传的学校,甚至是二本三本。我想,这大概是外界对研发二字的误解吧。一提起研发,所有外行人都会认为这是件很高深的工作,必须是211或者985高校的博士教授做的事情对于学术也许如此,但是对于软件研发其实不然,类似于搜索之类涉及复杂算法的软件行业,固然需要较高学历良好背景的人去研究,但是对于App应用类软件而言,每天的开发工作大都是重复性画UI和调用MobileAPI获取数据,就如同流水线工人那样做事,所以真的不需要名校出身。

12.1.3 如何搞到更多的简历

这年头,想要优先拿到简历,必须和HR搞好关系,不动点脑筋是不行的。可以把公司HR的妹子泡到手做老婆。我自酌没有这样的条件,可是我会做饼干蛋糕面包千层酥这样的甜点啊,于是亲手做了一份蛋挞和提拉米苏给HR的美女们送了过去,可想而知,接下来就陆陆续续有简历到我手里了。

再后来,简历又少了,因为不能总优先照顾我啊。于是我就着急了,我让HR把我的邮箱加到招聘组中,只要有人投开发职位的简历,就也会发给我一份,于是每天我会收到几十封简历,开始我还是收到一封看一封,可是后来我就发现自己的工作时间就被碎片化了,因为要时时刻刻接收并筛选简历,后来我就每天晚上8点统一筛一遍当天所有的简历,这样就把零散的时间利用起来了,与此同时我还发现,HR确实帮我们挡住了一些完全不合适的简历节省了我们的时间,此外,有一部分简历则是因为学历原因,其实把候选人约过来聊聊还是很合适的,这时候就需要不拘一格降人才了。还有一部分简历就比较奇葩了,因为HR要帮不同的部门招人,所以经常会出现这样的情况,一份好的简历,先送到A部门,合适就留下来约面试,不合适就直接拒了,而我所在的B部门则完全不知道还有这样一个人的存在。

我不晓得其他部门是如何操作的,反正自从我把自己的邮箱加入到招聘组后,我就有了优先筛选简历的权力,每天几十份简历,虽然额外增加了工作量,但是每天都能确保筛选到有合适的简历并约来面试。

12.1.4 面试时需要考察的几个点

面试时,主要考察候选人的3个方面:

·技术水平,主要是候选人的编程技术水平。

·领域知识,主要是候选人对业务的了解程度。

·软性技能,包括沟通能力、抗压能力、性格。

每个公司面试的流程不太一样。一般而言,有两轮最重要。第一轮是Team Leader面试,考察技术水平。第二轮是用人部门的负责人面试,考察领域知识和软性技能。这两轮过了,只要薪水不是太离谱,基本就算过了,这也符合互联网公司简单高效的节奏。

如何考察面试者的技术水平?对于App而言,分为3个方向:

·应用类,比如说京东、携程、大众点评、美团这样的App,它们共同的特点是页面多,都需要频繁地调用MobileAPI获取数据,都涉及支付流程,所以这类App的开发人员需要对UI、网络、登录、支付流程都非常熟悉。应用市场也属于这一类,比如豌豆荚。

·手机管家类。这类App虽然也算是应用类,但是很少调用MobileAPI,它更多关注的是手机系统内部数据的读写,所以这类App的开发人员需要对ActivityManager、Service、BroadcastReceiver之类的知识很熟悉。

·游戏类,必须对动画引擎很熟悉,比如说Cocos2d和Lua。

此外,还有一类Android从业人员,是在华为、三星这样的硬件厂商做手机系统的二次开发,包括手机系统上自带的一些软件,严格地说,不属于App开发。

我本人是从事应用类App开发的,这本书也是针对于此的,所以我在面试时一般会考察以下几个方面:

1)Activity的生命周期。

2)Activity的4种启动方式及使用场合。

3)做过的项目中,Activity是否有基类,如果有,封装了哪些共用的逻辑?

4)事件的各种使用方式及优缺点。

5)与HTML5页面的相互调用。

6)UI线程的阻塞与解决方案(Runnable与Handler)。

7)采用什么姿势调用MobileAPI并解析返回的数据?

8)怎样做列表的分页和刷新。

9)登录的实现,包括从哪儿来、到哪儿去的页面跳转机制,记住密码的逻辑设计。

10)性能调优,包括Layout调优、Activity中如何使用CONST常量、时间换空间策略、ViewHolder、图集的优化策略、数据缓存和图片缓存,等等。

11)全局变量过多怎么办?

12)写过UT没?

13)是否做过自动打包?Ant、Maven或Gradle任意一种都可以。

大家会看到,我对Activity问的很详细,因为它们占据了应用类App日常开发工作的绝大部分,但是对Android的其他三大组件基本不问,因为在应用类App中很少使用。

以上13道问题,不一定要求候选人全都会。满足大部分就能干活了,剩下不会的知识点,接下来在工作中会慢慢补齐。

对于TeamLeader的要求会更高一些,包括如何检查内存泄露,如何优化内存、多线程、自动打包、框架设计、版本管理等诸多方面。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文