一个双非本科的春招经验(暑期实习)

前言

最近看到很多大厂都已经陆续开启了春招(暑期实习),就想起去年自己找实习的“苦痛”经历,但好在结果是好的,拿到了包括字节跳动、蚂蚁金服在内多个大厂的offer。这里我整理了我准备面试的一些经验以及我所面试大厂的一些情况分享给大家,希望能够对你们有所帮助。

个人介绍

  • 学历:双非一本,软件工程专业,大三(现在已经大四了)
  • 方向:后端开发
  • 技术栈:JAVA(以后转go了)
  • 实习经历:两段小厂实习经历
  • 比赛经历:参加了很多开发类比赛也拿了奖(这个企业不太看),无ACM
  • 项目经历:有写过10个左右的项目(无分布式、无微服务的单机项目)
  • 力扣:200左右

面试经历

面试结果汇总

  • 字节跳动:已通过
  • 蚂蚁金服:已通过
  • 美团:HR面一个月后,面试官联系,但已去别的公司,无后续。
  • B站:已通过
  • 京东:技术面已通过,已放弃参加HR面
  • 携程:已通过
  • 百度:已参加笔试,未约面
  • 网易:放弃参加笔试
  • 腾讯音乐:放弃参加笔试
  • 快手:已挂

各大厂面经

字节跳动

1.24 视频架构一面(日常)
1.25 视频架构二面(日常)
3.13 tiktok直播笔试(暑期)
3.22 tiktok直播一面(暑期)
3.28 tiktok直播二面(暑期)
4.1 tiktok直播三面(暑期)
4.2 tiktok直播HR面(暑期)
4.7 offer

字节是我面的第一家公司,第一次面是被捞的(很久之前投过),当时还没怎么准备,挂在数据结构上了。
第二次面为了求稳,每面间隔都比较长。
字节现在基本都是golang,但是不会限制你会什么语言。
字节主要考察的是操作系统、计算机网络、数据结构、mysql、redis和算法(排序一定要看)。算法真的是所有大厂里里最重视的了,不仅仅要求你要做出来,会让你考虑有没有最优的解法,然后要会求时间复杂度,语言相关的问的比较少(可能因为我学的是java,他们技术栈是GO),不过有被问到java集合和spring。项目经历感觉不是特别看重(二面介绍了下,还没讲完面试官就打断了,说我讲的太啰嗦,也没继续问,三面的时候聊了挺久项目)。

阿里巴巴(含蚂蚁金服)

3.3 钉钉一面(暑期)
4.1 蚂蚁国际事业群一面(暑期)
4.7 笔试
4.9 蚂蚁国际事业群二面(暑期)
4.9 蚂蚁国际事业群HR面(暑期)
4.10 蚂蚁国际事业群OC

首先吐槽下一些蚂蚁招人时候的操作,,之前boss上联系了一个人(他联系的我),让我把简历转到他们那(当时钉钉已经挂了),然后我就写了封转部门的邮件到他们那了,然后简历给我挂了。。。(挂了之后我才知道转部门申请只能发一次,然后本来和一个学长联系好了去他们那部门也去不成了)。emm离谱。
首先阿里钉钉,阿里系的只有第一志愿简历不会挂(因为是内推),其它因为是双非,会被卡学历。不过我钉钉一面应该是简历面?面的时间很短,没问几个问题,算法做出来了,面完就给挂了,然后流程显示挂在了简历上。。

后面就是面蚂蚁了,没有任何面试通知,那天晚上来了一个电话直接开始面试。。二面和HR面因为要加快流程所以约的都比较快。
蚂蚁的面试,无八股无算法,基本都是在聊项目和一些经历,当然有被问到几个常见的Java问题和场景类问题,没有考察操作系统,计网,数据结构。
另外阿里笔试30分即可通过(单选+多选+3道算法)。

美团

3.5 笔试
3.11 美团平台一面(暑期)
3.15 美团平台二面(暑期)
3.18 美团平台三面(暑期)
3.29 美团平台HR面(暑期)

美团笔试做出来1道,然后另外有3道0.5左右。
前两面都比较顺,第一面面完当前约面,第二面面试过程中面试官直接说通过了。然后本来美团是只有两轮技术面的,然后这个部门的leader给每个人加了一面。
美团前两面更多考察的还是Java方面的知识(Java集合、Java并发、JVM、框架),当然还有数据库、Linux,没有对操作系统、计网、数据结构的考察,但是三面的时候,问了好多实际的命令(git、JVM、linux),基本命令我都记不住,没想到给过了。面试中没有对算法的考察,一面写了个线程交替打印。二面有问思考题烧绳子。然后美团项目每面都有问。
美团HR面时说要横向对比,然后等了一个月才有人联系我,但是我已经去别的厂了。。

BiliBili

3.8 T2开发实习生一面(日常)
3.16 T2开发实习生二面(日常)
3.16 T2开发实习生OC

B站是直接投到的这个部门,流程走的很慢,一面完一周后我打电话问才知道一面通过了,因为二面的时候面试官(是部门leader)已经给口头offer了,所以后续没有HR面。
B站面试体验绝对是最好的了。一面问到了Linux、数据库等一些基础课程的东西,如果你不会或者说的不全面试官都会告诉正确答案(目前只有b站有这待遇),二面1小时全程深挖项目。无算法(二面让写了个10进制转2进制,思考题引出来的)。B站的技术栈是golang,没有被问到java、golang的问题。
面试官真的都好好。。。

京东

4.2 笔试
4.13 零售一面
4.19 零售二面(已通过,尚未约HR面)

京东只有两轮技术面,感觉问的深度相对来说会比较深一点(各种锁、cas、JVM等),二面也有问一些一些高并发、高数据量的解决方案。京东面试没有代码编辑的地方,一面让我共享屏幕写的(写完发现断网了,然后面试官给打的电话,让我讲思路,麻了),二面出了两个算法让讲思路,还有手写sql。京东出结果出的比较快,官网很快就能看到,约面都是直接发邮件自己选时间。

快手

3.2 资源管理平台一面(日常)
3.4 资源管理平台二面(日常)
3.7 资源管理平台HR面(日常)
3.13 研发效能一面(暑期)

快手emm
第一次是在Boss上投的,一面面试体验比较好,二面就只介绍了项目,问了下我职业规划就结束了。。然后HR面给我挂了(个人感觉是时间问题,我当时说每周实习3-4天,实习3个月,当然也可能是因为我菜)。
第二次面试体验emm,感觉面试官对我要求可能有点高了(是我不配了,最后被评价基础薄弱、项目简单)。。

快手考察的点感觉和美团类似,主要是Java,项目每面也都有问到。算法可能会考察,这个要看面试官。
快手说是暑期实习可以投很多次,但是挂了一次后简历不可能再给过了。。

携程

3.10 笔试
3.16 酒旅一面(暑期)
3.21 酒旅二面(暑期)
3.25 酒旅HR面(暑期)
已OC

携程的面试相比于其它大厂会简单很多,问的也更基础一点,但是有时候携程会在HR面后让做一个英语测评(考英语和听力的那种),一言难尽。。

常考知识点

Java

  • Java集合:ArrayList、LinkedList(两者比较、为什么他们是线程不安全的、扩容机制),hashMap(扩容机制、put流程、为什么线程不安全、构造函数)、currentHashMap。这里推荐一个视频大家可以去看一下。
  • Java并发:sychornized、cas(ABA问题)、aqs、reetrankLock、线程池(线程池被问好多好多次了,一定要会,像sychornized底层实现不一定要会,但一定要了解,对一些比如自旋锁、偏向锁之类的名词一定要知道,面试一般不会问太深,因为太深可能得说十几分钟,可以只说说名词),同样推荐一个视频。
    -JVM:内存分区、垃圾回收、类加载过程、类加载器、JVM命令、字符串常量池(问的不多,但尽量要知道),同样推荐一个视频。
  • Spring:IOC、AOP(主要就是这两个了,框架一直是我比较薄弱的,实在不想背八股,不看源码也真的不好理解),推荐视频
  • 其它:其它比如面向对象、接口和抽象类、equals和hascode、jdk8新特性、内部类等也最好都了解下,不过问的不多。(这里如果面试官问你用什么jdk,最好说8,因为紧接着就会让你说他的新特性)

Mysql

  • 索引:聚簇索引和非聚簇索引、B+树和哈希、覆盖索引和回表、最左匹配原则、索引下推、索引失效、explain
  • 事务:四个特性(原理也要会)、事务隔离级别及可能产生的问题、MVCC。
  • 锁:悲观锁和乐观锁、读锁和写锁、表锁和行锁、意向锁、死锁。
    存储引擎区别。
  • 三大日志:undolog、redolog、binlog
  • select、update执行流程
  • Sql优化经历

Redis

这里推荐一个大佬的博客

  • 5种基本数据类型(介绍、使用场景、底层实现)
  • 备份策略
  • 缓存、mysql数据一致性
  • 击穿、穿透、雪崩及其解决方案
  • 过期键删除策略
  • 内存淘汰机制
  • redis为什么这么快?

操作系统

  • 用户态、内核态、系统调用
  • 进程管理:进程和线程的区别、进程通信方式、PCB、进程状态切换、进程调度、死锁
  • 内存管理:分页分段、虚拟内存、页面置换算法、快表机制(局部性原理)

计算机网络

  • 网络模型
  • 应用层:http(http各版本区别、https加密过程、http方法、状态码、cookie和session)、dns(迭代查询和递归查询)
  • socket:是什么?UDP和TCP在socket上的区别、socket四元组
  • 传输层:TCP(可靠传输、流量控制、拥塞控制、面向字节流、三次握手四次挥手)、UDP
  • 网络层:IP协议、ICMP协议
  • 数据链路层:ARP协议

Linux

  • 部署java项目时会用到什么命令?
    • top
    • ps
    • netstate
    • find
    • jps
    • 日志相关

IO

  • IO网络模型:NIO、BIO
  • IO多路复用:select、poll、epoll

个人建议

语言的选择

现在后端用的语言一般就是go或java,那么我们应该准备什么语言?
个人觉得应该准备java,首先一点java目前岗位还是更多的,另外最重要的一点是,java岗位一定问你java,go岗位不强求你会go。。

简历

简历一定要好好的写,建议当不知道自己简历写的怎么样的时候,可以再投递简历之前,问一下内推的人,让他们看看你的简历有没有什么不足的地方。
个人觉得简历里最重要的还是专业技能和项目经历。给大家对比下我同一个项目最开始的介绍和最新的介绍。
最开始:
在这里插入图片描述

最新:
在这里插入图片描述

可以很明显的看到,最开始的时候,我仅仅是介绍了我在项目中的角色和完成了那些模块,那其实这样写是完全体现不出来你的水平和能力的。并且结构化也不行。
个人觉得项目最重要的就是介绍自己完成的一些核心模块,以及自己是怎样设计和优化的,这里可以只写核心实现,对于一些简单的CRUD就没有必要网上写了。
最终这份简历我也是找很多人帮我看了之后才最终确定的。

另外就是简历中尽量不要造假,就算造假你也要保证你写上的东西是你掌握的。

如何投递

可能会有很多人觉得自己准备的不好,不太敢投,包括我很多朋友也会想等准备的差不多了再投,其实这种想法个人觉得是错误的,
首先就是,当我们以及约了面试时,这个时候我们学习的动力是会比我们单纯准备大很多的,因为会有那种紧迫感。。就像我个人来说,每次面试的前几天或者当天,学习效率和取得的进步都是最高的。
另外就是,我们可以通过面试来找到自身很多的问题,然后来不断的完善,因为面试不仅仅会考察你的技术情况,还可能会考察你的表达能力、沟通能力等。

个人建议先从小厂开始投,其实大厂和小厂的面试模式没有太多不同,只是说技术的深度和广度考察的不太一样。从小厂开始面的好处,一是熟悉面试流程,增加的面试经验然后找找自信,让自己面大厂的时候不至于太紧张。(记得我第一次面试是面的字节,当时真的紧张的不行,不过面过一次之后就会好很多了)
然后一定要多投多面,其实面多了就会发现问的东西也就那些。

技术面

首先前置的准备肯定要做好:基础的掌握(基本的东西一定要会,准备一个月其实就能达到一个不错的水平)、项目的准备(一定要打磨一到两个比较好的项目,这个尽可能还是早做准备,因为其实比如蚂蚁,就特别重视你的项目经历)

另外就是一些面试技巧上的东西:
首先肯定是要尽可能克服紧张的情绪吧,最好的能达到一种和面试官就是聊天的模式,这样就非常舒服,然后语速尽量不要太快(我就容易快,太快了反而表达不清楚,而且会显得很紧张)。
然后遇到不会的点的时候,如果说这块知识你真的是没怎么了解过,那就直接和面试官说就好了(当然还是那句话,基础的必须会),面试官也不会太在意,如果问一些你不太确定或者会一点的东西,你可以适当把自己会的东西说一点,但不要完全不沾边,然后补充一句你对这一块了解的也不是很多。但是不要瞎说,那样不如不说。。我曾被评价“说的基本都是错的。。”
然后面试可能会考察场景题和思考题,这个可以做一些针对性训练。
另外做算法的时候,包括一些场景题、思考题,不会不要完全放弃,首先要有思考的过程,然后可以问下面试官有没有什么提示(当然你不能一直让他提示)
还有就是在表达的时候,尽可能的表的的有条理、简洁一点,说的太乱的话也会减分的,所以对于一些表达能力弱的同学,可以加强一些训练,比如找其它同学给你做个模拟面试,或者对着面经自己组织语言表达出来。。像我之前就想把所有东西都讲出来,想讲的很详细,然后东西就会表达的很乱。。。没有必要面试官问一个知识点你就刻意的往深了讲,你可以暗示一下面试官你会一些更深的东西,或者问他需不需要深入的讲。

HR面

  • HR面提前想想那些问题就可以了
  • 对公司的看法?
  • 对前几轮面试的评价?
  • 个人评价?(提交想几个优点和缺点)
  • 项目经历(非技术方向介绍)、社团经历、组织管理经历
  • 对互联网公司的认识
  • 实习时间 (不要太短)
  • 考不考研(这个当然是回答emmm,毕竟公司不想培养完你,你马上溜了)
  • 已有offer

最后

希望大家都能找到满意的工作!如果有问题或想看简历和笔记,可以随时私聊我,大家一起交流~

  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言面试八股文是指在聘中常见的C语言相关的面试题目和知识点。下面是一份常见的C语言面试八股文,供您参考: 1. C语言的基本数据类型有哪些? C语言的基本数据类型包括整型、浮点型、字符型和指针型。 2. 请介绍一下C语言中的变量和常量。 变量是用来存储数据的内存位置,可以通过变量名来访问和修改其值。常量是指在程序执行过程中不会改变的值。 3. 什么是数组?请介绍一下C语言中的数组。 数组是一种存储相同类型数据的集合,通过索引来访问数组中的元素。在C语言中,数组的大小在定义时就需要确定,并且数组的下标从0开始。 4. 请介绍一下C语言中的指针。 指针是一个变量,其值为另一个变量的地址。通过指针可以直接访问和修改内存中的数据。使用指针可以提高程序的效率和灵活性。 5. 请介绍一下C语言中的函数。 函数是一段完成特定任务的代码块,可以通过函数名来调用执行。函数可以接收参数并返回一个值,也可以不接收参数或不返回值。 6. 请介绍一下C语言中的流程控制语句。 C语言中的流程控制语句包括条件语句(if-else语句、switch语句)、循环语句(for循环、while循环、do-while循环)和跳转语句(break语句、continue语句、goto语句)。 7. 请介绍一下C语言中的结构体。 结构体是一种自定义的数据类型,可以包含多个不同类型的成员变量。通过结构体可以将多个相关的数据组织在一起。 8. 请介绍一下C语言中的文件操作。 C语言中的文件操作主要包括打开文件、读写文件和关闭文件。可以使用标准库函数来进行文件操作,如fopen、fread、fwrite、fclose等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值