1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-07-03 10:46:45 +08:00

202 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 校招进入飞书的个人经验
category: 技术文章精选集
author: 月色真美
tag:
- 面试
---
> **推荐语**:这篇文章的作者校招最终去了飞书做开发。在这篇文章中,他分享了自己的校招经历以及个人经验。
>
> <br/>
>
> **原文地址**https://www.ihewro.com/archives/1217/
## 基本情况
我是 C++主要是后台开发的方向。
2021 春招入职字节飞书客户端,入职字节之前拿到了百度 offer音视频直播部分 以及腾讯 PCG (微视、后台开发)的 HR 面试通过(还没有收到录用意向书)。
## 不顺利的春招过程
### 春招实习对我来说不太顺利
实验室在 1 月份元旦的那天正式可以放假回家,但回家仍然继续“远程工作”,工作并没有减少,每天日复一日的测试,调试我们开发的“流媒体会议系统”。
在 1 月的倒数第三天,我们开了“年终总结”线上会议。至此,作为研二基本上与实验室的工作开始告别。也正式开始了春招复习的阶段。
2 月前已经间歇性的开始准备,无非就是在 LeetCode 上面刷刷题目,一天刷不了几道,后面甚至象征性的刷一下每日一题。对我的算法刷题帮助很少。
2 月份开始2 月初的时候LeetCode 才刷了大概 40 多道题目,挤出了几周时间更新了 handsome 主题的 8.x 版本,这又是一个繁忙的几周。直到春节的当天正式发布,春节过后又开始陆陆续续用一些时间修复 bug发布修复版本。2 月份这样悄悄溜走。
### 找实习的过程
**2021-3 月初**
3 月 初的时候,投了阿里提前批,没想到阿里 3 月 4 号提前批就结束了,那一天约的一面的电话面也被取消了。紧接了开学实验室开会同步进度的时候,发现大家都一面/二面/三面的进度,而我还没有投递的进度。
**2021-3-8**
投递了字节飞书
**2021-4 月初**
字节第一次一面,腾讯第一次一面
**2021-4 中旬**
美团一、二面,腾讯第二次一面和二面,百度三轮面试,通过了。
**2021-4 底**
腾讯第三次一面和字节第二次一面
**2021-5 月初**
腾讯第三次二面和字节第二次二面,后面这两个都通过了
#### 阿里
第一次投了钉钉,没想到因为行测做的不好,在简历筛选给拒绝了。
第二次阿里妈妈的后端面试,一面电话面试,我感觉面的还可以,最后题目也做出来了。最后反问阶段问对我的面试有什么建议,面试官说投阿里最好还是 Java 的… 然后电话结束后就给我拒了…
当时真的心态有点崩,问了这个晚上 7 点半的面试,一直看书晚上都没吃…
所以春招和阿里就无缘了。
#### 美团
美团一面的面试官真的人很好。也很轻松,因为他们是 Java 岗位,也没问 c++知识,聊了一些基础知识,后面半个小时就是聊非技术问题,比如最喜欢网络上的某位程序员是谁,如何写出优雅的代码,推荐的技术类的书籍之类的。当时回答王垠是比较喜欢的程序员,面试官笑了说他也很喜欢。面试的氛围感觉很好。
二面的时候全程就问简历上的一个项目,问了大概 90 分钟,感觉他从一开始就有点不太想要我的感觉,很大原因我觉的是我是 c++,转 Java 可能成本还是有一些的。最后问 HR 说结果待定,几天后通知被拒了。
#### 百度
百度一共三轮面试,在一个下午一起进行,真的很刺激。一面就是很基础的一些 c++问题,写了一个题目说一下思路没让运行(真的要运行还不一定能运行起来:)
二面也是基础,第一个题目合并两个有序数组,第二个题目写归并排序,写的结果不对,又给我换了一个题目,树的 BFS。二面面试官最后问我对今天面试觉得怎么样我说虽然中间有一个道题目结果不对但是思路是对的可能某个小地方写的有问题但总体的应该还是可以的。二面就给我通过了。
三面问的技术问题比较少30 多分钟,也没写题目,问了一些基本情况和基础知识。最后问部门做的什么内容。面试官说后面 hr 会联系我告诉我内容。
#### 字节飞书
第一次一面就凉了,原因应该是笔试题目结果不对…
第二次一面在 4 月底了,很顺利。二面在五一劳动节后,面试官还让学姐告诉我让我多看看智能指针,面试的时候让我手写 shared_ptr我之前看了一些实现但是没有自己写过导致代码考虑的不够完善leader 就一直提醒我要怎么改怎么改。
本来我以为凉了,在 5 月中旬的时候都准备去百度入职了,给我通知说过了,就这样决定去了字节。
#### 感悟
这么多次面试中,让我感悟最深的是面试中的考察题目真的很重要,因为我在基础知识上面也不突出,再加上如果算法题(一般 1 道或者 2 道)如果没做出来,基本就凉了。而面试之前的笔试考试反而没那么重要,也没那么难。基本 4 题写出来 1~2 道题目就有发起面试的机会了。难度也基本就是 LeetCode top 100 上面的那些算法。
面试中做题,我很容易紧张,头脑就容易一片空白,稍不注意,写错个符号,或者链表赋值错了,很难看出来问题,导出最终结果不对。
## 入职字节实习
入职字节之前我本来觉得这个岗位可能是我面试的最适合我的了,因为我主 c++,而且飞书用 c++应该挺深的。来之后就觉得我可能不太喜欢做客户端相关,感觉好复杂…也许服务端好一些,现在我仍然不能确定。
字节的实习福利在这些公司中应该算是比较好的,小问题是工位比较窄,还是工作强度比其他的互联网公司大一些。字节食堂免费而且挺不错的。字节办公大厦很多,我所在的办公地点比较小。
目前需要放轻松仓库代码慢慢看呗mentor 也让我不急,准备有问题就多问问,不能憋着,浪费时间。拿到转正 offer 后,秋招还是想多试试外企或者国企。强度太大的工作目前很难适应。
希望过段时间可以分享一下我的感受,以及能够更加适应目前的工作内容。
## 求职经验分享
### 一些概念
#### 日常实习与正式(暑期)实习有什么区别
- **日常实习如果一个组比较缺人,就很可能一年四季都招实习生,就会有日常实习的机会**,只要是在校学生都可以去面试。而正式实习开始时间有一个范围比较固定,比如每年的 3-6 月,也就是暑期实习。
- 日常实习相对要好进一些,但是有的日常实习没有转正名额,这个要先确认一下。
- **字节的日常实习和正式实习在转正没什么区别,都是一起申请转正的。**
#### 正式实习拿到 offer 之后什么时候可以去实习
暑期实习拿到 offer 后就**可以立即实习**(一般需要走个流程 1 周左右的样子),**也可以选择晚一点去实习**,时间可以自己去把握,有的公司可以在系统上选择去实习的时间,有的是直接和 hr 沟通一下就可以。
#### 提前批和正式批的区别
以找实习为例:
- 先提前批,再正式批,提前批一般是小组直接招人**不进系统****没有笔试****流程相对走的快**,一般一面过了,很快就是二面。
- 正式批面试都会有面评,如果上一次失败的面试评价会影响下一次面试,所以还是谨慎一点好
#### 实习 offer 和正式 offer 区别
简单来说,实习 offer 只是给你一个实习的机会,如果在实习期间干的不错就可以转正,获得正式 offer。
签署正式 offer 之后并不是意味着马上去上班,因为我们是校招生,拿到正式 offer 之后,可以继续实习(工资会是正式工资的百分比),也可以请假一段时间等真正毕业的时候再去正式工作。
### 时间节点
> 尽早把简历弄出来,最好就是最近一段时间,因为大家对实验室项目现在还很熟悉,现在写起来不是很难,再过几个月写简历就比较痛苦了。
以去年为例:
- 2 月份中旬的时候阿里提前批开始基本上只有阿里这个时候开了提前批3 月 8 号阿里提前批结束。腾讯提前批是 3 月多开始的4 月 15 号结束
- 3-5 月拿到实习 offer最好在 4 月份可以拿到比较想去的实习 offer。
- 4-8 月份实习7 月初秋招提前批7 月底或者 8 月初就是秋招正式批9 月底秋招就少了挺多,但是只是相对来说,还是有机会,
- 10 月底秋招基本结束,后面还会有秋招补录
---
- **怎么找实习机会**,个人觉得可以找认识的人内推比较好,内推好处除了可以帮看进度,一般可以直推到组,这样可以排除一些坑的组。提前知道这个组干嘛的。
- **实习挺重要,最好是实习的时候就找到一个想去的公司,秋招会轻松很多**,因为实习转正基本没什么问题,其次实习转正的 offer 一般要比秋招的好(当然如果秋招表现好也是可以拿到很好的 offer身边不少人正式 offer 都是实习转正的。
- **控制好实习的时间**,因为边实习边准备秋招挺累的,一般实习的时候工作压力也挺大,没什么时间刷题。
### 面试准备
#### 项目经历
我觉得我们实验室项目是没问题的,重要是要讲好。
- **项目介绍**
首先可能让你介绍一下这个项目是什么东西,以及**为什么要去做这个项目**。
- **项目的结果**
然后可能会问这个项目的一些数据上最终结果,比如会议系统能够同时多少人使用,或者量化的体验,比如流畅度,或者是一些其他的一些优势。
- **项目中的困难**
最后都会问过程中有没有遇到什么困难、挑战的,以及怎么解决的。这个过程中主要考察这个项目的技术点是什么。
> 困难是指什么,个人觉得主要是花了好几天才解决的问题就是困难。
举两个例子:
**第一个例子是排查 bug 方面**,比如有一个内存泄露的问题花了一周才排查出来,那就算一个困难,那么解决这个困难的过程就是**如何去定位这个问题过程**,比如我们先根据错误搜索相关资料,肯定没那么容易就直接找到原因,而是我们会在这些资料中找到一些**关键词**,比如一些工具,那么我们对这个工具的使用就是解决问题的一个过程。
**第二个例子是需求方案的设计**,比如某个需求完成,我们实现这个需求可能有多个可行的设计方案。解决这个困难的过程就是**我们对最终选择这个方法的原因,以及其他的设计方案的优缺点的思考**。
[面试中被问到:你在工作中碰到的最困难的问题是什么?*发现问题,解决问题.-CSDN 博客*面试中问到工作中遇到困难是怎么解决的](https://blog.csdn.net/u012423865/article/details/79452713)
有人说我解决方法就是通过百度搜索,但实际上细节也是先搜索某个错误或者问题,但是肯定不可能一下子就搜到了代码答案,而是找到一个答案中有某个关键词,接着我们继续找关键词获取其他的信息。
#### 笔试
找实习的笔试我觉得不会太难,一般如果是 4 道题目,做出来 1-2 道题目差不多就有面试的机会了。
刷题老生常谈的问题LeetCode Top100。一开始刷题很痛苦等刷了 40 道题目的时候就有点感觉的,建议从链表、二叉树开始刷,数组类型题目有很多不能通用的技巧。
- ::一定要用白版进行训练::,一定要用白板,不仅仅是为了面试记住 API更重要的是用白板熟练后写代码会更熟练而且思路更独立和没有依赖。
- 算法题重中之重,终点不是困难题目,而是简单,中等,常见,高频的题目要熟能生巧,滚瓜烂熟。
- 面试的笔试过程中,如果出现了问题,**一定要第一时间申请使用本地 IDE 进行调试**,否则可能很长时间找不到问题,浪费了机会。
#### 面试
面试一般 1 场 1 个小时候分为两个部分,前半部分会问一些基础知识或者项目经历,后半部分做题。
**基础知识复习一开始没必要系统的去复习,首先是确保高频问题必会**,比如计算机网络、操作系统那几个必问的问题,可以多看看面经就能找到常问题的问题,对于比较偏问题就算没答上来也不是决定性的影响。
- **多看面经!!!!!!** 不要一直埋头自己学,要看别人问过了哪些常问的问题。
- 对于实习工作,**看的知识点常见的问题一定要全!!!!!**,不是那么精问题不大,一定要全,一定要全!!!!
- **对于自己不会的,尽量多的说!!!!** 实在不行,就往别的地方说!!!总之是引导面试官往自己会的地方上说。
- 面试中的笔试和前面的笔试风格不同,面试笔试题目不太难,但是考察是冷静思考,代码优雅,没有 bug先思考清楚在写
- 在描述项目的难点的时候,不要去聊文档调研是难点,回答这部分问题更应该是技术上的难点,最后通过了什么技术解决了这个问题,这部分技术可以让面试官来更多提问以便知道自己的技术能力。