2018校招实习笔试面试回忆贴

前言

2018年转眼间就快要过去了,回首这一年过得真快。我也在慢慢适应研究生的生活 IT工作者的生活。
这一年,从一开始对于未来做什么的迷茫 到自己决定从事大数据这个行业,从最开始看导师所给方向的论文 到后来问题 论文创新 编写实验 编写论文(哎,到现在也没能改好 投出去~) 这一年 终于下定决心开始写技术博客 也在这一年选择了csdn平台。
在2018的最后一刻,南国通过这篇博客,记录下自己2018参加的一些校招 实习经历,投的公司不多 只是博主想试试水 也好知道自己到底几斤几两 后面的学习才会更加具有目的性,所以了 结局就是都凉凉了。。不曾经历失败,怎能见到彩虹呢?
话不多说,开始本篇的正文。。。。

校招经历

一开始投这个的时候,只是抱着试一试的心态投了几家公司。记忆中比较深刻的是字节跳动和小米。

小米 大数据开发岗

笔试:
笔试时间只有90分钟(单选10+多选10+两道编程题) 比较基础。大数据岗位的笔试 编程题都是基础的算法和数据结构的知识 有选择题(单选和多选)考察数据结构和算法 网络和操作系统的知识
面试:
小米:远程微信视频面试 两个小时相继有两个面试官 算是二面了吧。
一面:
(会java)java中的几种引用 ;
jvm垃圾回收;
(会c++) c++中的指针 指针在堆上建立二维数组 ;
做过后台(数据库连接池 原理)
TopK个数(实现思路 复杂度分析 复杂度计算 利用什么方式解决TopK (我说了快排和大顶堆 各自的复杂度是多少???)) 这里正确答案是回答小顶堆
又问了二叉树(完全二叉树)
手写代码判断二叉树是否为平衡二叉树(递归的方法 求二叉树深度)
还有问了MapReduce的过程 shuffle阶段需要你自己写代码实现吗??

二面:二面的面试官 对着微信视频界面 快问快答(特别刺激)问了很多知识点 有的回答出来有的没有,问了java相关的一些基础知识,HBase基础知识 Zookeeper基础知识
Spark比较Hadoop
实时计算时storm可以替代SparkStreaming吗??
如何用Hadoop实现一个得到一个朋友的朋友
Spark深入(RDD分为两类操作 转换和行动,SparkStreaming如何实现实时计算的 RDD消耗内存太大 如何转换到HDFS中)
spark内存计算的时候如何保证数据不丢失 SparkStreaming相关知识(DStream checkpoint)
手写代码:在n个数中的m种不同的排列组合方式(递归) tcp/udp的区别 get/post的区别 HashMap如何解决hash冲突

字节跳动 大数据开发

笔试:
头条的秋招笔试分为好几批,前一批笔试没通过的 下一次会接着通知你笔试。南国笔试了几次都没通过 以至于后面几次的笔试都放弃了 决定打好基础 明年再战!!!
头条的笔试很难,笔试5道编程题 设计到的内容大多为数据结构和算法(笔试 属于开发类的,偏向基础知识 和大数据没关系)
字节跳动是2018年特别火的企业之一,软件开发类的笔试题五道编程题 比较难 两个小时,有一次的笔试题 似乎是leetcode上差不多的原题 ,字节跳动的薪水很高,所以竞争力很强。

南国在秋季机缘巧合下拿到了一个中兴深圳5G部门的秋招offer,但是因为 薪水和岗位的一些原因,还是回电话婉拒了。其他的公司要么就笔试了一下,要么就投完简历石沉大海了。。。

冬季实习

1.字节跳动效率工程团队(后端岗位)

笔试:
字节跳动团队来湖大线下的笔试(笔试的时候没有大数据岗位 我当时填的是后端),笔试三道题(内容关于全排列) 字节跳动的笔试题保持一贯的高难度 也许是面试手动阅卷比较松,原本觉得答得稀烂 笔试居然神奇的过了
面试:
这次的字节跳动的面试 我的面试比较简单 视频面试下来整个不到40分钟(时间这么短 八成凉凉)。上来自我介绍之后 直接手撕代码 题目是二叉搜索树删除某个特定值的节点之后返回得到的依旧是二叉搜索树(这道题 上个月中回顾复习的时候还手写了一遍 奈何面试当中有些地方遗忘了 一时没能想起来 太可惜了,对一些知识点真的需要反复学习 通过代码将原理搞懂)
后面问了一个SQL查询 题目是一张学生信息的SQL表格 查询相同姓名的学生信息,当时我的回答是通过判断student a和student b的名字相等 a.name==b.name 来得到信息。面试官问我还有没有其他方案(这样一般是对回答不太满意 有更好的方案)

上面SQL问题相关的网上回答:
第一种:SELECT p1.* FROM t_people p1 INNER JOIN t_people p2 ON p1.phone = p2.phone AND p1.id <> p2.id 结果耗时0.002s
第二种:SELECT * FROM t_people WHERE phone IN (SELECT phone FROM t_people GROUP BY phone HAVING COUNT() > 1) 结果耗时0.009s
第三种:SELECT id,NAME,phone,(SELECT COUNT(
) FROM t_people p2 WHERE p1.phone = p2.phone)AS total FROM t_people p1 HAVING total > 1 结果耗时0.001s

附赠一个同时期 湖大本科生的面经:
一面(第一个面试官):
1, 面试官不知道从哪问起,我提议先自我介绍(个人经历+项目),还问了我到岗时间
2, 操作系统进程调度算法有哪些?加入我来写操作系统,进程对象应具有哪些属性和方法?结合一种算法讲一下进程调度过程,你的进程对象的存储和调度。
3, 网络协议,TCP和UDP区别和应用,http协议,三次握手四次挥手(这是我不会UDP自己要求讲的)
4, 算法,先给几题,问你的解决方案以及优化方案
5, 编程题,共享屏幕在线编程,这个面试官问的题目有个特点:喜欢问把数组执行一定操作后,问你怎么还原操作前的序列
二面(第二个面试官):
1, 自我介绍
2, 接下来都是看你简上写的问
(1) 问了我C++中的static;
(2) C++11标准的智能指针;
(3) SQL建索引优化查询
(4) Shell编程一些操作,Unix常用有哪些命令:查看系统资源,网络状态
3, 算法题
动态规划,BST,每问一个算法都会问你复杂读以及你有没有更好的方法能优化复杂度
4, 在线编程
上面的算法选一种写,给20分钟

2.cvte中央研究院(数据挖掘岗)

面试:
同样是线下来湖大的宣讲招实习生,广州cvte没有大数据开发的岗位,所以南国选择投了个数据挖掘的实习生。
cvte数据挖掘岗部门属于中央研究院,和其他软件开发岗位不同,投web后台 事先会通知选择笔试时间。数据挖掘岗的电话面试没有事先说明 直接打电话进行面试(真的突然 一点准备都没有)考虑数据挖掘岗位的特殊性 AI算法和大数据方向的知识在岗位要求里面都要有,电话面试的时候 在做了一个简短的自我介绍之后 我和面试官特意提到了自己对AI算法方面不太熟悉了解 现在的主要工作倾向于大数据这方面(Hadoop Spark等)。面试官听到后 问了我一些在读研期间接触了哪些AI 机器学习 数据挖掘的课程,对哪些经典的AI算法比较清楚。后面的问题 在我的引导下 转向了大数据方面。
问了MapReduce和Spark的区别
MapReduce的过程(对于shuffle阶段的理解)
Spark的理解: 对简历上写的项目(Spark+Hive数据分析和预测) 细节进行问答
spark的过程(涉及到DAG TaskScheduler等大框架流程) 因为这个项目里面有用到SparkML(SVM)进行数据预测 问我能不能说出SVM和logistic回归的区别(我回答暂时讲不出来) 又问了我能否说出SVM的原理
还问了我对于Zookeeper和Kafka的了解。面试官最后问了我来实习的话 主要负责的是哪些方面的工作 问我是否愿意来 能够实习多久??

感觉面试官人还是挺好的 只是这个电话面试来的突然,记得当时还因为论文的事情被导师怼, 在毫无准备的情况下 回答面试官一些问题的时候 对有些内容记忆没那么深刻 导致在回答问题的时候有些卡壳 导致回答的时候 有些冗余 说话出现太多不必要的废话(这一点 电话里面试官也和我提到过,也要引起我的注意 以后面试过程中 回答面试官的问题时不用马上就开始回答 先在脑海里思考一下 大概能组织一下要说什么 使得回答表述的时候更加有条理)。

补招 腾讯

一面(基础面):
数据结构:
数组和链表的区别(提到数据增删查改上的性能)
链表查询实现O(logn)[这里实际上面试官想问的是跳表 但当时我电话里听得是O(nlogn)回答的是想到时间复杂度是O(nlogn)一般会说归并排序和快排 面试官后面接我的话 简要描述下归并排序算法]
单链表如何求中间节点

计算机网络:
http协议相关(get post 以及post的几种编码方式 post的几种提交格式
tcp udp的区别 吞吐量比较 tcp的慢启动和拥塞控制 )

操作系统: io
Linux:
如何查看进程 如何查看使用的端口号 如何查看当前使用了多少内存(这部分其实问的特别基础 只是我之前没有准备 好多命令记不住)

MySQL:
MySQL的几种引擎 比较MyISAM存储引擎和InnoDB引擎的区别
给出一个表单有用户id 物品id 物品量 求每个用户的平均物品量 现在有一张千万条记录如何实现快速增删查改

Hive和关系型数据库的区别(Hive支持数据动态更新吗??)

Java: jvm结构 jvm gc机制 jvm gc的算法
int和Integer的区别 StringBuffer和StringBuilder的区别(感受:面试官显然是不太懂java 但是因为我简历写的用的最多的是java 所以问了些java)
Zookeeper应用(和cvte面试官一样 问了zookeeper除了做分布式协调调度 还有其他功能吗??)

心得体会

1.简历
找工作的时候,简历特别重要。最好保持简历维持在一页 不要太多,简历上的实习经历 项目经历 还是技能特长一定写好,实习单位如果很好 在简历筛选和面试中会是一个很大的加分项。对于写在简历上的项目一定要非常经典 自己也要掌握的很牢固(从cvte数据挖掘岗的面试体会来看,一定要对简历上项目的细节都要搞清楚 力争把自己做的那部分每一个细节弄清楚,简历的word可以做两份 一份是投递出去的 另一份是对所写项目的详细描述 做到每个细节 都要考虑到,专业的面试官通常都会根据你的项目 扩展给你提出问题 以考察你对知识的理解程度)
2.基础知识的回顾和深入理解
对于数据结构和算法 操作系统 计算机网络这些基础课程一定要利用闲暇时间 慢慢开始复习和加深对其领悟。特别是数据结构和算法 这个在笔试编程题 面试手撕代码都十分重要。

但愿2019年的秋天 我能成功去到自己想去的企业部门。感恩2018经历过的那些失败,2019砥砺前行,加油!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值