这里准备了一些管理职位相关的面试题。
1. 之前的公司的团队有多少技术、产品人员、测试人员比例是多少?
之前的团队里有 10 名 Android 开发人员,产品人员有 4 人,但产品是一个单独的部门。测试人员有 4 人。我管理的是 Android 的开发人员,同时进行的项目最多有 4 个。
2. 你如何应对未过试用期的技术人员离职?
如果他的手里有需求比较紧急的代码,我会把他的代码首先进行 Review,查看进度,然后指派给对应的人手,同时立刻通知人资部门进行招聘。
3. 你在项目当中碰到的最大困难是什么,如何解决?
项目中有很多之前同事留下大量代码,写得毫无章法,已经遗留很久,而且没有注释,在代码重构时遇到了很大的困难。
重构时定制的方案是组件化,拆为了四层,分别是常规业务组件层(登录界面、市场界面、我的界面、下载界面等)、核心管理层(组件生命周期、路由服务等)、基础业务层(分享、推送、下载等)、基础功能层(日志、网络、工具类等)
最后的解决办法是先将这些遗留代码全部包装起来,移动到最底层 - 特殊层,先让项目可以继续运行,然后安排所有人阅读这部分代码,每个人对其进行分类,是属于哪一层,然后移动到哪一层。同时对代码力所能及地加入注释,在保证无 BUG 的情况下,合并部分代码。
4. 团队中技术人员技术参差不齐,你如何保证团队开发产品的质量?
先通过一段时间的 Code Review 发现团队人员的编码水平及有效代码数量,对开发人员能力做到心中有数。然后与水平较低的团队人员进行单独的沟通,指出代码中的错误,并提供一些思路和习惯上的帮助;同时安排单元测试,对每一个完成的小模块进行测试,让所有的代码都必须在通过测试的情况下交付至测试部门。
5. 现在团队只有你一个人,但是公司要求在 2 个月之内上线一个新功能,你有什么工作思路?
通过熟人或者招聘平台,快速招聘团队人员,看功能的体量选择招聘的人数;另外可以使用外包服务,支付少量金钱的情况下,快速完成工作。如果该功能有大量的后期维护需求,再继续招聘团队人员,进行代码交接和后期维护。
6. 在之前的开发中使用到那些新技术,对这种技术有什么看法?
在 Kotlin 刚应用于 Android 时使用过 Kotlin,它极大地提高了开发效率,在非空检查上有比较强的能力,能够让开发人员在提高效率的同时,让代码的稳健性更好;在后期 Kotlin 推出协程时也将协程应用到了开发中,使代码编写起来更像是『同步』的。
7. 觉得自身有哪些优点和不足,有哪些需要提升的地方?
通过候选人的回答来确定候选人的品行,是否诚实、谦逊为人等品行。
8. 对新人怎么培训和管理,有没有什么方法?
通过候选人的回答,考察其有没有真正的带队经验,团队建设的能力。
9. 在技术架构,技术选型的时候,主要考虑哪方面的因素,有哪些注意事项?
考查技术架构能力,比如能否根据业务不同选择不同的技术解决方案,有没有考虑并发、分库分表等方面。
10. 对未来的职业规划?
考察候选人对自己的未来有没有清晰的计划和目标,如果一个技术经理、CTO对自己未来没有清晰的认识的话,单纯是为了挣钱而工作的话,建议慎重考虑。