一个小菜鸡的秋招面试记录

文章目录

  • 前言
  • 1.中兴
    • 1.1 一面
    • 1.2 二面
  • 2.美林数据
    • 2.1 一面
    • 2.1 二面
    • 2.3 三面
    • 2.4 Offer
  • 3.CVTE
    • 3.1 一面
  • 4.京东
    • 4.1 一面
  • 5.宇信科技
    • 5.1 一面
    • 5.2 二面
    • 5.3 三面
  • 6.中信信用卡
  • 7.锐捷
  • 8.创维
    • 8.1 一面
  • 9.海能达
    • 9.1 一面
  • 10.同花顺
    • 10.1 一面
    • 10.2 二面
    • 10.3 三面
    • 10.4 四面
  • 11.TCL通力
    • 11.1 一面

前言

从2019年3月份加入CSDN,到现在为止,也更新了许许多多的技术性博客。由于要迎接秋招的浪潮,博客已经快一个月没有更新新的文章了,于是借着闲暇时间,打算写一个自己的秋招面试记录,用以记录自己的面试情况。
如果没有特别提及,可以把以下公司中我申请的职位都默认为软件工程师(Java方向)
先说说本人的情况:双非普通一本,计算机学院的大四学生,专业为网络工程。从3月开始系统地学习Java,直到9月开始正式参加秋招。

1.中兴

时间:2019-9-11
性质:一对二,现场面试
时间:大约40分钟
人生的第一次面试就是去面试中兴。之前也用过中兴牌子的手机,所以认为中兴也是一个比较大的公司了。当时是9月9号进行网申,然后9月10日的早上完成测评和笔试,晚上就收到了面试通知。当然,那个时候由于是刚刚学完不久,很多东西都还没有及时复习,就连简历上的项目也没有仔细看。然而,抱着重在参与的心情,第二天,我还是硬着头皮前往了中兴的面试现场

1.1 一面

一面是技术面,一共有两个面试官,他们边检阅简历边往电脑输入信息,我就坐在对面等着他们开口提问(那时确实也比较紧张)。过了一会儿,其中一个面试官首先和我聊了聊在学校的情况(主要课程,挂科情况等),相关的个人信息(个人介绍,兴趣爱好等),就开始问我简历上的项目,主要是以下几个问题:

  1. 项目的架构。我画了一个比较简单的架构图,不过感觉有些问题,面试官大致认可了。
  2. 前后端如何实现分离。我结合架构图进行了讲解,但是讲的有许多问题,自己也能感觉到,从这里开始就感觉不好了。
  3. 微服务之间如何实现通信。这块是我答的最不好的题。因为我的项目所用到的架构是微服务+SaaS,当时对微服务的理解也比较浅,一直没有认真地看过这块的内容。当时听到面试官的提问时,我记得我的回答是:微服务之间都是独立的,没有通信。面试官也没有指明我的错误,直接就说项目这块先这样了。事后一想起来,真是想说一句“卧槽”。

项目的东西问完之后,接下来就是问了一些比较基础的问题,大致如下:

  1. 对象的创建方式。我说了五种:构造方法、工厂方法、反射、序列化、克隆。面试官还算满意。
  2. Spring用到了什么框架。刚开始听到这个问题时,我一下子就懵了(内心想法:Spring自己不就是一个框架吗?)。 过了一会儿,我冷静下来,说了Spring是一个轻量级的IOC容器和AOP容器框架,面试官没让我说完,就接着问我IOC容器,我就知道原来对方是这个意思…
  3. IOC容器的作用。几乎就是背概念,然后讲了一个比较常见的例子,面试官继续打断我,问了IOC容器的最大优点。
  4. IOC容器的优点。当时因为紧张,我只记得最大的优点就是解耦,然后Spring的相关问题到这里就结束了。
  5. Mybatis的优点。这个我只想起来概念里的程序员可以专门编写原生的SQL语句,专注于SQL的性能,不过面试官还问我其他的优点,并且旁敲侧击地提示了一下我(当然那个时候我确实听不出来,事后去查阅了一下资料,才知道还有一个可以解耦(将业务代码和SQL语句分开)的特点),这个问题到这里就结束了。
  6. 算法题。给定一个数组,其中一个数以奇数次存放,其他数以偶数次存放,需要取出这个奇数次存放的数。当时最开始想到的就是两个for循环遍历,然后内层for循环的判断条件就是没有重复的话就把这个数取出来。然后面试官说这个题能不能用一层循环解决,我一下子想不到,这个问题就结束了。

之后,一面就大致算结束了。面试官反问我还有什么问题想问的。可能是感觉前面的表现不太好,我觉得没有之后的面试了,就说“没什么想问的了”。不过面试官最后让我等一下,说一会儿参加二面,这让我的心里还是很开心的。

1.2 二面

二面就是hr面,同样是一对二,只不过氛围轻松了很多,都是问一些个人的问题,大致如下:

  1. 个人介绍。
  2. 优点是什么,能举个例子吗。
  3. 缺点是什么,能举个例子吗。
  4. 你认为一个团队最重要的是什么。
  5. 学习方式,最近在看什么书。
  6. 有对象吗,以后打算在哪发展。
  7. 有没有投华为,为什么没有投。这个问题我感觉是最坑的,因为我当时看华为的岗位学历要求是硕士以上,所以就没有投。当时的场景是这样的:
    1. 面试官:有没有关注过华为?
    2. 我:关注过,我用的就是它家的手机
    3. 面试官:那你有没有申请华为的职位呢?
    4. 我:没有(自卑…)
    5. 面试官:嗯…既然如此的话,那我是不是可以认为你的自信心不足呢?(拉长了调子)
    6. 我:不是,华为不是要求硕士学历嘛…
    7. 面试官:(拿起我的简历看了一眼,然后如梦初醒地说),喔,你是本科的是吧…

当时的气氛特别尴尬,面试官也没有接着往下问了。后面还是问我有什么想问的,我就问了一下后面还有没有面试,面试官说当天的面试已经全部结束了,如果还有机会能进入综合面试的话,会在20号之前给通知。
当然,因为一面的表现确实稍差,最后在20号之前也没有等到中兴的综合面试通知,彻底凉凉。

2.美林数据

时间:2019-9-11
性质:八对一,现场面试
时间:大约3个小时
面试完中兴之后,下午就是去面试美林数据。中午坐车去到那边,然后简单地吃了个饭,就去到了公司(当时找这个地方还找了好一会儿)。
当时面试的人数也挺多的,可能是为了节省时间,就莫名地变成了群面,这也是我第一次经历群面。根据公司的安排,面试由八个面试者共同面试。抱着忐忑的心情,我和其他七位面试者一起进入了暂时成为面试屋的会议室中。

2.1 一面

一面就是HR面,这倒让我挺意外的,因为据我所知大部分的面试一面都是技术面。面试官首先简单地介绍了一下自己,然后接下来就是以下的问题:

  1. 自我介绍
  2. 大学里考试的情况,有没有挂过科
  3. 对编程语言的理解
  4. 假设坐在会议室的八个人正在做一个项目,现在需要推举出一个小组长,每个人讲讲会推举谁,说出原因。这个问题我没有回答,因为我对其他人的认识也不深
  5. 有了解过什么高新技术吗?这个问题我记的最清楚,因为只有我回答了这个问题(说了一大堆关于大数据的框架,例如Hadoop、Spark、Hive这些,以及深度学习的一些算法,例如朴素贝叶斯算法,马尔可夫随机过程等等各种高端名词),面试官直接让我打住,然后一面到此为止

随后,面试官向我们宣布:将会从我们之中挑选出能进入下一轮面试的人。听到这个消息,还是让我挺紧张的:因为自己之前的回答也没有什么亮眼的地方,而且个人经历感觉也比不过其他的面试者。
几分钟之后,面试官回到会议室,开始宣布能进入第二轮面试者的名单。当面试官念到我的名字时,我还是挺吃惊的,同时心里也暗暗地松了一口气。事后回想起来,可能正是因为答上了最后一个问题,才能够脱颖而出吧(所以说了解一些新技术还是挺重要的)
当然,这也摆脱不了运气的成分:经过这次面试后,我一下子就意识到了面试的玄学。在第一次面试的八个人中,仅仅剩下包括我在内的四个人进入了下一轮面试。但是在被淘汰的那四个人当中,有成绩优秀到可以保研的,有获得过各种奖的,也有去过大厂实习的,所以他们被淘汰的时候,也让我挺意外的。
不得不说,面试太玄学了。

2.1 二面

经过一面的筛人后,二面就不可避免地要进入到技术面了。那时候会议室里的那张桌子的其中一端刚好只能坐四个人,面试官就可以坐到另一端。原本我以为技术面是一对一的,但是面试官对我们说:为了节省时间,就一起面了吧。于是,第二轮群面开始了,但是这次是抢答的模式,即能答上来的就抢答,剩下的人作补充,这样的感觉就比一面的时候压力还要大上许多。
第二轮面试中,面试官首先花了几分钟的时间细细查阅了我们的简历,然后就是问了以下问题:

  1. 仍旧是自我介绍。跟一面差不多。
  2. Spring的IOC容器的介绍。每位面试者都讲了一下,不过都是代码层级的,而我就是简单地举了个例子
  3. Spring的AOP容器的介绍。跟第2题一样
  4. Mybatis是如何连接到数据库的。这个问题刚刚抛出来的时候,所有面试者都懵住了,直到一位面试者答出了SqlSessionFactory和SqlSession后,面试官不禁点了点头,说终于答到了点上
  5. TCP和UDP的区别。这个问题很简单,我只能作出补充
  6. Cookie和Session的区别。这块我一下子没想起来,只好作了一点简单的补充。
  7. 设计模式。这个问题刚抛出来,就有一个人抢着把各种设计模式的名字念了一遍,面试官打住他:你要能把这个设计模式详细地讲出来才行,而不是只知道它的名字。于是其他人就赶紧抢答,说了代理模式和工厂模式。而到了单例模式的时候,因为一直讲不好,所以我赶紧抢答,把单例模式详细地讲了出来,然后这题就结束了
  8. Mysql的触发器。这个题没有人答上来
  9. Mysql的视图。这个题依旧没人答上来,面试官只好尴尬地叹了口气,说:你们的数据库基础还不扎实啊。

至此,二面结束了。
我看着面试官每问一题就像是给每个人都记录了一个成绩,还以为二面会继续筛人,但似乎不是我所想的那样。等了一会儿之后,面试者们就直接进入三面了。

2.3 三面

这次依旧是HR面(当然这个面试官的职位要比一面时的面试官要高),只不过气氛要轻松很多了,主要聊的也是一些比较涉及个人的问题:

  1. 仍旧是个人介绍
  2. 兴趣爱好
  3. 意向的工作地点
  4. 印象最深的一件事情
  5. 人生中最吃苦的时期
  6. 人生中最幸福的时期

这之后,所有面试就彻底结束了,通知大家回去等结果。虽然只是人生第二次面试,但是感觉也差不多十拿九稳了。

2.4 Offer

经过几天的等待之后,我便收到了美林数据的录取意向书,也算是人生第一份比较正经的工作吧。我问了一下当天跟我同去面试者,他们中的部分虽然也收到了录取意向书,但是普遍薪资好像比我稍微低一些(可能是面试的时候表现得稍微突出了一些吧)。总之,这家公司的面试算是以成功告终了。

3.CVTE

时间:2019-9-17
性质:一对一,现场面试
时间:大约30分钟
隔了快一个星期之后,我收到了CVTE的面试通知。笔试题似乎是9月5号多答的,那时候答的感觉还行,两道编程题做出来了一道,也是完全AC。但是那时候感觉可能要做出两道编程题才有面试机会,所以就觉得可能没有后续的面试机会了。但既然收到了面试通知,还是应该去尝试一下的。
CVTE的面试还是比较人性化的,可以在官网上选择一个空闲的时间段,我选择了9月17号的上午,然后就前往了被CVTE包下一层楼当作面试地点的酒店。
刚刚来到CVTE面试点的时候,还是不得不感叹一下:大厂想去的人就是多啊。看着前面满满坐了一大片的面试者,我签到后就找了一个座位坐下。CVTE的面试官也挺多的,我大概等了一个小时左右就进去开始面试了。

3.1 一面

经过前两次面试后,我对面试的程序差不多轻车熟路了。经过一段时间的复习过后,我掌握了面试中可能会问到的大部分基础知识,但是对于项目这块的底层细节,还是有一些不太清楚的。然而,正所谓是怕什么就来什么。自我介绍一结束,面试官就开始问我一连串有关项目的问题:

  1. 讲讲微服务之间是通过什么进行通信的?我说是通过RPC(因为分布式架构用的是Dubbo),但是细问RPC是怎么实现的,我就答不上来了。
  2. 怎么做权限管理(RBCA)?这块我一下子懵了,没答上来
  3. 是在前端做验证逻辑,还是在后端?我说是在后端,
  4. 如果系统被大量用户访问,那么最先出现问题的地方是哪里?我答的是数据库,然后就紧接着问这块了
    1. 数据库怎么解决高并发访问的问题?我说了主从分离,分库分表,然后简单地讲了讲水平切分和垂直切分的区别,但是具体的实现并没有用过,自然也打不上具体要怎么做
    2. 除了以上的方法,还有什么能解决高并发访问的方法?这块我没答上来
    3. 能不能现场写出当前用户获取功能的sql语句?这块我没有复习,也没有答上来…但到了这里,我感觉也差不多凉了
  5. 除了数据库可能会产生高并发的问题,如果系统的访问量很大,还能通过什么方法来解决?我一下子想不到什么解决方案,慌乱之间说了一个不怎么熟悉的名词:消息队列,没想到一说出来,就直接炸了(所以千万不要说不熟悉的东西):
    1. 既然说到了消息队列,说说消息队列的作用?
    2. 消息队列的具体应用?
    3. 如果你的项目里要加上消息队列,那么要加到什么地方?

这要命的三连问,直接把我问死了。到了这里,我也知道自己肯定过不了一面了。面试官在项目问完之后,叫我手写一个线程安全的单例模式,然后跑去上了个厕所(看来结果已经注定了…)。待面试官回来,我将手撕的代码详细地给面试官讲了一遍,面试大概就结束了。
自然而然,也没有二面的机会了。(由此可以得知:好好准备项目还是挺重要的


(为了简洁,以下只列出题目,方便观看)

4.京东

时间:2019-9-18
性质:一对一,现场面试
时间:大约30分钟

4.1 一面

  1. 讲讲Spring的事务传播特性
  2. 讲讲Spring的事务隔离级别
  3. 讲讲并发,有没有用过线程池?
  4. 讲讲索引,一共有几种索引,如果有一种相应的场景,会选择哪种索引?
  5. 讲讲Java内存模型
  6. volatile的作用?
  7. CAS是什么?会导致什么问题(ABA)?如何解决?(版本号机制或者使用原子类)
  8. 设计模式用过哪些?
  9. 了解LinkerHashSet吗?讲讲原理
  10. 微服务架构了解吗?简单讲一讲

5.宇信科技

时间:2019-9-18
性质:一对一,现场面试
时间:大约两个小时

5.1 一面

  1. ArrayList和LinkedList的区别
  2. 数组和链表的区别,索引从0开始还是1开始?
  3. 讲讲并发

5.2 二面

  1. 自我介绍
  2. 聊聊Java学习的过程中印象最深的事情
  3. 怎么理解“学无止涯”这个词
  4. 还有什么想问的

5.3 三面

  1. 自我介绍
  2. 还有什么想问的

因为三面的时候在问及薪资的时候稍微顶撞了面试官,所以没有收到最终的offer(由此可以得知:交流的时候还是要注意些用词的

6.中信信用卡

时间:2019-9-21
在网上看了下中信信用卡的面经,感觉还是挺难的,而且面试地点距离也比较远(17公里),并且我这个岗位只招4个人,想了想还是放弃了这次面试机会。

7.锐捷

时间:2019-9-21
跟中信信用卡相似,不过主要原因是距离过远(11公里),但我申请了远程面试,近几天应该就会陆续展开吧。

8.创维

时间:2019-9-25
性质:一对一,现场面试
时间:大约30分钟

一上来就是先选择一道笔试题下去做,我可能比较幸运,选到了相当简单的水仙花数,所以没过十分钟就写出来了。

8.1 一面

  1. 聊聊数据结构,满二叉树和完全二叉树的区别
  2. 聊聊算法,快速排序的思想是什么
  3. 聊聊设计模式,讲讲单例模式
  4. 讲讲刚刚写的算法还有能优化的地方吗

9.海能达

9.1 一面

  1. 讲讲主要通过什么途径来学习
  2. 自己擅长的技能是什么
  3. 二分查找的思想,能手写出来吗
  4. 红黑树的思想,能手写出来吗

10.同花顺

10.1 一面

  1. 自我介绍
  2. 最擅长的编程语言?为什么选择这个语言?
  3. 请问在大学期间总共写了多少行代码?最得意的代码是什么并说明
  4. 最常使用的开源社区是什么?从中获得的最大收获是什么?
  5. 了解的最新的技术是什么?最牛的技术是什么?牛在哪里?
  6. 程序员这个职业和社会上哪个职业最相似?为什么?
  7. 请简单描述一下singleton,factory,strategy,decrator的特点?
  8. 讲讲对并发的理解,以及有什么方法可以进行优化?
  9. 简单谈谈对同花顺公司的了解?
  10. 走出校园,迈入职场,对工作有什么期望和要求?对哪些方面的工作感兴趣?
  11. 请问是哪里人?父母对你的就业给到了什么建议?
  12. 在大学期间是否做过项目,如果有,请简单介绍一下这个项目,在项目中承担的角色以及项目最终的成果
  13. 请问是否有过竞赛获奖经历?如果有,请具体说说
  14. 在平常的学习或者生活中最有成就感的一件事情是什么?

10.2 二面

  1. 了解StringBuffer的底层原理吗?扩容机制呢?
  2. nio流有没有了解,说说看?
  3. 讲讲熟悉的设计模式,单例模式?
  4. 对并发的理解?
  5. 简单介绍一下微服务架构?
  6. 算法了解吗?常用的有哪几种?

10.3 三面

  1. 自我介绍
  2. 了解什么新技术?
  3. Java方面有什么崭新的技术吗?
  4. 对技术的理解
  5. 平时学习的时候看些什么书?
  6. 上过什么技术网站或者开源论坛?
  7. 能够接受一进入公司就做Java开发吗

10.4 四面

  1. 自我介绍
  2. 兴趣爱好?
  3. 对工作地点的要求?
  4. 为什么没有进更好的公司?
  5. 薪资预期?

11.TCL通力

11.1 一面

  1. Android的四大组件讲一讲
  2. 简答介绍一下微服务的架构
  3. 设计模式有了解吗?熟悉哪些设计模式?
  4. 常见的算法有了解吗

你可能感兴趣的:(随笔)