1、技术面试环节
总体来说技术面试会关注应聘者5种素质:扎实的基础知识、能写高质量的代码、分析问题时思路清晰、能优化时间效率和空间效率、以及学习沟通等各方面的能力
1、扎实的基础知识
通常基本功在编程面试环节体现在3个方面:编程语言、数据结构和算法
首先,每个程序员至少要掌握一两门编程语言。其次,数据结构通常是编程面试过程中考查的重点。在参加面试之前,应聘者需要熟练掌握链表、树、栈、队列和哈希表等数据结构,以及它们的操作。最后,大部分公司都会注重考查查找、排序等算法。
2、高质量的代码
要想解决这个问题,最好的办法是在动手写代码之前想好测试用例。只有把各种可能得输入事先都想好了,才能在写代码的时候把各种情况都做相应的处理。
面试官除了希望应聘者的代码能够完成基本的功能之外,还会关注应聘者是否考虑了边界条件、特殊输入(比如NULL指针、空字符串等)及错误处理。
3、清晰的思路
只有思路清晰,应聘者才有可能在面试过程中解决复杂问题。有些时候面试官会有意出一些比较复杂的问题,以考查应聘者能否在短时间内形成清晰的思路并解决问题。对于确实很复杂的问题,面试官甚至不期待应聘者能在面试不到一个小时的时间里给出完整的答案,他更看重的可能还是应聘者是否有清晰的思路。面试官通常不喜欢应聘者在没有形成清晰思路之前就草率地开始写代码,这样写出来的代码容易逻辑混乱、错误百出。
4、优化效率的能力
要想优化代码的效率,首先要知道如何分析效率,还要熟知各种数据结构的优缺点,并能选择合适的数据结构解决问题,还要掌握常用的算法,面试中最常用的算法是查找和排序。
5、优秀的综合能力
包括沟通能力、学习能力等
2、应聘者提问环节
首先是不要问和自己的职位没有关系的问题,其次是不要问薪水,再次是不要立即打听面试结果。最后推荐问的问题是与招聘的职位或者项目相关的问题。