面试的三种形式
电话面试,预约好时间或者突然袭击,仅靠语言表达,尽量用形象的语言表达复杂问题
共享桌面远程面试,考查编程习惯和调试能力
思考清楚再开始编码,不要一听到题目就匆忙编码
良好的代码命名和缩进对齐习惯
单元测试,先写单元测试用例,再写函数
现场面试
不要迟到
衣服得体,IT公司通常随意,没必要穿正装,舒适干净即可
提前熟悉面试环节
提前准备好几个问题
面试的三个环节
行为面试
暖场:30s到60s介绍主要学习工作经历
项目经验
简短地介绍项目背景(规模、功能、目标用户等)
介绍自己完成的任务(区分“参与”与“负责”)
介绍自己如何完成任务(基于什么工具在那个平台用了那些技术)
介绍自己的贡献(完成了多少功能,提高了多少百分比性能,改了多少bug)
提前准备回答几个问题:
项目中碰到的最大问题是什么,是怎么解决的
项目中你学到什么
什么时候会和团队成员有什么冲突,是怎么解决的
掌握的技能
区分“了解”“熟悉”“精通”
了解:上过课,看过书,没有做过项目
熟悉:项目、毕设中所用的技能,可通过查阅文档独立解决大部分问题;简历中描述的技能大部分应该是“熟悉”
精通:能够回答、解决领域里绝大多数问题
回答“为什么跳槽”,重点放在职位和个人规划上
技术面试
扎实的基础:编程语言、数据结构、算法等
能写出正确、完整、鲁棒的高质量代码(基本功能、边界条件、错误处理)
清晰的思路(不一定要求应聘者完整解答复杂问题,更看中是否有清晰思路)
优化算法能力
熟知各种数据结构的优缺点,合理选择
掌握常用的算法
综合能力:沟通、学习、抽象建模、发散思维等
通过语气、神态判断是否是善于合作的人
抛出一个新概念,判断应聘者能否短时间内理解运用(丑数)
打开思路从多角度分析、解决问题
应聘者提问
为每一轮面试准备2-3个问题
不要问和自己的职位没有关系的
不要谈薪水、问面试结果
问与招聘的职位和项目相关的问题(面试前搜相关信息,面试时留意面试官的话)