华为一般是三轮面试,前两轮为技术面试,第三轮为业务主管面试;三轮面试会在一天内全部完成!
说在前面:
项目很重要,项目很重要,项目很重要!每轮面试都会询问项目相关问题,不只是技术问题,问的很全面!如果不是自己亲手做过的项目建议不要拿出来糊弄!
下面我将按照第一轮面试到第三轮面试的顺序,依次谈一下每轮面试的细节以及需要注意的地方;(提示:每轮面试是平级的,并不是越往后问的东西越难!)
第一轮:技术面
基本大概可以分为四部分:自我介绍,讲讲做过的项目,一道算法题(现场手写),技术问答;
首先上来就是自我介绍,自我介绍因人而异,每个人根据自己的情况而定,我的建议是内容饱满、有态度;需要包含以下内容:
名字、所在大学、所学专业、做过的最重要最拿手的一个项目、自己的优点和缺点;
下面给大家看一下我的自我介绍,可以根据我的整体框架改改内容:
面试馆您好,我叫XXX,来自南京理工大学,是20年即将毕业的应届生,我本科修了会计学和计算机科学与技术两个专业,属于双学位,我本人对计算机这个行业非常感兴趣,觉得用代码去实现实用的功能是一件很酷的事情,于是自主开发了一款校园助手类微信小程序——MTR南理,能够帮助南理工本科生更方便的查询课表成绩等信息,目前已经拥有1.5万+的用户,覆盖了南理工80%的本科生,算是比较普及了;
我自认为最大的优点是发现问题,找到问题的根源所在并解决问题的能力,我计算机方面的知识大部分是通过阅读相关书籍和博客自学的;但也正因为这点,我的知识体系可能没有其他人通过正式上课学来的扎实,这是我的一大痛点;我对计算机是非常热爱的,如果能够进入华为把自己的热爱当作事业我觉得是非常幸福的,以上就是我的自我介绍,谢谢!
在讲项目前,他先问了我一些家庭情况,家在哪里啊,是不是独生子女啊之类的;
接下来紧接着面试官就可能问你刚才自我介绍里讲的项目,也不一定是很专业的技术问题,会询问项目的发展情况,怎么开始的项目,项目中遇到的一些问题等等,这个不用怕,只要是自己做过的拿手的项目,都没问题的,如果问到项目中没接触过的东西,直接说项目中没用到还不太了解就行了;
之后可能就要你写算法了,面试官会出一道算法题,让你当场写出来;算法题每个人每次面试基本都不太一样,不能一概而论,我当时面试的时候出的算法题并不难,很简单,下面我会给出来题目和答案思路,算法题需要注意的就是虽然题不难,基本不需要什么算法思想,就是一些简单的处理问题的模拟(当然也不排除会出一些难的),但是面试官是希望你能够用更好的方法解决问题,也就是用时间复杂度更低的方法去写;如果你实在想不到更优的办法,就写你能想到的,不用怕,只要你写出来了,虽然可能不是最优解,但是面试官一般也不会为难你,这个算法题要是写出来了,这轮面试基本就是通过了!
算法题:给一串字符串,包括大小写英文字母和数字,要求统计出里面每种字符出现的次数。(是不是很简单?)
这个题我一上来就是用map做的,每找到一种字符,存到map里面;
但是面试官让我不要用map,因为map比较占内存,问有没有其他办法,我回答用hash解决,思路正确了!这个题面试官就是想让你用hash去解决;
最后会问一些技术知识问题,看你具体面试的岗位而定,我面试的是Java开发,所以就会问一些Java的问题,文章后面我会整理出面试期间问到的问题以及非常重要必须掌握的Java面试题!
第一轮问到的问题:
Java多线程实现方式;(答上来了)
Java各种集合类的介绍;(答上来了)
Map的内部数据结构;(我答的键值对,但是不是这个,是更深层次的数据结构)
Java垃圾回收机制;(没有答上来)
JVM内存模型等;(没有答上来)
手写几个Sql语句,关于多表查询方面的;(答上来了)
最后还会问你有没有什么问题想问他的,这个时候就比较放松了,你想了解点什么就问问,我当时问的公共开发部具体是做什么的;
第一轮面试顺利结束,马上就会告诉你通过还是没通过,通过的话稍后就会马上开始第二轮面试!
第二轮:技术面
第二轮和第一轮流程基本上一样,并不是说第二轮一定会比第一轮难;下面我就主要说一下和第一轮不一样的地方;
自我介绍和讲项目部分基本相同,而且第二轮面试的面试官对我的项目很感兴趣,问了很多关于项目的问题,聊项目就比较轻松了,不再赘述;
算法题:给定一个整形数组,让把数组里面的 0 都移动数组尾部,其他数字保持原有的先后顺序不变,限制是不能开新的数组,只能在原有数组上操作,操作次数尽可能少;
这个题也是简单的问题模拟,只需要一个一个的扫描遇到0就移到后面就行了;不是很难;他会给15-20分钟让你写,时间很充足!
技术问答环节:又问了Java各种集合类的介绍,所以这个需要重点掌握,很有可能问到;其他问题倒没怎么问,主要还是项目相关问题;
最后还是问你有没有问题要问他的,这一轮我问的是假如我能进华为,我能得到哪些提升。
第三轮:业务主管面
这一轮对技术要求不是很高,可能只会问一点点;
首先还是自我介绍,讲项目,和前面两轮差不多,不再赘述;
之后会问个人问题等;
当时问了我:
除了投递华为,你还投了哪些公司?
大学四年最让我难过的事情是什么?
你一直坚持在做的一件事情?
之后还是问了一个Java的知识:讲一讲Java抽象类和接口;
最后他会着重介绍一下华为公司,当时他还把我之前面的某某公司diss了一下,说他们的平台远没有华为的大,在华为的职业发展平台是面向全球的等等。基本就是这些啦!
之后就是让你等通知,10个工作日内给结果!
最后针对于上面的面试问到的知识点我总结出了互联网公司java程序员面试涉及到的绝大部分面试题及答案做成了文档和架构视频资料免费分享给大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等等架构技术资料)转发+微信获取!
网友评论