学院面试会问哪些问题解答?
我当年参加ACM 区域赛时,由于刚上大一且对算法和代码质量没有太深的认识,写的程序有好多bug,在比赛结束的晚会上,我受到了某位选手极其不客气的批评(我记得你程序里有3个错误来着),后来我在现场立即改完了所有bug并重新测试通过,才挽回了一点颜面... 话说回来,其实大部分的问题都是基于你的简历提问的,所以最好提前考虑一下面试官可能会问到的问题,尽量多准备几种答案,因为有些问题的答案并不是唯一性的。
个人觉得比较好的应对方法是从头到尾保持冷静,尽量把问题想得简单一些,并用最简单的方式去理解它。如果遇到了太难的问题,没必要硬扛,可以坦率地表示自己对这个问题还不了解,然后可以提出自己的看法,只要你不排斥,大多数面试官是不会和你杠到底的(毕竟他们也是人也会疲劳)。
至于可能问到的问题,我认为主要包括以下部分:
1.学习情况:包括你本科的课程设置、成绩、获奖、ACM经历等等,这部分你要尽可能往好了说,特别是成绩和ACM,这能够直接展现你的编程能力和潜力,最好能让面试官感觉到你是一个编程的“天才”而非努力型的选手。
2.项目经验:你可能会被问及详细的项目经历,包括项目背景、目标功能、实现方法、遇到的难点及如何解决的等等,这时你需要做的是镇静自若,从容不迫,把事先准备好的细节娓娓道来(注意时间控制,不要超时),最好能体现你较强的工程能力。
3.算法和数据结构:或许你会被问到某类算法或者某一数据的结构,你只需要把你知道的相关的知识一一列出即可,如果确实不会,不必勉强应付,直接承认就好。
4.基础知识:如排序和搜索,可能会让你简述其中一种算法的时间复杂度和空间复杂度并加以对比,或是让你使用某种语言/框架来实现某个搜索算法等。
5.其他问题:有时面试官会将问题抛给你,看你的反应力如何,或是随机问些与编程无关的问题,看看你是否能够在短时间逻辑清晰地进行解答。 当然,可能问的问题不止这些,主要取决于所投递公司的岗位需求和面试官的个人倾向。