编程进阶网编程进阶网
  • 基础组成体系
  • 程序编程原理
  • 异常和IO系统
  • 六大设计原则
  • 设计模式导读
  • 创建型设计模式
  • 结构型设计模式
  • 行为型设计模式
  • 设计模式案例
  • 面向对象思想
  • 基础入门
  • 高级进阶
  • JVM虚拟机
  • 数据集合
  • Java面试题
  • C语言入门
  • C综合案例
  • C标准库
  • C语言专栏
  • C++入门
  • C++综合案例
  • C++专栏
  • HTML
  • CSS
  • JavaScript
  • 前端专栏
  • Swift
  • iOS入门
  • 基础入门
  • 开源库解读
  • 性能优化
  • Framework
  • 方案设计
  • 媒体音视频
  • 硬件开发
  • Groovy
  • 常用工具
  • 大厂面试题
  • 综合案例
  • 网络底层
  • Https
  • 网络请求
  • 故障排查
  • 专栏
  • 数组
  • 链表
  • 栈
  • 队列
  • 树
  • 递归
  • 哈希
  • 排序
  • 查找
  • 字符串
  • 其他
  • Bash脚本
  • Linux入门
  • 嵌入式开发
  • 代码规范
  • Markdown
  • 开发理论
  • 开发工具
  • Git管理
  • 百宝箱
  • 开源协议
  • 技术招聘
  • 测试经验
  • 职场提升
  • 技术模版
  • 关于我
  • 目标清单
  • 学习框架
  • 育儿经验
  • 我的专栏
  • 底层能力
  • 读书心得
  • 随笔笔记
  • 职场思考
  • 中华历史
  • 经济学故事
  • 基础组成体系
  • 程序编程原理
  • 异常和IO系统
  • 六大设计原则
  • 设计模式导读
  • 创建型设计模式
  • 结构型设计模式
  • 行为型设计模式
  • 设计模式案例
  • 面向对象思想
  • 基础入门
  • 高级进阶
  • JVM虚拟机
  • 数据集合
  • Java面试题
  • C语言入门
  • C综合案例
  • C标准库
  • C语言专栏
  • C++入门
  • C++综合案例
  • C++专栏
  • HTML
  • CSS
  • JavaScript
  • 前端专栏
  • Swift
  • iOS入门
  • 基础入门
  • 开源库解读
  • 性能优化
  • Framework
  • 方案设计
  • 媒体音视频
  • 硬件开发
  • Groovy
  • 常用工具
  • 大厂面试题
  • 综合案例
  • 网络底层
  • Https
  • 网络请求
  • 故障排查
  • 专栏
  • 数组
  • 链表
  • 栈
  • 队列
  • 树
  • 递归
  • 哈希
  • 排序
  • 查找
  • 字符串
  • 其他
  • Bash脚本
  • Linux入门
  • 嵌入式开发
  • 代码规范
  • Markdown
  • 开发理论
  • 开发工具
  • Git管理
  • 百宝箱
  • 开源协议
  • 技术招聘
  • 测试经验
  • 职场提升
  • 技术模版
  • 关于我
  • 目标清单
  • 学习框架
  • 育儿经验
  • 我的专栏
  • 底层能力
  • 读书心得
  • 随笔笔记
  • 职场思考
  • 中华历史
  • 经济学故事
  • 写简历注意事项
  • 技术招聘方法论
  • 技术能力的模型
  • 职场经典面试题

技术招聘方法论

目录介绍

  • 01.技术基础知识
  • 02.项目经验考察
  • 03.架构&技术设计
  • 04.知识深度和广度
  • 05.软素质考察
  • 06.社招面试标准
  • 07.实习生面试标准
  • 08.面试的过程
  • 09.定级别关键点
  • 10.面试重点介绍
  • 11.面试官素质

01.技术基础知识

  • 主要包含Android基础知识、网络、算法、数据结构,如果面试者所学专业非计算机相关,需要着重看下基础方面。
  • Android基础,举个例子:View的Touch事件分发如何?基础:ViewGroup和View的时间分发;深入:系统如何将事件分发到ViewGroup?View的绘制流程(可与Activity、Window结合)
  • JAVA基础,举个例子:为什么会有线程不安全的现象?如何实现线程安全?常见的线程安全数据结构有哪些?锁的分类有哪些?如何避免死锁?
  • 网络基础,举个例子:Http中GET和POST区别、DNS解析作用?HTTPS为什么安全?CA证书如何校验?如果想获取通信的内容,该怎么做?

02.项目经验考察

  • 包括该工作经历、项目经历、遇到的问题和解决问题的思路。
  • 简析一两个开源项目。看面试者因为什么学习开源代码(技术兴趣?解决问题?),学习的深度如何,最终有什么产出(转化为项目应用?做了二次优化?)项目背景?技术选型,如何落地?其中风险如何解决?最终收益

03.架构&技术设计

  • 与设计模式、所做App架构分层、MVP、MVVM相关。设计模式介绍:比如适配器模式、工厂模式、单例模式等运用。
  • 架构方面:MVC、MVP、MVVM介绍,优缺点。架构的试用场合是什么?Model层什么作用?如果有多个数据来源如何设计?
  • 关注点:如何实现各业务线解耦和协同,新业务线接入成本,解耦实现的方式,工程结构如何设计,一个SDK 的设计和实现
  • 要点:问题分析&拆解、模块拆分、扩展性、易用性、架构设计

04.知识深度和广度

  • 对专业领域的技术深度探索和对新技术的关注度&深度。
  • 举个例子:Android的消息驱动机制中的ThreadLocal作用、高级用法(IdleQueue、BlockCanary)、Native层如何实现的、IO多路复用epoll
  • 插件化原理,实现插件化需要解决的技术难点:类加载、四大组件生命周期、资源隔离、构建环境
  • 面试者主导的项目重构或者一个完整的性能优化经历(发现问题&解决方案、如何分步执行、推动上线、实现解决问题的闭环)
  • 性能优化:主要看面试者是否真有实际解决经验、常用工具、总结的经验和方法论。
  • 跨平台方案的理解: RN、Weex、Flutter,加分项

05.软素质考察

  • 主要对沟通能力、性格、学习能力、项目管理能力等方面衡量。你拿什么来证明自己优秀?
  • 沟通时比较沉闷、表达思路不清晰、所答非所问、微表情(不专业),沟通是否紧张。沟通强势、对自己的主张很坚持(不一定是坏)。项目里人员数目、面对风险如何解决、项目冲突如何解?关键节点
  • 面对一个难题时知道怎么去简化和抽象问题,把问题拨出来分类或者分层讨论,还会试图把问题分解成不同的子问题逐个来讨论。多进行一些思维训练,学会如何系统地区分解和分析一个问题。
  • 为了提升技术,做了什么,多久,付出哪些。GitHub,博客,项目等都可以拿出来讨论,关键要有……对技术的热爱,必须要有具体的事实支撑,否则给人看法折扣

06.社招面试标准

  • 主要分为 3 个维度,专业能力,业务能力,软素质
  • 专业能力:主要考察一下几个方面:基础知识、技术深度、技术广度、架构能力
  • 业务能力:主要考察对业务的理解程度,业务指标、业务痛点,利用技术手段提高业务指标的项目,对于业务需求的判断能力,需求合理性
  • 软素质:协作沟通,问题解决能力:过往处理过的疑难杂症,思路是否开阔,是否从本质上解决问题,项目管理:项目分工、推进、落地。项目管理方法论。时间管理。
  • 学习能力:对新的知识如何学习,所学知识解决了什么问题,中间碰到过哪些坑,平时看的书、公众号、博客等。学习方法和过程要考察,也要重点关注学习的结果。

07.实习生面试标准

  • 主要分为 3 个维度,基础能力,专业能力(加分项),软素质。
  • 基础能力的考察:主要考察候选人所学学科基础知识。网络、数据结构、操作系统、计算机组成原理、数据库;Java 基础、设计模式
  • 代码能力:算法题(简单,中等难度),思路、代码质量
  • 专业能力的考察:Android 基础,对部分Android 源码有所了解,那么了解多少;python、shell、linux 命令、git、vim、效率工具
  • 学习能力:对新的知识如何学习,所学知识解决了什么问题,中间碰到过哪些坑,看过的书、公众号、博客等。学习方法和过程要考察,也要重点关注学习的结果。
  • 其他一些软能力:协作沟通:表达清晰、准确,复杂问题可以提炼为简单的话术表达清楚;思维方式:金字塔思维,结构化思维;问题解决能力:过往处理过的疑难杂症,思路是否开阔,是否从本质上解决问题;学校成绩:学校、专业排名、竞赛成绩动机:爱好、成就感、薪酬、性格

08.面试的过程

  • 明确面试的目的:作为公司的面试官,不是为了鄙视和炫耀技术,而是评估候选人能否担任工作。这属于团队建设核心工作,也是公司的一次品牌宣传。

8.1 面试中注意要点

  • 为了体现足够的重视和面试的专业性,在开场过程,我们需要注意以下几点:
  • 为候选人倒杯温水。有时候在持续多轮面试后,候选人已经嗓子冒烟了。所以,一杯水体现了公司的细节和关怀。
  • 简单的寒暄缓和气氛。先简单的问候和寒暄,调整一下面试氛围,让候选人在舒服的气氛中开始。
  • 候选人自我介绍。完成上面几项后,就可以从候选人自我介绍进入面试主流程了。告知候选人面试过程需要用电脑做记录。
  • Q&A。面试最后问问候选人,是否有什么问题想问,或者可以说说自己擅长而又没有被问到的方面。
  • 告知等候时间/送候选人出去。让候选人更好地发挥,也为高效的面试做好铺垫。

8.2 完整的行为示例

  • 我们先来看看 STAR 解释:Situation, Task, Action, Result。
  • STAR法则是情境(指事情发生的情景)、任务(承担的任务)、行动(采取的行动)、结果(最终的结果)四项的英文单词首字母缩写。
  • 示例:举个例子说说你擅长性能优化。
  • 要点:当时情况怎么样,需要做什么,采取了什么行动,达到了什么效果。
  • 理念:在收集 STAR 的时候不断提出更加深入的问题来判断认知程度及抗压能力。

8.3 考察综合素质

  • 为了考察候选人的综合素质,面试过程我们其实可以从六方面去考察:
  • 知识:也就是我们常说的基本功。
  • 专业技能:职位相关的技术能力,这决定你是否能胜任工作。
  • 能力:个人能力包括:思维能力,学习能力,迁移能力,扩展能力等等。
  • 个性特性:正直诚实,责任心,坚韧性。
  • 动机:体现在成就导向,主动性。
  • 价值观:体现在团队合作。

09.定级别关键点

9.1 考评

  • 有潜力:能够在一段时间内,通过培养,胜任范围更大,难度更高的项目。
  • 能干活:能够胜任当前的工作,但是因某项能力(技术基础 or 某项软素质)较弱,在发展上会受到一些限制。
  • 三颗完整 STAR 确定一项事实:优点:尽可能挖掘优点,如果有需要后面可以调整面试方向。不足:基于我们职位要求。
  • 预测:通过其过去的行为来预测将来的行为。

9.2 给面试者定级

  • P6(一般3到6年)重点关注面试内容中的1和2,对于内容3需要对常见的设计模式和分层架构有了解。
  • P7(一般4到10年)重点关注面试内容中的2、3、4,架构方面有实际的设计经验,对某一方面知识有深度的理解。
  • 软素质方面都需要关注,基础满足沟通能力好,团队合作无问题。P7如果负责过独立的项目,需要对项目管理方面有一定的理解。

10.面试重点介绍

  • 一面二面,主要是技术面试,对面试内容1~5都需要考察,但每轮面试有不同关注重点。一面重点关注1,2,3;二面重点关注3,4,5
  • 三面,主要是技术leader面试,主要是3,4,5考察,但不仅仅局限于技术,而是解决技术难题的思路,以及闭环思维。
  • 四面,主要是部门leader沟通,主要是5考察,职业方向,过往经历,这个时候就需要吹牛逼呢。
  • 五面,主要是人事交叉面试,和四面差不多。一般P6大概是4面,P7以及以上一般是5面甚至更多。
  • 面试评价。评价里需要写上问的问题,和简答写回答情况,哪些答的好,哪些不好;如果面试者有些技术 面试官不了解,可以交换面试官交叉面试。

11.面试官素质

  • 能挖掘人的亮点:循序渐进地考察面试者的项目经历,由浅入深的问。能够挖掘开发亮点,解决问题的思路,分析问题的过程等。
  • 能综合考察技能:这就要求面试官能够在技能这块,由基础到深入,由整体到具体细节,清晰地理解面试者的技能处于什么层次。分析问题到了第几层!
贡献者: yangchong211
上一篇
写简历注意事项
下一篇
技术能力的模型