华为初面+综合面试(技术面)
华为面试整体流程大致分为笔试,性格测试,面试,综合面试,回学校等结果。笔试来说,华为的难度较中等,选择题难度和网易腾讯差不多。最后的代码题,相比下来就简单很多,一共3道题目,前2题很容易就AC,题目已经记不太清楚,不过难度确实不大。最后一题最后提交的代码过了75%的样例,一直没有发现剩下的25%可能存在什么坑。
笔试部分太久远,我就不怎么回忆了。直接将面试。
面试
如果说腾讯的面试是挥金如土(毕竟每个面试官都配了一件单独的房间),那华为就是戒奢宁俭。两个大会议厅坐满了面试官,其中一个是初面面试区,另一边是综合面试区。初面区的面试官会来等待区一个一个叫我们过去面试。
面试桌采取一对一的形式,技术岗的面试通知短信虽然没有通知说要带简历,但是仍然带了一份以免中途需要。(事实证明这是一个明智的选择)
初面
初面面试官点到我的名字之后,我跟着面试官去他的那个位置。
面试流程和大多数互联网公司流程差不多,首先让自己介绍一个比较满意的项目。(可能想通过这个项目了解我们的技能程度)在我面试准备时,其实我就纠结过这个问题。因为在我的项目中,有两个项目是我比较满意的,第一个主要做后台,第二个主要做虚拟环境和数据交互。
“我有两个项目是比较满意的”,我先抛出这句话,希望面试官能够给机会让我将两个项目都讲一下,“我先讲一下第一个我们当时做的换课平台,当时本来是一个课程项目,但是我们在这个课程项目之上,结合当时校内急需换课这个需求,做出了这么一个换课平台”,(首先提出项目目的),“然后这个项目大概实现了一个怎样怎样的功能”(抛出产品功能),“我在项目中主要负责后台开发和数据库交互功能”(说下在项目中的角色),“整个项目的架构大致如下。。。。”(项目如何实现),我拿着纸笔在草稿上给面试官画着后台所有的系统架构和数据流动方式,同时将涉及到的重要点的技术点都说了下。
按照之前整理过的描述流程,我将整个换课平台项目描述了一遍,中途偶尔面试官会问一下技术细节,不过都不是很难,可能因为我没有使用“SSH”三大框架,而是使用纯JSP进行的底层开发,所以面试官也不是太好提问。
不过有意思的是,在我介绍到项目中实现了实时聊天的时候,面试官提了两个小问题,是我之前项目中没碰到,而实际生产产品中可能遇到的问题:第一,我们的实时聊天是直接P2P,这样需要双方在同一子网下,那如果现在双方不在同一子网下,外网某个移动端客户A可以访问后台服务器B,这时候某个web端C同时也可以访问服务器,这个时候A和C是互相不同的,现在如果我们仍然想让他们通信怎么办;第二,考虑大量用户同时访问后台服务器的时候,该如何处理。
第一个我首先考虑到用服务器作为中介,但是当时老是想着可能打两个聊天信息会对服务器造成压力,所以一直很犹豫要不要用后台服务器作为中转,以及,作为中转该如何操作。不过面试官稍微提醒我可以用服务器作为中转,这时候我突然意识到只要服务器收到之后,立刻将消息转发出去就可以了,不用走数据库。这时候我也才一直到为什么我以前分析微信的聊天服务时,会将所有的文本消息和图片消息发送到微信的后台服务器,而且简单的直接P2P对话,主要还是为了克服网络问题
第二个不难,考虑云计算中的负载均衡,我大致说了下思路,选取一台主机作为负载均衡调度机,其他的作为工作机即可。
第一个项目大概讲了十分钟,不知道是因为刚开始面试还是我项目确实对面试官的胃口。
第一个项目完了以后,面试官翻了下我的简历,“你要不说下你另一个项目?”我有blabla说了一通。
“有什么难点?”“项目中遇到过哪些问题?”
说完之后,初面基本也就结束了,整个过程十分和谐(可能我遇到的面试官比较nice)。最后让我提一个问题,我大概问了下投递的这个岗位今后具体会是什么工作,面试官大致给我讲了下。(我投递的云计算开发岗,PaaS方向)
综合面试
初面完之后,面试官指引我去综合面试区等待综合面试。
综合面试整体感觉和初面差不多,不过在综合面试阶段面试官首先问了我的籍贯,工作意向和理想的工作地点。
这里我表示并不挑,因为作为一个外省人,自从一个人出省读书以后,就已经对在哪生活在哪上班没有太多顾虑。
接着面试官问了我一些成绩怎样,家庭情况之类问题之后,开始问我的项目经验。(虽然我不太明白,为什么综合面试还会问初面中问过的关于项目经验的问题)这里我就不在重复了,何处是一样,我大致和面试官交流了一下我们的项目内容。
这一块内容完成之后,感觉综合面试整个流程已经基本结束了,面试官开始跟我介绍他们项目组的工作地点(深圳),工作内容,以及平常的一些工作,同时还给我介绍了一些将来工作中需要了解的基本知识——比如docker容器,k8s,部分国内国外的公有云的运行原理,让我回去之后提前自学一下。(到这里我开始感觉有戏了)
其实,综面和初面差别其实没有太大,不过感觉这还是和面试官有关系,因为在我同行的队友中,他们有的就被问到了一些比较底层的知识点比如Java有什么特点之类,也有被问及面向对象的优点等等(这些我都没被问到)。
综述
总的来说,其实华为的面试并没有我想象中的困难(因为听说华为今年缩招,我还以为面试会故意很难)。简历准备很重要, 尤其是项目经历,个人blog,github这类容易加分的内容,最好能够写出来。两场面试相比较同伴更加顺利,有一定程度上就是简历给我加了分。
因为我面试的是云计算开发岗,所以我在项目中重新添加了很多Java相关的项目经历,虽然不是很重要,但是至少能让面试官从中了解我在Java方面有不少经验。
面试时候不用太紧张,在之前腾讯面试中我就明显很紧张,脑子一片发蒙,而这次华为面试就感觉稍微舒服很多,不知道是因为已经经历过几次面试,还是因为面试官带动的比较好。
最后还挺重要的要能够及时清楚地描述自己想说的内容。毕竟将来工作岗位中,少不了和同事的交流。另外清晰的描诉对面试官了解你,了解你的项目会很有帮助。因此,不论是在给面试官讲述自己项目的时候,还是在回答面试官问题,亦或是想表达自己观点的时候,都需要清晰的表达。如果一时语塞,可以尝试停顿一下,整理下思路然后重新描述,只要面试官能够理解你的话,一般有些停顿是不会有什么大碍。
最后的最后,希望能够收到华为的offer吧_(:зゝ∠)_目前正在“排队待录取”中。
更新:
10月10号面试
10月17日收到进入资源池通知
10月24日收到offer短信,通知27日签约(估计是两方协议)。
27日签约,同时决定结束持续了6个月的备考生活,准备工作。
下面分享一点架构资料:
资料获取方式
关注+转发后,加群:878249276,私聊群主,即可获取!
重要的事情说三遍,转发、转发、转发后再发私信,才可以拿到!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
阿里P8架构师细谈:MySQL数据库的索引原理、与慢SQL优化的5大原则
MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。 我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重。 本文旨在以开发工程师的角度来解释数据库索引的原理和如何优化慢查询。 MySQL索引原理 1.索引目的 索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从下往下找到y字母,再找到剩下的sql。如果没有索引,那么你可能需要把所有单词看一遍才能找到你想要的,如果我想找到m开头的单词呢?或者ze开头的单词呢?是不是觉得如果没有索引,这个事情根本无法完成? 2.索引原理 除了词典,生活中随处可见索引的例子,如火车站的车次表、图书的目录等。它们的原理都是一样的,通过不断的缩小想要获得...
- 下一篇
项目上线后出了问题并造成损失,原因是代码逻辑问题,责任应该由程序员承担吗?
只要是程序就会存在漏洞,成熟的程序相对漏洞会少一点,上线之后出了问题并且造成损失,表面上看是程序员代码直接导致的,作为实现者本身来讲是负有一定责任,但如果把所有的过失都归结到程序员身上欠妥,从整个链条上来看项目的负责人要承担很大的责任,因为项目版本的发布和负责人的最后的拍板有直接的关系,项目中除了技术人员还有测试人员,重大的隐患没有测试出来测试人员也是负有一定的责任。 为什么程序这么容易出问题? 1.项目中程序框架设计不合理,导致兼容性或者抗风险能力出问题,好的框架在一定程度上会规避很多不必要的问题出现,而且在新添加功能后不会影响整体逻辑,千军好得一将难求,一个好的架构师对于一个项目启动显得至关重要,但并不是每个软件公司都能请的起高端的技术人才,所以难免开始设计的框架存在问题,架构师不是天生就有的,也是无数项目摸爬滚打出来经验提炼出来的,很多老程序员根据自己做的多个项目积累经验,然后架构出来的东西基本上差异也不会太大。 2.项目周期赶得太急,导致很多功能没有完全走通就匆匆忙忙上线,这种可能导致功能模块在还没有完全调研清楚就直接开搞代码,所以容易在实现功能过程中忽略掉一些细节,这种细节可...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS关闭SELinux安全模块
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7,8上快速安装Gitea,搭建Git服务器