简历准备
- 简历要简洁,一张A4纸的篇幅就足够了。
- 重要的信息不要遗漏:各种联系方式、毕业院校、专业等。
- 与其罗列工作经验,不如展示你的工作能力、学习能力。
- 不要写虚假夸大的信息,面试的时候实事求是。
- 简历的格式最好还是pdf的。
面试机会
- 新人最好还是先经历面试,积累一些职场经验。
- 最好的面试机会是内推,可以更加了解目标公司的团队和工作内容。
- 招聘网站(因为接收简历的量大,所以HR会更严格)
面试流程
- 事先先准备好简短的3~5分钟的自我介绍,最好就背下来,根据对方公司招聘的重点,着重介绍自己与目标公司寻求人才相匹配的能力。(表现好你的流利沟通交流的能力)
- 根据简历相互交流、算法交流、代码交流、架构能力交流
系统设计
系统设计,是让应聘者提出一个解决具体业务需求的思路,并且拆解成各个模块,设计好模块之间的关系。如:
- 设计一个类似微博信息流应用
- 设计一个本地数据缓存架构
- 设计一个埋点分析系统
- 设计一个直播答题系统
- 设计一个多端的数据同步系统
- 设计一个动态补丁的方案
代码和系统设计方面的准备
代码面试准备
LeetCode中国站提供了各大公司的面试题,并且大部分的题目还有标准答案和示例代码,所以可以一遍遍地练习,以提高自己的编码和逻辑思维能力。建议至少做100道。
写代码前的沟通
编写代码前的一些沟通交流是十分必要的。实际上面试挂考察的是与你一起交流沟通、了解你的思路的过程。
首先必须要确保你已经完全了解需求,否则就需要进行沟通,不然就是无效编码。比如输入范围、输出要求等等,一些异常的情况也要有所思考。
一般情况下,你可以不必给出最优的解决方案,因为考官可能会问你有没有更好的解决方式…
面试一切的目的就是与面试者交流,尝试配合搭档解决需求的过程。
系统设计准备
可以看看《设计模式》。
例如:设计一个类似微博信息流应用:
- 信息流的内容是否包含图片、视频、语音等
- 平均每个用户有多少信息流更新
- 是否需要做图片缓存与历史信息缓存
- 在断网的情况下,是否需要显示离线内容
- 在发送失败的情况下,是否需要暂存内容
- 系统对核心功能的性能的要求是如何的
在确定了一些细节之后,就可以开始介绍系统框架设计了。先讲框架、再讲细节。需要将每个模块的层次画出来,例如:App如何与服务器通信、服务器的信息如何存储等等。
在介绍App框架的时候,可以从MVC设计模式上去分析,然后再进行细化,比如Modle层细化到本地存储、图片缓存、网络请求等。View层细化到如何处理图文混排。Controller层如何与其他Controller的层次进行通信。
提问
在面试进行到后期,会有双方交流的一些机会,这个时候可以问一些得体的问题,比如:
- 公司在iOS端使用了什么技术框架
- 公司内部有什么技术学习机会吗
- 公司的团队目前有多大
- 希望我参与哪方面的业务
- 公司目前的竞争对手是谁?
- 未来公司的发力点是什么?
复盘
面试被拒之后,需要进行一些复盘,及时做调整与查漏补缺。